IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası
  sohbet

Yeni Konu aç Cevapla
 
LinkBack Seçenekler Stil
Alt 29 Aralık 2013, 03:19   #1
Çevrimiçi
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
SQL Server – İstatistik (Statistic) Nedir




SQL Server’da Query Optimizer, bir sorgunun nasıl çalıştırılacağıyla ilgili alternatifleri inceleyip karar veren bir yapıdır. Bu kararı verirken veri dağılım şeklinin çok önemli olduğu durumlar da olur. Mesela bir koşul acaba 100 bin satırdan 3′ünü mü döndürüyor yoksa 30 bini mi, bunu bilmesi gerekir ki indeks kullanıp kullanmamaya karar versin.

İstatistikler sayesinde, sorgu planı (Query Plan) oluşturulurken sorgudaki where bloğunda kullanılan kolon için dönecek tahmini kayıt sayısı bulunur. Bulunan bu değer index’e erişim şeklini belirler. Temel amaç, datayı en hızlı ve en az maliyetli şekilde kullanıcının karşısına getirmektir.

İstatistikler Management Studio’da index listesinin hemen altında bulunurlar.


Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


TSQL ile de istatistiklerin sorgulanması mümkündür. Bunun için sys.stats Catalog View’i kullanılabilir.


Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


AdventureWorks2012 DB’si üzerinde Sales.Customer Tablosuna ait Stats bulmamızı sağlıyor. Örnek Resim aşağıdadır.


Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


sys.stats, istatistiklerin isim, otomatik oluşturulup oluşturulmadığı gibi genel bilgilerini vermektedir. İstatistiğin hangi kolonlar üzerine oluşturulduğuna bakmak için sys.stats_columns Catalog View’i kullanılabilir.

Tablo üzerinde bulunan istatistiklere ve bu istatistiklerin hangi kolonlar üzerine oluşturulduğuna sp_helpstatssistem SP’si ile daha kolayca bakılabilir. sp_helpstats ile Sales.Customer tablosunda bulunan istatistikleri aşağıdaki şekilde sorgulayabiliriz.


Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.



Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


Tablo üzerinde bulunan istatistiklerin tümünün bir diğer sorgulanma şekli de sp_statistics sistem SP’sinin kullanılmasıdır. Bu SP, sp_helpstats’a oranla daha fazla detay bilgi getirmektedir.


Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


Tablo üzerine index oluşturulduğu zaman index’te kullanılan ilk kolon için istatistik otomatik olarak oluşturulur. Diğer kolonlar için ise, eğer bu kolonlar sorgunun where bloğunda kullanılırsa veAuto_Create_Statistics veritabanı özelliği aktif ise otomatik olarak istatistik oluşturulacaktır. Sonraki yazılarda bu konuya tekrar değineceğim.

İstatistik otomatik olarak oluşturulabileceği gibi CREATE STATISTICS komutu ile elle oluşturulabilir. Örneğin Person.Address tablosunda bulunan PostalCode kolonu için istatistik oluşturmak için aşağıdaki komutu kullanabiliriz.


Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


İstatistik oluşturulma ya da güncellenme aşamasında, tablonun boyutu 8 MB’dan büyük ise tablodan rasgele kayıtlar seçilerek örnekleme yapılır. Aksi durumda yani tablo 8 MB’dan küçük ise örneklem olarak tablonun tamamı kullanılır yani istatistik kolonu için bütün tablo okunur. Bu durum “FullScan” olarak ifade edilmektedir.
Tablonun 8 MB’dan büyük olduğu durumlarda gene de FullScan yapılması isteniyorsa, istatistik oluşturma komutu “FULLSCAN” anahtarı ile çalıştırılır.

Yukarıdaki şekilde tablo bazıdna istatistik oluşturulabileceği gibi veritabanında bulunan bütün kolonlar için topluca istatistik oluşturulması mümkündür. Bu amaç için kullanılan obje sp_createstats sistem prosedürüdür. Örneğin aşağıdaki kod ile veritabanında bulunan bütün uygun kolonlar için istatistik oluşturulabilir. (Live Sistemde uygularken dikkatli olmalısınız.)


Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


Veritabanındaki tablolarda tanımlı istatistiklerin kapsamı dışında kalan kolonlara istatistik oluşturmak için aşağıdaki komutu kullanabiliriz. Bu komut veritabanında bulunan tüm kolonlar için değil sadece index’lerin birincil olmayan kolonları için istatistik oluşturulacaktır.


Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


8 MB’dan büyük tablolarda örneklemin rasgele kayıtlardan değil bütün kayıtlardan yapılabilmesi için sp_createstats sistem prosedüründe FULLSCAN parametresi kullanılabilir.


Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]

 
Alıntı ile Cevapla

IRCForumlari.NET Reklamlar
sohbet odaları sohbet odaları Benimmekan Mobil Sohbet
Cevapla

Etiketler
nedir, server, sql, statistic, İstatistik,


Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir)
 
Seçenekler
Stil

Yetkileriniz
Konu Acma Yetkiniz Yok
Cevap Yazma Yetkiniz Yok
Eklenti Yükleme Yetkiniz Yok
Mesajınızı Değiştirme Yetkiniz Yok

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodu Kapalı
Trackbacks are Kapalı
Pingbacks are Açık
Refbacks are Açık


Benzer Konular
Konu Konuyu Başlatan Forum Cevaplar Son Mesaj
DNS Server Nedir Ne İşe Yarar ? SeckiN Ağ, Network ve Networking 0 27 Ağustos 2013 17:16
Betimsel İstatistik Liaaa Ödev ve Tezler 0 05 Mayıs 2012 11:33
Server nedir? Sır Online Oyunlar 0 20 Ekim 2010 13:24