Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Yordamları kullanmanın, sql deyimlerini uygulamadan veri kaynağına taşımasını temel alan bir dizi avantajı vardır. Uygulamada kalan şey, birlikte çalışabilir bir yordam çağrısıdır. Bu avantajlar şunlardır:
Performans Yordamlar genellikle SQL deyimlerini yürütmenin en hızlı yoludur. Önceden hazırlanmış ifade gibi, deyim de iki ayrı adımda derlenip yürütülür. Hazırlanmış yürütmeden farklı olarak, prosedürler yalnızca çalıştırma zamanında yürütülür. Bunlar farklı bir zamanda derlenir.
İş Kurallarıİş kuralı , bir şirketin nasıl iş yaptığıyla ilgili bir kuraldır. Örneğin, yalnızca Satış Sorumlusu başlığına sahip birinin yeni satış siparişleri eklemesine izin verilebileceğini unutmayın. Bu kuralların yordamlara yerleştirilmesi, tek tek şirketlerin uygulama kodunu değiştirmek zorunda kalmadan uygulama tarafından çağrılan yordamları yeniden yazarak dikey uygulamaları özelleştirmesine olanak tanır. Örneğin, bir sipariş girişi uygulaması sabit sayıda parametreyle InsertOrder yordamını çağırabilir; InsertOrder'in tam olarak nasıl uygulandığı şirketten şirkete farklılık gösterebilir.
Değiştirilebilirlik İş kurallarını prosedürlere yerleştirmekle yakından ilgili olan bir diğer konu da, prosedürlerin uygulamayı yeniden derlemeye gerek kalmadan değiştirilebilmesidir. Bir şirket bir uygulamayı satın alıp yükledikten sonra bir iş kuralı değişirse, şirket bu kuralı içeren yordamı değiştirebilir. Uygulamanın bakış açısından hiçbir şey değişmemiştir; hala belirli bir görevi yerine getirmek için belirli bir prosedürü çağırır.
DBMS'ye özgü SQL Yordamlar, uygulamaların DBMS'ye özgü SQL'i kullanmasına ve hala birlikte çalışabilir durumda kalmasına yönelik bir yol sağlar. Örneğin, SQL'de akış denetim deyimlerini destekleyen bir DBMS üzerinde çalışan bir yordam hataları yakalayıp onlardan kurtulabilirken, akış denetim deyimlerini desteklemeyen bir DBMS üzerinde çalışan bir yordam yalnızca bir hata döndürebilir.
Yordamlar işlemler sonrasında da devam eder Bazı veri kaynaklarında, bir işlem onaylandığında veya geri alındığında, bir bağlantıdaki tüm hazırlanmış ifadeler için erişim planları silinir. SQL ifadelerini, veri kaynağında kalıcı olarak depolanan prosedürlere yerleştirerek, ifadelerin işlemden sonra da geçerli kalmasını sağlamak. Yordamların hazır, kısmen hazırlanmış veya hazırlıksız durumda kalıp kalmadığı DBMS'ye özgüdür.
Ayrı geliştirme Yordamlar uygulamanın geri kalanından ayrı olarak geliştirilebilir. Büyük şirketlerde bu, yüksek düzeyde uzman programcıların becerilerini daha da kötüye kullanmak için bir yol sağlayabilir. Başka bir deyişle, uygulama programcıları kullanıcı arabirimi kodu yazabilir ve veritabanı programcıları yordam yazabilir.
Prosedürler genellikle dikey ve özel uygulamalar tarafından kullanılır. Bu uygulamalar sabit görevler gerçekleştirme eğilimindedir ve bu uygulamalarda yordam çağrılarını sabit kodla uygulamak mümkündür. Örneğin, bir sipariş girişi uygulaması InsertOrder, DeleteOrder, UpdateOrder ve GetOrders yordamlarını çağırabilir.
Genel uygulamalardan yordam çağırmak için çok az neden vardır. Prosedürler genellikle belirli bir uygulama bağlamında bir görevi gerçekleştirmek için yazılır ve bu nedenle genel uygulamalar için uygun değildir. Örneğin, bir elektronik tablonun az önce bahsedilen InsertOrder yordamını çağırmak için bir nedeni yoktur. Ayrıca, genel uygulamalar daha hızlı deyim yürütme sağlama umuduyla çalışma zamanında yordamlar oluşturmamalıdır; bunun hazır veya doğrudan yürütmeden daha yavaş olması mümkündür, aynı zamanda DBMS'ye özgü SQL deyimleri de gerektirir.
Bunun bir istisnası, genellikle programcıların yordamları çalıştıran ve test eden SQL deyimlerini oluşturabilmesi için bir yol sağlayan uygulama geliştirme ortamlarıdır. Bu tür ortamlar, giriş, giriş/çıkış ve çıkış parametrelerini, yordam dönüş değerini ve bir yordam tarafından oluşturulan sonuç kümelerinin sütunlarını listelemek için SQLProcedures'u kullanılabilir yordamları ve SQLProcedureColumns'u çağırır. Ancak, bu tür yordamların her veri kaynağında önceden geliştirilmesi gerekir; bunu yapmak için DBMS'ye özgü SQL deyimleri gerekir.
Prosedürleri kullanmanın üç önemli dezavantajı vardır. İlki, uygulamanın çalıştırılacağı her DBMS için yordamların yazılması ve derlenmiş olmasıdır. Bu, özel uygulamalar için sorun oluşturmasa da, bir dizi DBMS ile çalışacak şekilde tasarlanmış dikey uygulamaların geliştirme ve bakım süresini önemli ölçüde artırabilir.
İkinci dezavantaj, birçok DBMS'nin yordamları desteklememesidir. Yine, bu büyük olasılıkla bir dizi DBMS ile çalışacak şekilde tasarlanmış dikey uygulamalar için bir sorun olabilir. Yordamların desteklenip desteklenmediğini belirlemek için, bir uygulama SQL_PROCEDURES seçeneğiyle SQLGetInfo çağırır.
Özellikle uygulama geliştirme ortamları için geçerli olan üçüncü dezavantaj, ODBC'nin yordam oluşturmak için standart bir dil bilgisi tanımlamamasıdır. Diğer bir ifadeyle, uygulamalar yordamları birlikte çalışabilir olarak çağırsa da, bunları birlikte çalışılabilir şekilde oluşturamazlar.