Bu makalede Execution Plan operatörlerin olan Clustered Index Scan operatörünü görmüş olacağız. İlk olarak sorgumuzun primary key tanımlanmadan dönen execution plan yapısı aşağıdaki ekran resminde görülmektedir. Table Scan makalesinde bu operatörün ne işe yaradığına değinmiştik. İlgili makaleyi sayfamızdan okuyabilirsiniz. Şimdi böyle bir yapıyla karşılaşınca ne gibi bir adım yaparız buna değinmiş olalım.

Yukarıdaki tablomuzun ilk kolununa clustered indexs(primary key) tanımladıktan sonra sorgumuzun Execution Plan yapısını gözlemleyelim. Tablomuzun altında Index bölümünde Clustered Index yapımızı oluşturuyoruz.

Tablomuzun ilk kolonuna aşağıdaki ekran resminde görüldüğü gibi bir Clustered Index tanımlayalım.

Index yapımızı oluşturduktan sonra tekrardan yukarıdaki sorgumuzu çalıştırıp Execution Plan yapımıza bakalım.

Daha sonra Clustered Index Scan operatörünün üzerine gelip ilgili tooltip yapısını inceliyelim.

Yukarıda tooltip yapısını incelediğimizde Object kısmında PK_Address indexs yapısını kullandığını görmüş oluyoruz.
Clustered Index Scan, tabloya herhangi bir koşul belirtmediğimizde ya da index tanımladığımız kolonu değil başka bir kolonu koşulumuzda belirttiğimizde karşılaşacağımız operatördür.
Clustered index Scan işlemi ise Table Scan işlemiyle hemen hemen aynı kavramı temsil etmekte olup tablo üzerinde Clustered indeks olmasına rağmen SQL Server’ın kayıtlara Table Scan işleminde olduğu gibi satır satır erişip işlem yaptığını gösterir. SQL Server’ın bu şekilde işlem yapmasının sebebi sorgu sonucunda çok fazla kayıt döndürüleceği için tablodaki verilere Table Scan işlemindeki gibi satır satır erişmenin daha hızlı olacağına karar vermesinden kaynaklanmasıdır. Bu sebeple Clustered Index Scan işlemi için Table Scan işlemi ile hemen hemen aynıdır demek de yanlış bir tabir olmaz. Çünkü SQL Server clustered indeksi filtreleme amaçlı kullanmadan tüm veriye satır satır erişmiştir.
Bu konuda dikkat edilmesi gereken en önemli nokta bu operatörün adının Clustered Index kelimesini içerse bile veriye erişirken indeksin kullanılmıyor olmasıdır. Bu da özellikle büyük tablolar üzerinde ciddi bir performans kaybına sebep olmaktadır.
Clustered Index Scan operatörün görüldüğü durumlarda tablolardaki kayıt sayısını azaltırsak Clustered Index Scan operatörünü başka bir operatöre geçirebiliriz. Where ifadesiyle sorgu sonunda dönen kayıt sayısını azaltmamız gerekmektedir.
Bu makalede Clustered Index Scan operatörünü görmüş olduk. Başka bir makalede görüşmek dileğiyle..
“Allah’tan kulları içinde ancak ilim sahibi olanlar korkar.” Fâtır sûresi – 28