sql-server - 太慢 alter index reorganize/rebuild (with online)
问题描述
我在 2 个类似的 GCP 项目上安装了 2 个类似的 SQL Server。一切都是一样的——配置、CPU、RAM、磁盘驱动器布局、具有相似数据和工作负载的相似(但不相同)数据库。
当我alter index index [IndexName] on dbo.Tablename rebuild with (online=on)
在第一台服务器上运行时,重建整个索引大约需要 30 分钟。在我停止重建之前,它在第二台服务器上运行了 3.5 多个小时。
所有磁盘指标(吞吐量、队列长度等)看起来都很合理。重建是在夜间维护窗口期间执行的,服务器上没有显着的事务负载。
我的问题是:我如何“调试”重建过程以查看发生了什么,为什么两个类似服务器上的两个类似数据库的行为非常不同?是否有任何可能有助于调查问题的跟踪标志、扩展事件等?
Microsoft SQL Server 2016 (SP2) (KB4052908) - 13.0.5026.0 (X64) 2018 年 3 月 18 日 09:11:49 版权所有 (c) Microsoft Corporation Enterprise Edition:Windows Server 2016 Datacenter 10.0 上基于内核的许可(64 位)(内部版本 14393:)(管理程序)26CPU/20GB RAM
重建前的索引大小:~110Gb,重建后:~30Gb
解决方案
推荐阅读
- mysql - 如果值为零则选择全部,否则选择条件mysql存储过程
- matlab - MATLAB:计算表列中的标点符号
- java - 我必须输入名字、姓氏、学生 ID 和平均值,并将其显示在新 csv 文件上用逗号分隔的行上。我该怎么做呢?
- ruby-on-rails - 如何在系统测试中测试 ActionText rich_text_field?
- google-cloud-platform - 如何使用 gcloud cli 获取操作系统类型
- javascript - Google App Script - TypeError:无法读取未定义的属性“名字”(第 13 行,文件“代码”)
- powershell - 无法将 JSON 流数据引入 Azure 事件中心
- mysql - 如何将 Info Application Studio OLAP CUBE 链接到 SSIS?或者我可以将 OLAP DB 转换为 MySQL 吗?
- php - 致命:无法更新 ref 'HEAD':无法附加到 '.git/logs/HEAD':权限被拒绝
- python - 在 Python 中使用 win32.com 取消隐藏分组列