Kullanılmayan Tabloları Tespit Etmek

İyi bir veritabanı yöneticisi bir veritabanı sistemine bakmaya başladığında ilk yapması gereken işlemlerden biri veritabanlarındaki kullanılmayan indexleri ve tabloları tespit edip kaldırmaktır.

 

Tabloları kaldırmadan önce uygulamacıyla konuşmanız ve aşağıdaki script sonucunda dönen listeyi uygulamacılara göndermeniz ve uygulamacı onayını aldıktan sonra tabloları kaldırmanız daha sağlıklı olacaktır. Çünkü tablo yılda bir kez bir gün kullanılıyor olabilir!

 Kullanılmayan index’leri bulmak için de “Kullanılmayan Indexleri Tespit Etmek” isimli makaleye göz atmak isteyebilirsiniz.

 

Aşağıdaki script yardımıyla sql server servisinin en son restartından bu yana kullanılmamış tabloları bulabilirsiniz.

 

NOT: En az 1 Aydır Kullanılmamış Tabloları Getirir.

 

WITH CTE (ObjectID, SonIslemZamani)
AS
(
    SELECT object_id AS TableName, MAX(Last_User_Seek) as SonIslemZamani
    FROM sys.dm_db_index_usage_stats u
    WHERE database_id = db_id(db_name())
GROUP BY object_id

UNION

    SELECT object_id AS TableName,MAX(last_user_scan) as SonIslemZamani
    FROM sys.dm_db_index_usage_stats u
    WHERE database_id = db_id(db_name())
GROUP BY object_id

UNION

    SELECT object_id AS TableName,MAX(last_user_lookup) as SonIslemZamani
    FROM sys.dm_db_index_usage_stats u
    WHERE database_id = db_id(db_name())
GROUP BY object_id

UNION

    SELECT object_id AS TableName,MAX(last_user_update) as SonIslemZamani
    FROM sys.dm_db_index_usage_stats u
    WHERE database_id = db_id(db_name())
GROUP BY object_id
)


SELECT OBJECT_NAME(ObjectID)AS TableName,
    MAX(SonIslemZamani) as SonIslemTarihi
FROM sys.objects O
LEFT JOIN CTE C ON c.ObjectID=O.object_id
WHERE O.is_ms_shipped=0
AND O.type<>'S'
GROUP BY OBJECTID
HAVING MAX(SonIslemZamani) <DATEADD(month, -1, GETDATE())
ORDER BY MAX(SonIslemZamani) ASC
--ORDER BY OBJECT_NAME(c.ObjectID) -- İsterseniz bu kısmı açarak tablo ismine göre sıralayabilirsiniz.

 

Bir cevap yazın

Your email address will not be published. Required fields are marked *.

*
*

Lütfen captcha kodunu giriniz *

Lütfen Resimdeki Kodu Boşluğa Giriniz.
You may use these <abbr title="HyperText Markup Language">HTML</abbr> tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Lütfen captcha kodunu giriniz *

Lütfen Resimdeki Kodu Boşluğa Giriniz.