SQL Server’da Stored Prosedürlerinizin Önüne Neden “sp_” Eklememelisiniz?
Herkese merhaba. Bu yazıda SQL Server’da Stored Prosedürlerinizin önüne neden “sp_” eklememeniz gerektiği ile ilgili bilgi vermeye çalışacağım.
Çoğu insan SQL Server’da Stored Prosedür oluştururken Stored Prosedür adının başına “sp_” koyma eğilimidir.
Bunun kötü bir uygulama olarak kabul edilmesinin birkaç nedeni var.
Microsoft bunu yapmamanız gerektiğini söylüyor.
Aşağıda Microsoft’un açıklamasını okuyabilirsiniz.
Stored Prosedürleri adlandırırken sp_ öneki kullanmaktan kaçının . Bu önek, sistem prosedürlerini belirlemek için Microsoft SQL Server tarafından kullanılır. Ön ekin kullanılması, aynı ada sahip bir sistem yordamı varsa uygulama kodunun bozulmasına neden olabilir.
Bunun anlamı, Stored Prosedürünüzü yanlışlıkla SQL Server’ın Stored Prosedüründen biriyle aynı adla adlandırırsanız, Stored Prosedürünüz çağrılmayacaktır. Bunun yerine, SQL Server Sistem Stored Prosedürü çağrılır.
Örneğin, veritabanınızda “sp_configure” adlı bir Stored Prosedür oluşturduysanız, onu çağırdığınızda asla yürütülmez çünkü ana veritabanında “sp_configure” adlı bir sistem Stored Prosedür vardır ve onun yerine çağrılır.
İkinci olarak SQL Server, bir Stored Prosedürün başında “sp_” ifadesini gördüğünde, önce ana veritabanında bu prosedürü bulmaya çalışır. Yukarıdaki Microsoft belgelerinde belirtildiği gibi, ” Bu önek SQL Server tarafından sistem prosedürlerini belirtmek için kullanılır “, bu nedenle SQL Server “sp_” ifadesini gördüğünde sistem prosedürlerini aramaya başlar. Ancak ana veritabanındaki tüm prosedürleri aradıktan ve prosedürünüzün orada olmadığını belirledikten sonra, saklı prosedürü bulmaya çalışmak için veritabanınıza geri dönecektir.
Üstteki yazıda belirtildiği üzere “sp_” ile adlandırılan prosedürler daha yavaş çalışacaktır. Tabi bu her zaman fark edilmeyebilir.
Yukarıdaki durumun istisna olduğu zamanlar vardır.
Use DatabaseOrnek
EXEC dbo.sp_configure
ile
Use DatabaseOrnek
EXEC DatabaseOrnek.dbo.sp_configure
İkinci örnek prosedürünüzü doğru şekilde çağıracaktır.
Ancak bunun çalışması için her seferinde şu şekilde (veritabanıadi.semaadi.prosedüradi) şeklinde çağırmanız gerekir.
SQL Server sistem veritabanında kasıtlı olarak bir Stored Prosedür oluşturmuyorsanız, Stored Prosedürü “sp_” önekiyle adlandırmanın geçerli bir nedeni yoktur. Stored Prosedürü bulmak için SQL Server’ı yanlış veritabanına göndermek pek uygun değildir. Kafa karıştırıcı, verimsiz ve performans sorunlarına neden olabilir. Öyleyse neden riske girelim? Veritabanlarınızın en yüksek performansı sürdürmesine yardımcı olmak için Stored Prosedür adlarınızda “sp_” kullanmaktan kaçının.
Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.