SQL Server Disk IO Analiz Scripti

Mina

Astsubay Başçavuş
Admin
Katılım
25 Kasım 2025
Mesajlar
996
Reaksiyon puanı
34
Disk I/O analizi, SQL Server’ın performansını değerlendirirken göz ardı edilmemesi gereken bir unsurdur. Disk I/O’nun, veritabanı performansında kritik bir rol oynadığını anlamak, belki de sorunları tespit etmenin ilk adımıdır. SQL Server’ın disk I/O performansını izlemek ve analiz etmek için kullanabileceğiniz etkili bir script oluşturmak, sistem yöneticileri için bir zorunluluk haline gelmiştir. İşte, bu noktada işe yarayacak bir SQL scriptine değinmekte fayda var. Scriptin özünü oluşturan temel bileşenler, `sys.dm_io_virtual_file_stats` ve `sys.master_files` gibi dinamik yönetim görünümüdür. Bu görünüm, dosya düzeyinde I/O istatistiklerini sağlar ve sistemin genel durumunu daha iyi anlamamıza yardımcı olur.

Scriptin yazımına geçmeden önce, SQL Server’ın I/O işlemlerinin nasıl çalıştığını anlamak önemlidir. I/O, veri okuma ve yazma işlemlerini içerir. Disk üzerindeki verilerin ne kadar süreyle beklediği, okuma ve yazma işlemlerinin hızını doğrudan etkiler. İşte burada, I/O bekleme sürelerini izlemek için kullanacağımız script devreye giriyor. Aşağıdaki örnek script ile disk I/O performansını analiz edebiliriz. Bu script, her bir dosya için okuma ve yazma işlemlerinin ne kadar süre aldığını ve toplam I/O sayısını gösterir.

```sql
SELECT
mf.name AS 'FileName',
mf.physical_name AS 'PhysicalFileName',
io_reads.num_of_reads AS 'Reads',
io_reads.num_of_bytes_read AS 'BytesRead',
io_writes.num_of_writes AS 'Writes',
io_writes.num_of_bytes_written AS 'BytesWritten'
FROM
sys.master_files AS mf
JOIN
sys.dm_io_virtual_file_stats(NULL, NULL) AS io_reads ON mf.database_id = io_reads.database_id AND mf.file_id = io_reads.file_id
JOIN
sys.dm_io_virtual_file_stats(NULL, NULL) AS io_writes ON mf.database_id = io_writes.database_id AND mf.file_id = io_writes.file_id
ORDER BY
mf.name;
```

Bu scripti çalıştırdığınızda, dosya adlarını, fiziksel yolunu ve diskten okuma/yazma istatistiklerini göreceksiniz. Veritabanının hangi dosyasında ne kadar okuma ve yazma gerçekleştirildiğini anlamak, sistem performansını artırmak için kritik bir adımdır. Ancak dikkat edilmesi gereken bir nokta var; bu scriptin çıktısındaki veriler, zaman içinde izlenmelidir. Yani, sadece anlık bir değerlendirme yerine, düzenli izleme alışkanlığı geliştirmek gerekir. Bu verileri analiz etmek, I/O darboğazlarını tespit etmenizi sağlayacak.

Performans sorunlarına genellikle uygulama seviyesinde odaklanma eğilimindeyiz. Ancak, disk I/O’yu göz ardı etmek, sistemin genel verimliliğini olumsuz etkileyebilir. Eğer disk I/O performansını artırmak istiyorsanız, veritabanı dosyalarınızı farklı disk gruplarına yaymayı düşünebilirsiniz. Bu, okuma ve yazma işlemlerini paralel hale getirerek performansı artırabilir. Örneğin, veri dosyalarını bir RAID 10 yapısına yerleştirmek, hem okuma hem de yazma hızını artırabilir. Bu tür yapılandırmalar, yüksek verimlilik sağlarken, aynı zamanda veri güvenliğini de artırır.

Son olarak, disk I/O analizinin sadece bir başlangıç olduğunu unutmamak gerekir. I/O istatistiklerini takip etmek, sorunları erken aşamada tespit etmenizi sağlar. Ancak, bu verileri sürekli izlemek ve analiz etmek, uzun vadede performans iyileştirmeleri için kritik öneme sahiptir. SQL Server’ınızın disk I/O performansını düzenli olarak değerlendirin, bu sayede veritabanı yönetim süreçlerinizde daha bilinçli kararlar alabileceksiniz. İyi bir izleme ve analiz süreci, veritabanı yöneticileri için sadece bir gereklilik değil, aynı zamanda bir başarı anahtarıdır…
 
Geri
Üst Alt