Dinamik Sorgularda Exec’mi sp_ExecuteSql’mi Kullanmalı

SQL Server‘da her t-sql sorgusu çalıştırıldığında database engine Cache‘de saklanan bir Query Plan oluşturur. Stored procedure kullanımında Query Plan bir kez oluşturulur ve stored procedure her çalıştırıldığında daha önce oluşturulan Query Plan kullanılır.

Query Plan oluşturulma işlemi maliyetli olduğu için tekrar tekrar Query Plan oluşması performans açısından olumsuz yönde etki edecektir.

Bazı durumlarda Stored Procedure içinde Dinamik Sql oluşturmamız gerekebiliyor. Dinamik olarak oluşturduğumuz sorguyu çalıştırmak için iki farklı komutumuz vardır.

exec ve sp_executesql
Exec : Dinamik olarak oluşturduğumuz sorgu için daha önce oluşan Query Planı kullanmak yerine yeni bir Query Plan oluşturur.
Sp_ExecuteSql : Dinamik olarak oluşturduğumuz sorgu için daha önce oluşan Query Planı kullanır. Performans açısından sp_executesql kullanızı tavsiye ederim.

Mesut Güneş

Selçuk Üniversitesi Bilgisayar programcılığı bölümünden mezun olduktan sonra birçok firmada Yazılım, İş zekası ve Veritabanı Uzmanı olarak çalıştım. Şuan Türkiye’nin en büyük şirketlerinden biri olan Doğan Online’da Veritabanı Yöneticisi olarak çalışıyorum.

You may also like...

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.