DBCC SHOWCONTIG - indexlerin kontrolu ve bakimi KRITIK ve GUZEL konu
Definition Description
/* INDEXLERİN KONTROLU VE BAKIMI -- Mevcut indexi silerek yeniden index ve FillFactor oluşturmaktır. -- Mevcut index ve Fillfactor üzerinde değişklik yaparak yeniden yapılandırmaktır. -- Bölünme (Page Split) OLTP yapısı için yararlıdır. Çünkü, bu yazma tabanlıdır ve ne kadar geniş alan olursa, okadar rahat yazar. OLAP için ise zararlıdır, Çünkü bu okuma tabanlıdır. DBCC SHOWCONTIG: Bu ifade ile tablo üzeride bulunan, veri ve index üzerindeki bölünme bilgilerini elde edebiliriz. Bu komut çalıştığında veri ve index sayfalarının dolu olup-olmadığını ve bölünlenme bilgilerini üretir. Temel olarak SYSINDEXES sistem tablosunu baz alarak, belli süre periyodları için bilgileri döndürür. */ DBCC SHOWCONTIG (musteri) veya DBCC SHOWCONTIG(musteri,cl_musteri) sonuc: DBCC SHOWCONTIG scanning 'musteri' table... - Table: 'musteri' (1938105945); index ID: 1, database ID: 10 TABLE level scan performed. - Pages Scanned................................: 1 - Extents Scanned..............................: 1 - Extent Switches..............................: 0 - Avg. Pages per Extent........................: 1.0 - Scan Density [Best Count:Actual Count].......: 100.00% [1:1] - Logical Scan Fragmentation ..................: 0.00% - Extent Scan Fragmentation ...................: 0.00% - Avg. Bytes Free per Page.....................: 7644.0 - Avg. Page Density (full).....................: 5.56% DBCC execution completed. If DBCC printed error messages, contact your system administrator. /* Yukarıdaki parametreleri kısaca açıklayalım -- Table: 'musteri' (1938105945); index ID: 1, database ID: 10 Index ID değeri 1 ya da 0 olabilir, ancak 0 olduğunda clustered index yoktur. -- Page Scanned: Tablo veya index içindeki sayfa sayısı. Genelde 1000 sayfanın altındakileri görmezden gelir,çünkü optimize etmeye gerek yoktur. -- Extents Scanned: Tablo veya index içindeki extend sayısı -- Extent Switches: Extend safalarında dolaşma sayısı -- Avg Page per Extent: Sayfa zinciri içindeki her bir extend içinde bulunan sayfaların sayısı -- Scan Density: Eğer bu değer %100 ise, herşey tamam demektir. 100 ün altında değer almaya başlarsa o zaman, bazı bölünmeler meydana gelmiş demektir. -- Logical Scan Fragmentation: - Logical fragmentation %10 ve üzerinde olmaya başladığında gecikme belirmeye başlamıştır. - Logical fragmentation %50 ve üzerinde olmaya başladığında, stored procedure ve index kullanımı yavaşlamaya başlamış demektir -- Extent Scan Fragmentation: Sayfa sırasının dağılması. Bir extend bir index'in 8 page lik bölümüdür. Bir index çağrıldığında extend memorye çağrılır. Şayet extend (bir indexin 8 sayfalık bölümü) üzerindeki sayfa sıra bozukluk oranı %70 üzerindeyse, gecikme kaçınılmazdır. -- Avg.Bytes Free per Page: Her sayfada bulunan ortalama boş bayt miktarını gösterir. -- Avg.Page Density (full): Her index sayfasını dolduran data yüzdesidir % . Ortalama Sayfa yoğunluğu Şayet %50 nin altındaysa: memory de okunan extend, index data page içindeki optimal 8 sayfa okunması gerekirken, okumanın 4 sayfaya düşmüş olması demektir. Hafifletici bir Maintanence işleminden sonra sayfa yoğunluk oranı %90 lara çıkar. For optimal performance, logical fragmentation needs to be below 10% and Extent below 70%. Analysis of the above SHOWCONTIG example shows: 1. Index ID = 1, so it qualifies to be examined. 2. Pages Scanned: 1,000 sayfa üzerindeki sayfaların index fragmantetionları önemlidir. 3. Logical Scan Fragmentation is not only above 10% which causes noticeable latency, but is above 50% which makes the index usage significantly slower. 4. Extent Scan fragmentation is above 70% also causing extensive latency. 5. Average Page Density is way below 90% causing more index reads to navigate through an index. */