SQL Server’da Stored Prosedürlerinizin Önüne Neden “sp_” Eklememelisiniz?

SQL Server'da Stored Prosedürlerinizin Önüne Neden "sp_" Eklememelisiniz?
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.

273 Kez Okundu

Yavuz Selim Kart

Yazılım ve veri tabanında bildiklerimi anlatmaya gayret ediyorum. Halen birçok programlama dili üzerinde araştırmalar yaparak kendimi geliştiriyorum. Bunlar haricinde Grafik Tasarım ve Wordpress konularına da ilgim bulunmakta. SEO ve Sosyal medya yönetimleri hakkında da bilgim mevcuttur. Kısaca çok çalışmayı seven azimli biriyim.

You may also like...

Yazı kopyalamak yasaktır!