1

虽然在正常情况下,运行以下查询需要不到1秒的时间,但现在需要3558秒。

use myOffendingDatabaseName
select count(*) from sys.partitions

我们只是想弄清楚为什么这个系统查询这么慢,因为

更多信息:

  • 使用SentryOne 的计划资源管理器(我不附属)分析执行计划(在此处提供),我发现虽然一次sys.sysrowsets操作有4253估计行,但实际行20094,这导致我过时的系统视图统计;
  • 没有其他进程对 CPU 或 I/O 进行充电;
  • 尽管此查询将在此数据库的sys.partitions系统视图上返回大约20.000 项的计数,但在其他服务器上,这样复杂的数据库只需不到一秒的时间;
  • 在名称 SQL Server 实例上的更简单( <500 个分区)数据库上运行相同的查询所需的预期时间不到1秒。
  • SQL SERVER 2014 Express (12.0.6024.0);
  • 具有 16 GB 内存的Windows Server 2016(尽管 SQL Server express 版本限制为 4 GB);

你能给出一个线索吗?

4

0 回答 0