Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 更改索引重新组织/重建速度太慢(联机)_Sql Server_Database Performance - Fatal编程技术网

Sql server 更改索引重新组织/重建速度太慢(联机)

Sql server 更改索引重新组织/重建速度太慢(联机),sql-server,database-performance,Sql Server,Database Performance,我在2个类似的GCP项目上安装了2个类似的SQL Server。 一切都是一样的——配置、CPU、RAM、磁盘驱动器布局、具有相似数据和工作负载的相似(但不相同)数据库 当我在第一台服务器上运行dbo.Tablename rebuild with(online=on)上的alter index index index[IndexName]时,重建整个索引大约需要30分钟。在第二台服务器上,它运行了3.5个多小时,然后我停止了重建 所有磁盘指标(吞吐量、队列长度等)看起来都是合理的。重建是在夜间维

我在2个类似的GCP项目上安装了2个类似的SQL Server。 一切都是一样的——配置、CPU、RAM、磁盘驱动器布局、具有相似数据和工作负载的相似(但不相同)数据库

当我在第一台服务器上运行dbo.Tablename rebuild with(online=on)上的alter index index index[IndexName]时,重建整个索引大约需要30分钟。在第二台服务器上,它运行了3.5个多小时,然后我停止了重建

所有磁盘指标(吞吐量、队列长度等)看起来都是合理的。重建是在夜间维护期间执行的,服务器上没有明显的事务负载

我的问题是:我如何“调试”重建过程以了解发生了什么,为什么两个相似服务器上的两个相似数据库的行为非常不同?是否有任何跟踪标志、扩展事件等有助于调查问题

Microsoft SQL Server 2016(SP2)(KB4052908)-13.0.5026.0(X64) 2018年3月18日09:11:49 版权所有(c)微软公司 企业版:Windows Server 2016数据中心10.0(版本14393:)上基于核心的许可(64位)(虚拟机监控程序) 26CPU/20GB内存


重建前的索引大小:~110Gb,重建后:~30Gb

-等待时间处于较低的优先级您可以始终运行sp_whoisactive以查看重建期间SQL Server实例发生的情况(请参阅阻塞查询、等待LOC…)sp_who/类似sp未显示明显的进程/锁,服务器仪表板显示很少的等待(writelog/hadr),但是没有什么严重的问题,我们也不使用nolock,除了在非频繁的警报查询中,它无论如何不会针对调查中的表/索引运行。您找到原因了吗?