Dizin bakımı için Ola Hallengrens betiğini kullanıyorum. Bunu yapmadan önce, hangi dizinleri en çok parçalanmış görmek için aşağıdaki sorguyu kullandım:
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
ORDER BY indexstats.avg_fragmentation_in_percent desc
Benim durumumda, avg_fragmentasyon 15 dizin için % 70'in , 28 dizin için % 30'un üzerindeydi .
Bu yüzden her endeksi Ola Hallengren'in çözümünü kullanarak yeniden inşa ediyorum. Sorguyu tekrar çalıştırdığımda, sonuç buydu:
12 indeks için % 70'in üzerinde , 15 endeks için % 30'un üzerinde parçalanma .
Bunun sebebi, page_count
hala çok parçalanmış olan her bir indeks için 1000'den daha düşük olması nedeniyle olduğunu düşündüm . Örneğin, page_count
967 değerine sahip dizinlerden birinin
parçalanma yüzdesi % 98,98'dir ! Bana göre, bu endeksi yeniden oluşturmaya değer! Yaptım ve daha sonra parçalanma % 0 idi . Ayrıca, bir indeks page_count
132 gitti % 95 ile % 0
Yani, sorum şu, bu dizinleri yeniden oluşturmak DEĞİL ne sebepleri olurdu? Bunun bir nedeni, yeniden inşa etmenin zamana ve kaynaklara mal olması olabilir, ancak endeksler küçük olduğu için, bu nispeten az kaynağa mal olduğu anlamına gelmez ve yine de yeniden inşa etmenin faydası olmaz mı?
Bu sitede birden çok ilgili soru var, ancak hepsi bir dizinin neden birleştirilmeyeceği veya dizinler küçükse ve bunları birleştirmezseniz hala faydalıysa sorusuna cevap verirken, burada ifade parçalanmayı azaltır, soru şu ki, neden yine de yapmıyorsunuz?