尽管在正常情况下,运行以下查询所花费的时间远远少于 1 秒,但现在只需 35 至 58 秒。
use myOffendingDatabaseName
select count(*) from sys.partitions
我们只是想弄清楚为什么这个系统查询这么慢,因为
更多信息:
- 使用 SentryOne的计划浏览器(我不隶属)分析执行计划(provided here),我发现虽然有 4253 sys.sysrowsets 操作上的行数,实际行数是 20094 ,这使我得出了过时的系统视图统计信息;
- 没有其他进程为CPU或I / O充电;
- 尽管此查询将返回大约 20.000 的计数
此数据库上的 sys.partitions 系统视图上的其他项
服务器这样一个复杂的数据库只需不到一秒钟的时间;
- 在名称为SQL Server实例的较简单( <500 个分区)数据库上运行相同的查询,所需的时间少于 1 秒。
- SQL SERVER 2014 Express (12.0.6024.0);
- Windows Server 2016 ,具有16 GB内存(尽管SQL Server Express版本限制为4 GB);
您能提供一些线索吗?