dbo.数据库对象名称中的前缀,我可以忽略吗?

14 sql sql-server

我正在寻找一个处理.dbo前缀的高性能默认策略.

我意识到dbo.前缀不仅仅是语法噪音,但是我通过过去8年的基于MS的开发跳过键入dbo.前缀并忽略其功能.

除了存储过程编译锁的性能问题,在SQLqueries和存储过程中跳过键入".dbo"还有一个缺点吗?

进一步背景:我的所有开发都是基于中间层服务帐户的集成安全性的Web中间层.

Tam*_*SQL 12

[DBO].[XXX]

SQL Server引擎总是将查询解析成碎片,如果你不使用前缀,它肯定会在使用[dbo]之前搜索具有不同用户的类似名称的对象.我建议你遵循前缀机制不仅要满足最佳实践,还要避免性能故障并使代码可扩展.

我不知道我回答了你的问题,但这些只是我的知识分享


Joe*_*orn 9

大多数时候你可以忽略它.有时你必须输入它.有时当你必须输入它时,你只需输入一个额外的'.':

SELECT * FROM [LinkedServer].[Database]..[Table]
Run Code Online (Sandbox Code Playgroud)

如果你开始使用额外的模式,你需要开始观察它,你可能在同一个数据库中有两个模式,它们都有同名的表.