此查询
SELECT MAX(ID)FROM GeoArea
在生产服务器(16Gb RAM)上非常快。它在1秒内执行。
但它在测试服务器(3Gb RAM)上非常慢。它需要超过10分钟(正在进行中!)。
数据库是一样的。 SQL Server版本是一样的。
该表有200万行。 为什么测试服务器上的速度很慢?我以为它只是一个集群索引扫描。
更新
SQL重启没有帮助。 我已将生产数据库复制到测试服务器,它解决了问题。
答案 0 :(得分:2)
可以(不限于)
答案 1 :(得分:2)
10分钟,它仍在运行?
你确定它还在运行吗?
如果ID是聚集索引,并且该表有200万行,那么就会出现问题
1秒至10秒是一个很大的区别
1秒到10分钟以上不仅仅是硬件或索引或统计数据。
您可以锁定该表。
尝试:
SELECT MAX(ID) FROM GeoArea with (nolock)
如果不能解决问题,请重新启动SQL。