我的一位同事给了我一项任务,确保存储过程中的所有表名和页面都包含相关的模式?
例如,如果我在数据库中有dbo.table1
的表,那么在查询中我是否有:
Select * from table1
他希望我将其改为:
Select * from dbo.table1
对于以支持开头的页面,这是相同的。
添加像dbo.
之类的方案有什么意义在手动编写SQL时的开始?是否假设表现更好,因为它似乎知道表格在哪里,即使我在开始时不包括.dbo?
我正在使用SQL Server 2012及其管理工作室。
谢谢
答案 0 :(得分:1)
如果在所有查询中编写架构,则可能不会注意到性能。如果你没有指定它,引擎将查看数据库中的所有模式(我不太确定引擎是否也会检查sys模式),直到它找到你所使用的表格为止。重新获取数据;它建议作为编写它的最佳实践,因为您告诉引擎需要搜索表格的模式。
我希望这个答案很有帮助。
答案 1 :(得分:0)
dbo是一个模式,用作mssql数据库中表的部分命名约定