我一直在阅读有关 SQL Server 索引碎片以及如何重建/重组的信息。我很好奇如何编写有关它的脚本。我有一个脚本将生成带有表索引的表并以百分比显示碎片:
SELECT
dbschemas.[name] as 'Schema',
dbtables.[name] as 'Table',
dbindexes.[name] as 'Index',
indexstats.avg_fragmentation_in_percent,
indexstats.page_count
FROM
sys.dm_db_index_physical_stats (DB_ID(), NULL, NULL, NULL, NULL) AS indexstats
INNER JOIN
sys.tables dbtables on dbtables.[object_id] = indexstats.[object_id]
INNER JOIN
sys.schemas dbschemas on dbtables.[schema_id] = dbschemas.[schema_id]
INNER JOIN
sys.indexes AS dbindexes ON dbindexes.[object_id] = indexstats.[object_id]
AND indexstats.index_id = dbindexes.index_id
WHERE
indexstats.database_id = DB_ID()
ORDER BY
indexstats.avg_fragmentation_in_percent desc
我可以添加ALTER INDEX __NAME_OF_INDEX__ ON __NAME_OF_TABLE__ REBUILD
到这个脚本还是我必须编写一个新脚本。
我找到了http://sqlfool.com/2011/06/index-defrag-script-v4-1/但不确定如何正确使用它。
我是数据库管理的新手,正在尝试设置一个维护计划,该计划将在索引达到特定阈值时重建索引。
如果您是 DBA 角色的新手,请访问此站点:
奥拉
你想做的事情已经完成了。
任何 DBA 都应该将此站点列在他们的收藏夹列表中。