SQL Server’da Otomatik İstatistik Oluşumu (_WA İstatistikleri) ve Kullanımı

SQL Server’ın sorgu optimizasyon motoru, veritabanı performansını artırmak için birçok akıllı mekanizma içerir. Bunlardan en önemlilerinden biri de “otomatik istatistik oluşturma” özelliğidir. Bu makalede, SQL Server’ın otomatik olarak nasıl istatistik oluşturduğunu, bu istatistiklerin ne işe yaradığını ve nasıl yönetileceğini detaylı bir şekilde inceleyeceğiz.

SQL Server, uygun maliyetli bir yürütme planı hazırlamak için WHERE ifadesinden sonra gelen ve indeksi olmayan her sütun için otomatik olarak istatistik değerleri oluşturur. Bu istatistikler, sorgu optimizasyon motoruna veri dağılımı hakkında kritik bilgiler sağlar.

Otomatik olarak oluşturulan istatistiklerin adı “_WA” ile başlar (örneğin: _WA_Sys_00000002_5EBF139D). Bu özel isimlendirme, hangi istatistiklerin sistem tarafından otomatik oluşturulduğunu kolayca anlamamızı sağlar.

SQL Server tarafından otomatik olarak oluşturulan istatistikleri görmek  için aşağıdaki sorguyu kullanılır. Yukarıdaki paylaşılmış olan komuttan tek fark like ifadesinde  ilgili ismi çağırmasıdır.

use [AdventureWorks2014]
SELECT sp.stats_id, 
       name, 
       filter_definition, 
       last_updated, 
       rows, 
       rows_sampled, 
       steps, 
       unfiltered_rows, 
       modification_counter
FROM sys.stats AS stat
     CROSS APPLY sys.dm_db_stats_properties(stat.object_id, stat.stats_id) AS sp
WHERE stat.object_id = OBJECT_ID('Person.Address')
and name like '_WA%';

Birden fazla _WA istatistiği bulunduğunda, her birinin hangi kolona ait olduğunu anlamak için SQL Server Management Studio (SSMS) arayüzü üzerinden tablo altında yer alan “Statistics” bölümüne gidilerek ilgili istatistik seçilir. İstatistiğe çift tıkladığınızda, hangi kolona ait olduğunu görebilirsiniz. Örneğin, aşağıdaki resimde görüldüğü üzere ModifedDate kolonu için bir otomatik istatistik oluşturulmuştur.

SQL Server’daki otomatik istatistik oluşturma mekanizması, sorgu performansını artırmak için oldukça önemli bir özelliktir. Özellikle indekslenmemiş sütunlarda yapılan filtreleme işlemleri sırasında sistemin kendi kendine veri yapısını tanıması, doğru yürütme planlarıyla sonuçlanır. _WA ile başlayan bu istatistikler, sistemin ne kadar dinamik ve zeki çalıştığının bir göstergesidir.

Geliştiricilerin ve veritabanı yöneticilerinin bu istatistikleri nasıl oluştuğunu ve nasıl takip edileceğini bilmesi, sistemin genel performansını değerlendirme açısından büyük avantaj sağlar.

NOT: Yukarıda bahsedilen istatistikler join işlemlerinde faydalı olmaktadır.

Bu makalede mssql server otomatik olarak oluşturulan istatistiğin ne olduğunu detaylı bir şekilde görmüş olduk. Başka bir makalede görüşmek dileğiyle..

“Kur’an okunduğu zaman hemen dikkat kesilerek ona kulak verin, susup dinleyin ki rahmete eresiniz.”A’râf-204

Author: Yunus YÜCEL

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir