kod*_*use 8 sql-server performance
似乎公平地认为在查询中包含模式所有者会增加db性能,例如:
SELECT x FROM [dbo].FooVS SELECT x FROM Foo.
这应该保存查找,因为SQL Server将在连接上下文中查找属于该用户的Foo表.
今天我被告知,即使您查询在连接字符串中选择的数据库,始终包含数据库名称也会以相同的方式提高性能:
SELECT x FROM MyDatabase.[dbo].Foo
Run Code Online (Sandbox Code Playgroud)
有没有道理呢?这作为编码标准是否有意义?这些(甚至是第一个例子)中的任何一个都能转化为可衡量的收益吗?
我们是在讨论数据库服务器上额外字典查找的几个周期与Web服务器(或其他客户端)上更臃肿的SQL和额外连接吗?
Rem*_*anu 11
要记住的一件事是,这是一个编译绑定,而不是执行绑定.因此,如果您执行相同的查询100万次,则只有第一次执行将"命中"查找时间,其余将重复使用相同的计划,并且计划已预先绑定(名称已经解析为对象ID).