我打电话的时候:
select * from Database.dbo.Table where NAME = 'cat'
需要:
200毫秒
当我在Management Studio中将数据库更改为数据库并在没有完全限定名称的情况下调用它时,速度要快得多:
select * from Table where NAME = 'cat'
需要:
17 ms
有没有办法在不更改数据库的情况下更快地完成合格的查询?
答案 0 :(得分:1)
解决方案是将此数据库上的自动关闭更改为false。
答案 1 :(得分:0)
鉴于这两次如此不同,第二次可能会更快,因为SQL从第一次运行时缓存了查询计划。你是不是一个接一个地跑了那两个?第二次运行时,即使是没有任何改变的相同查询也会更快。
如果要获得查询的准确执行时间,则需要使SQL忘记每次运行后缓存的查询计划。我想重新启动SQL是这样做的一种方式。
答案 2 :(得分:0)
最有可能的不同之处在于工作室打开了与数据库的新连接。提供它 - 尝试放置2个完全限定的sql语句 - 你应该只看到第一个的区别。第二个应该在同一个连接中运行