Table Scan, SQL Server’ın bir sorguyu çalıştırırken tüm tabloyu baştan sona taraması işlemidir. Bu genellikle bir indeks olmadığında veya indeks kullanılamadığında ortaya çıkar.Kısacası tablo baştan sona kadar taranmaktadır. Genellikle Heap Tablo olarak adlandırılmaktadır. Yani belirli bir sıraya göre olmadan dağınık tablo yapılarında görülür.
Table Scan’in Avantajları:
Küçük Tablolar İçin Performanslıdır. Küçük boyutlu tablolar (örneğin 100-200 satır) için table scan hızlı olabilir çünkü SQL Server tüm tabloyu belleğe alıp işlemi hızlıca tamamlayabilir. İndeks oluşturma ek yükü olmadan veriye doğrudan erişebilir.
Eğer tabloya çok sık yazma (INSERT/UPDATE/DELETE) işlemi yapılıyorsa, fazla indeks olması güncelleme performansını düşürebilir. Bazen table scan, indeksin sürekli güncellenmesinden daha hızlı olabilir.
Table Scan’in Dezavantajları:
Büyük Tablolarda Performans Problemi Yaratır. Eğer tabloda milyonlarca satır varsa, her sorguda tüm tabloyu taramak çok maliyetlidir. Bu durumda, index seek ile belirli satırlara hızlıca ulaşmak daha iyidir
CPU ve I/O Kullanımını Artırır. Tüm tabloyu okumak, disk I/O ve CPU kullanımını artırır, bu da sunucunun genel performansını düşürebilir. Özellikle büyük veri tabanlarında, diğer sorguların da yavaşlamasına neden olabilir.
Heap Table üzerindeki tüm kayıtların okunması işlemi Table Scan operatörü ile temsil edilir.

Grafiksel Execution planlar okunurken sağdan sola doğru yorumlama yapılır. Çünkü en sol tarafta ilk yapılan işlem belirtilmektedir. Bizim örneğimizde olduğu gibi önce Table Scan ile tablo taranmış ve Select ikonu ile veriler gösterilmiş oldu.
Yukarıdaki sorgu sonucunda tüm tablo sonucu getirildiği için Table Scan işlemi gerçekleşir. Tablomuzda herhangi bir clustered indexs yapısı yoktur. Bazı durumlarda sql server herhangi bir indexs yapısı olmadığı için table scan yapısını tercih etmektedir.

Execution plan yapımızda bulunan Table Scan ifadesinin üzerine geldiğimizde ilgili operatörü açıklayan Tooltip penceresi karşımıza geçmektedir. Bu tooltip penceresinde ilgili operatör ile ilgili detaylı bilgilere ulaşabiliriz. MSSQL Server Execution Plan Yorumlanması makalesinde ilgili bölümlerin ne işe yaradığını görebiliriz.
Bu makalede MSSQL Server Execution Plan Table Scan Operatörünü görmüş olduk. Başka bir makalede görüşmek dileğiyle.
“De ki: Hiç bilenlerle bilmeyenler bir olur mu?”Zümer sûresi-9