İstatistiksel Sistem Fonksiyonları (System Statistical Functions)

Eyl 08, 2013

İstatistiksel sistem fonksiyonları parametre almayan, fonksiyonun yazıldığı andaki SQL Server’ın istatiksel verilerini geri dönen fonsiyonlar bütünüdür. İstatistiksel sistem fonksiyonları veritabanı yöneticisine sistem performansını belirleme ve problem çözme açısından yardımcı olur. Bütün istatistiksel sistem işlevleri kararlı değildir (nondeterministic), yani aynı girdilerin girilmesine rağmen farklı çıktılar dönerler. İstatistiksel sistem fonksiyonları şunlardır:

@@CONNECTIONS: SQL Server’ın son açıldığı zamandan itibaren kurulan bağlantı sayısını döner.

        Örnek: SELECT @@CONNECTIONS
        Sonuç: 4103

@@CPU_BUSY: SQL Server’ın son açıldığı zamandan itibaren işlemcinin meşgul olduğu toplam milisaniyeyi döner.

        Örnek: SELECT @@CPU_BUSY
        Sonuç: 294773

@@IDLE: SQL Server’ın son açıldığı zamandan itibaren SQL Server’ın boşta olduğu toplam milisaniyeyi döner.

        Örnek: SELECT @@IDLE
        Sonuç: 19394849

FN_VIRTUALFILESTATS(): Log dosyaları da dahil olmak üzere veritabanı dosyaları, I/O (Input/Output - Girdi/Çıktı) istatistikleri döndürür.  fn_virtualfilestats (database (veritabanı)_id, file(dosya)_id) şeklinde kullanılır. Sonucunda bir dizi veri döner. Bunlar kısaca şu şekilde açıklanabilir:

DbId: Veri tabanı kimliği.
FileId: Dosya kimliği.
TimeStamp: Veri çekildiği andaki veritabanı zaman damgası.
NumberReads: Verilen dosya üzerinde okuma sayısı.
BytesRead: Verilen dosya üzerinde okunan bayt sayısı.
IoStallReadMS: Dosyanın tamamının giriş-çıkışları okumak için kullanıcıların beklediği süre.
NumberWrites: Dosya üzerinde yapılan yazma sayısı. 
BytesWritten: Dosya üzerinde yazılan bayt sayısı.
IoStallReadMS: Dosyanın tamamında giriş-çıkışları yazmak için kullanıcıların beklediği süre.
IoStallMS: Okuma ve yazma için beklenen sürenin toplamı.
BytesOnDisk: Diskteki fiziksel dosya boyutu. 
FileHandle: Dosyanın tanıtıcı değeri.

        Örnek: SELECT * FROM fn_virtualfilestats (1,1);
        Sonuç: DbId: 1
                   Field: 1
                   TimeStamp: 536271766
                   NumberReads: 47
                   BytesRead: 2670592
                   IoStallReadMS: 57
                   NumberWrites: 1
                   BytesWritten: 8192
                   IoStallWriteMS: 0
                   IoStallMS: 57
                   BytesOnDisk: 4194304
                   FileHandle: 0x0000000000000420
                   
@@IO_BUSY: SQL Server’ın son açıldığı zamandan itibaren I/O operasyonunu gerçekleştirdiği toplam milisaniyeyi döner.

        Örnek: SELECT @@IO_BUSY
        Sonuç: 137780

@@PACK_RECEIVED: SQL Server’ın son açıldığı zamandan itibaren okunan ağ paket sayısını döner.

        Örnek: SELECT @@PACK_RECEIVED
        Sonuç: 59

@@PACK_SENT: SQL Server’ın son açıldığı zamandan itibaren yazılan ağ paket sayısını döner.

        Örnek: SELECT @@PACK_SENT
        Sonuç: 302

@@PACKET_ERRORS: SQL Server’ın son açıldığı zamandan itibaren kaç tane ağ paketi hatası aldığını döner.

        Örnek: SELECT @@PACKET_ERRORS
        Sonuç: 0

@@TIMETICKS: Her tıklamaya karşılık gelen toplam mikrosaniyeyi döner.

        Örnek: SELECT @@TIMETICKS
        Sonuç: 31250

@@TOTAL_ERRORS: SQL Server’ın son açıldığı zamandan itibaren SQL Server’ın disk üzerinde oluşan toplam okuma/yazma hata sayısını döner.

        Örnek: SELECT @@TOTAL_ERRORS
        Sonuç: 0

@@TOTAL_READ: SQL Server’ın son açıldığı zamandan itibaren SQL Server’ın okuduğu toplam disk sayısını döner.

        Örnek: SELECT @@TOTAL_READ
        Sonuç: 1146

@@TOTAL_WRITE: SQL Server’ın son açıldığı zamandan itibaren SQL Server’ın yazdığı toplam disk sayısını döner.

        Örnek: SELECT @@TOTAL_WRITE
        Sonuç: 100