如何使用t-sql中的完全限定名称优化查询?

时间:2010-04-19 10:49:09

标签: sql-server database tsql performance

我打电话的时候:

select * from Database.dbo.Table where NAME = 'cat'

需要:

200毫秒

当我在Management Studio中将数据库更改为数据库并在没有完全限定名称的情况下调用它时,速度要快得多:

select * from Table where NAME = 'cat'

需要:

17 ms

有没有办法在不更改数据库的情况下更快地完成合格的查询?

3 个答案:

答案 0 :(得分:1)

解决方案是将此数据库上的自动关闭更改为false。

答案 1 :(得分:0)

鉴于这两次如此不同,第二次可能会更快,因为SQL从第一次运行时缓存了查询计划。你是不是一个接一个地跑了那两个?第二次运行时,即使是没有任何改变的相同查询也会更快。

如果要获得查询的准确执行时间,则需要使SQL忘记每次运行后缓存的查询计划。我想重新启动SQL是这样做的一种方式。

答案 2 :(得分:0)

最有可能的不同之处在于工作室打开了与数据库的新连接。提供它 - 尝试放置2个完全限定的sql语句 - 你应该只看到第一个的区别。第二个应该在同一个连接中运行