نقل قول: پس از shrink data file
دوست عزيز Shrink كردن Data file پدر اون رو در مياره بهترين راه حل براي اين موضوع Rebuildكردن مجدد ايندكس ها است
از اين دستور استفاده كن
EXEC sp_MSforeachtable @command1="print '?' DBCC DBREINDEX ('?')"
Shrink حالت هاي مختلفي داره زياد وقت ندارم كه اون رو كامل تشريح كنم
باي
نقل قول: پس از shrink data file
در 2005 و 2008 و Denali مي تواني با استفاده DMV ها وضعيت Fragmentation را بررسي كني
نمونه DMV
SELECT DB_NAME(DPS.DATABASE_ID) AS [DatabaseName] ,OBJECT_NAME(DPS.OBJECT_ID) AS TableName ,SI.NAME AS IndexName ,DPS.INDEX_TYPE_DESC AS IndexType ,DPS.AVG_FRAGMENTATION_IN_PERCENT AS AvgPageFragmentation ,DPS.PAGE_COUNT AS PageCounts FROM sys.dm_db_index_physical_stats (DB_ID(), NULL, NULL , NULL, NULL) DPS --N'LIMITED') DPS INNER JOIN sysindexes SI ON DPS.OBJECT_ID = SI.ID AND DPS.INDEX_ID = SI.INDID ORDER BY DPS.avg_fragmentation_in_percent DESC
---------------
جهت رفع Fragmentation در بعضي از مواقع بايد Rebuildو در برخي Reorganize بايد انجام داد
اصولا Rebuild زمان زيادي را به خود تخصيص مي دهد چون ساختار ايندكس از نوع ساخته مي شود
ولي در Reorganize اينگونه نمي باشد بررسي اين موضوع خود نيازمند Topic جداگانه است
1. sp_MSforeachtable 'ALTER INDEX ALL ON ? REORGANIZE'
2. sp_MSforeachtable 'ALTER INDEX ALL ON ? REBUILD WHILE (ONLINE=ON)'
3. sp_MSforeachtable 'ALTER INDEX ALL ON ? REBUILD
-------
Exec sp_MSForEachtable 'ALTER INDEX ALL ON ? REBUILD;
نقل قول: پس از shrink data file
یعنی با rebuild اثر شرینک کردن دیتافایل رفع می شود؟