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.
Bu makalede saklı yordamları uygulayarak ayrılmış SQL havuzu çözümleri geliştirmeye yönelik ipuçları sağlanır.
Neler bekleyebileceğiniz
Ayrılmış SQL havuzu, SQL Server'da kullanılan T-SQL özelliklerinin çoğunu destekler. Daha da önemlisi, çözümünüzün performansını en üst düzeye çıkarmak için kullanabileceğiniz ölçeği genişletmeye özgü özellikler vardır.
Ayrıca, ayrılmış SQL havuzunun ölçeğini ve performansını korumanıza yardımcı olmak için davranış farklılıkları olan ek özellikler ve işlevler vardır.
Saklı prosedürlerin tanıtımı
Saklı yordamlar, ayrılmış SQL havuzu verilerinize yakın bir konumda depolanan SQL kodunuzu kapsüllemek için harika bir yoldur. Saklı yordamlar, geliştiricilerin kodu yönetilebilir birimler halinde kapsülleyerek çözümlerini modüler hale getirmelerine ve böylece daha fazla kod yeniden kullanılabilirliğini kolaylaştırmalarına da yardımcı olur. Her bir saklı yordam, daha esnek hale gelmesine olanak tanıyan parametreleri kabul edebilir.
Ayrılmış SQL havuzu, basitleştirilmiş ve kolaylaştırılmış bir saklı yordam uygulaması sağlar. SQL Server ile karşılaştırıldığında en büyük fark, saklı yordamın önceden derlenmiş kod olmadığıdır.
Genel olarak, veri ambarları için derleme süresi, büyük veri hacimlerinde sorgu çalıştırma süresine kıyasla küçüktür. Saklı yordam kodunun büyük sorgular için doğru şekilde iyileştirildiğinden emin olmak daha önemlidir.
Tavsiye
Amaç milisaniye değil saat, dakika ve saniye tasarrufu yapmaktır. Bu nedenle saklı yordamları SQL mantığı için kapsayıcılar olarak düşünmek yararlı olur.
Özel bir SQL havuzu saklı yordamınızı yürüttüğünde, SQL deyimleri ayrıştırılır, çevrilir ve çalışma anında optimize edilir. Bu işlem sırasında her deyim dağıtılmış sorgulara dönüştürülür. Veriler üzerinde yürütülen SQL kodu, gönderilen sorgudan farklıdır.
Kayıtlı yordamları iç içe yerleştirme
Saklı yordamlar diğer saklı yordamları çağırdığında veya dinamik SQL yürüttüğünde iç saklı yordamın veya kod çağırmanın iç içe yerleştirileceği söylenir.
Ayrılmış SQL havuzu en fazla sekiz iç içe yerleştirme düzeyini destekler. Buna karşılık, SQL Server'daki iç içe yerleştirme düzeyi 32'dir.
En üst düzey saklı yordam çağrısı, seviye 1'e eşittir.
EXEC prc_nesting
Saklı yordam başka bir EXEC çağrısı da yaparsa, iç içe girme seviyesi ikiye yükselir.
CREATE PROCEDURE prc_nesting
AS
EXEC prc_nesting_2 -- This call is nest level 2
GO
EXEC prc_nesting
İkinci yordam daha sonra bazı dinamik SQL yürütürse, iç içe geçmişlik seviyesi üçe yükselir.
CREATE PROCEDURE prc_nesting_2
AS
EXEC sp_executesql 'SELECT 'another nest level' -- This call is nest level 2
GO
EXEC prc_nesting
Ayrılmış SQL havuzu şu anda @@NESTLEVEL'i desteklemiyor. Bu nedenle, yuva düzeyini izlemeniz gerekir. Sekiz iç içe düzey sınırını aşma olasılığınız düşüktür. Ancak, bunu yaparsanız, kodunuzu bu sınır içindeki iç içe yerleştirme düzeylerine uyacak şekilde yeniden çalışmanız gerekir.
EKLE..ÇALIŞTIR
Ayrılmış SQL havuzu, insert deyimiyle saklı yordamın sonuç kümesini kullanmanıza izin vermez. Ancak kullanabileceğiniz alternatif bir yaklaşım vardır. Örneğin, geçici tablolar makalesine bakın.
Sınırlamalar
Özel SQL havuzunda uygulanmayan bazı Transact-SQL saklı yordamların yönleri şunlardır:
- geçici depolanmış yordamlar
- numaralandırılmış saklı yordamlar
- genişletilmiş saklı yordamlar
- CLR saklı yordamları
- şifreleme seçeneği
- çoğaltma seçeneği
- tablo değerli parametreler
- yalnızca okunabilir parametreler
- varsayılan parametreler
- yürütme bağlamları
- Return deyimi
Sonraki adımlar
Daha fazla geliştirme ipucu için bkz . geliştirmeye genel bakış.