A-K*_*Kay 6 sql-server-2008 sql-server sql-server-2008-r2
我已经在 ServerFault 上发布了这个,但没有多少运气得到回应。
我有一个相当大的 SQL Server 数据库(~2TB)。大多数数据都在一个表中(约 60 亿行)。
两周前,我在大表上删除了两个非聚集索引,并将数据迁移到单个 6TB RAID SSD 阵列上。然后我重新创建了两个需要很长时间的索引(假设因为我目前有数据(用于表和索引)并登录到同一个阵列上,似乎使用 RAID 我不能有快速的顺序和随机 r/w同时)。
无论如何,在重新创建索引后,它运行了大约一个星期。在这一周中,我一直在大桌子上慢慢清理,它只是删除了旧的不需要的行。到目前为止,我已经从 60 亿中删除了大约 3 亿,而且我猜测我还有很多事情要做。
现在像这样运行了大约一个星期后,它现在运行得很慢,我不确定哪个最好。
现在的情况:
大表目前有(我之前没有任何碎片信息):
你认为什么最能解决我的问题
碎片化的索引会导致更高的 CPU 使用率吗?
还有什么我可能会错过的吗?
TIA
与其查看索引,不如开始查看导致 CPU 使用率高的查询。从Michael J. Swart 的 DMV 查询开始,查找 CPU 使用率最高的查询。查看查询正在使用哪些索引,它们是否正在执行隐式转换等操作。但通常不会,碎片本身可能不会这样做。