11 Haziran 2010 Cuma

IndexFragmentation

Merhaba Index fragmantasyonu ve ayrıntılı bilgiler bigün lazım olur
Veri tabanınızda indexlerin berbat durumda olup olmadığını,external veya internal fragmentation gerçekleşip gerçekleşmediğini anlamak istiyor iseniz aşağıdaki karışık T-SQL komutunu çalıştırmanız gerekiyor.

SELECT OBJECT_NAME(dt.object_id), si.name,
dt.avg_fragmentation_in_percent, dt.avg_page_space_used_in_percent
FROM
(SELECT object_id, index_id, avg_fragmentation_in_percent, avg_page_space_used_in_percent
FROM sys.dm_db_index_physical_stats (DB_ID('AdventureWorks'), NULL, NULL, NULL,'DETAILED')
WHERE index_id <> 0) as dt --does not return information about heaps
INNER JOIN sys.indexes si
ON si.object_id = dt.object_id
AND si.index_id = dt.index_id


Çıkan sonuca baktığımızda
· Eğer avg_fragmentation_in_percent değeri 10’un üstündeyse o index için external fragmentation vardır denir.
· Eğer avg_page_space_used_in_percent değeri 75’in altında ise bu durumda da internal fragmentation vardır denir.

Tabloya bakarak AdventureWorks veri tabanının indexlerinin halinin pekde içaçıcı olmadığı söylenebilir.


ayrıntılı anlatımı aşağıdaki sayfada bulabilirsiniz
http://www.msegitim.net/sql/IndexFragmentation.aspx


http://www.sql-server-performance.com/tips/rebuilding_indexes_p1.aspx

Hiç yorum yok: