Tabloya En Son Ne Zaman Erişim Yapıldığını Sorgulama

SQL Server performans çalışmalarında sorulan soruların nerede ise başında “hangi tabloya ne zaman erişim sağlandı?” sorusudur. Aşağıdaki sql sorgusu tabloya ne zaman erişim sağlandığını gösterir.

Kaynak Kod
01
02
03
04
05
06
07
08
09
10
SELECT DB_NAME(ius.[database_id]) AS [Database],
OBJECT_NAME(ius.[object_id]) AS [TableName],
MAX(ius.[last_user_lookup]) AS [last_user_lookup],
MAX(ius.[last_user_scan]) AS [last_user_scan],
MAX(ius.[last_user_seek]) AS [last_user_seek],
MAX(ius.[last_user_update]) AS [last_user_update]
FROM sys.dm_db_index_usage_stats AS ius
WHERE ius.[database_id] = DB_ID()
--AND ius.[object_id] = OBJECT_ID('YourTableName')
GROUP BY ius.[database_id], ius.[object_id]



Sorgu sonucunda gelen kolonların açıklaması:

  • last_user_lookup: Index olmayan bir kolon üzerinde where şartı ile sorgu çalıştığı zaman
  • last_user_scan: Tabloyu sıralı okuduğu zaman, “select * from Table” sorgusu gibi
  • last_user_seek: Tablodan tek değer okunduğu zaman, “select * from Table where Id = 5” sorgusu gibi