Tag Archives: sql server tempDB

SQL Server Temp DB Performans Testi

Microsoft SQL Server’daki en önemli sistem veri tabanlarından biri Temp DB veri tabanıdır. Bu geçici veri tabanı ya da tabanlarında geçici yapılan tablo değişiklileri, geçici tablolar ya da geçici nesne değişiklikleri tutulur.

MS’in önerisi Temp veri tabanı sayısı SQL Server’ınız kurduğunuz sunucudaki işlemci/çekirdek sayısına eş değer olsun. Örneğin on altı çekirdekli bir sunucuya MS SQL Server kuruyorsak eğer on altı adet temp DB yaratabiliriz.

Aşağıdaki sorgu da sys.dm_io_virtual_file_stats  dynamic management function (DMF) ini kullanarak yapınızda bulunan tüm Temp DB ler için ne kadar hızlı okuma ve yazma isteklerine cevap verdiklerine dair bir test yapmaktadır.

SELECT files.physical_name, files.name,

stats.num_of_writes, (1.0 * stats.io_stall_write_ms / stats.num_of_writes) AS avg_write_stall_ms,

stats.num_of_reads, (1.0 * stats.io_stall_read_ms / stats.num_of_reads) AS avg_read_stall_ms

FROM sys.dm_io_virtual_file_stats(2, NULL) as stats

INNER JOIN master.sys.master_files AS files

ON stats.database_id = files.database_id

 AND stats.file_id = files.file_id

WHERE files.type_desc = ‘ROWS’

 

Sorgunun sonunda performans ile ilgili değerlere ulaşabilirsiniz.

Burada görmeniz gereken iki şey vardır:

  • Yazma işlemleri veri dosyaları arasında eşit olarak dağıtılıyormu?
  • Yazma işlemi yirmi milisaniye ya da daha altında bir sürede tamamlanabiliyor mu ?

 

Temp DB ile ilgili aşağıdaki video Best Practice konusunda size yardımcı olacaktır.

Bu makaledeki script, video ve bir takım bilgiler www.brentozar.com sitesinden alınmıştır.