我目前正致力于将sqlserver2008r2迁移到SQL server 2016。我之前的DBA使用了https://ola.hallengren.com/downloads.html中的“C0”来创建iIndex解决方案。我可以看到作业是按月调度和运行的,逻辑应用是:如果碎片< 20,那么重新组织索引,如果碎片> 40,重构索引,我计划通过SSMS使用维护计划来重组或重建索引。如何找到哪一个已经运行了“重组/重建”,我可以看到一些表的碎片在66以上。认为重建指数没有发生是对的吗?
发布于 2019-07-05 15:26:47
正如Aaron在注释中提到的那样,您看到的具有很多分段性的索引可能因为索引太小或太大而跳过(默认情况下没有索引太大)。
您可以在sp定义中搜索以下参数,并检查作业以确保没有传递其他值:
@MinNumberOfPages INT = 1000,
@MaxNumberOfPages INT = NULL,另一种可能是索引正在被重建,然后再被重新分割。对我来说,这将是一个迹象,持续重建该索引实际上不是一个好的帮助。
如果您正在寻找索引重建的时间\如果索引被重建,Ola sp确实能够登录到表中,希望前面的DBA使用此功能。如果是这样的话,您可以使用下面的内容来计算上一次重建索引的时间。
SELECT
'[' + DatabaseName + '].[' + SchemaName + '].[' + ObjectName + ']' AS ObjectName,
MAX(StartTime)
FROM
dbo.CommandLog
WHERE
CommandType = 'ALTER_INDEX'
GROUP BY
'[' + DatabaseName + '].[' + SchemaName + '].[' + ObjectName + ']' https://dba.stackexchange.com/questions/242184
复制相似问题