Aracılığıyla paylaş


Zorunlu parameterizasyonunu

Varsayılanı geçersiz kılar Basit parameterizasyonunu davranışını SQL Server belirterek, bir veritabanındaki tüm select, INSERT, update ve delete deyimlerini belirlenmi, tabi belirli sınırlamalar.Zorla parameterizasyonunu ZORLANAN PARAMETERİZASYONUNU seçeneği ayarlayarak etkin alter database deyim.Zorla parameterizasyonunu belirli veritabanları sorgu derlemesini ve yeniden derlemelerinde sıklığını azaltarak performansı.Zorla parameterizasyonunu yararlanabilir veritabanları genelde eşzamanlı sorguları kaynaklardan toplamaktadır uygulamaları gibi yüksek miktarlarda uğrayan olanlardır.

PARAMETERİZASYONUNU seçeneği olduğunda küme Seç içinde görünen ZORLANMIŞ, herhangi bir hazır bilgi değeri için herhangi bir formdan gönderilen, INSERT, update veya delete deyim parametre sorgu derleme sırasında dönüştürülür.Aşağıdaki sorgu yapıları içinde görüntülenen harfleri özel durumlar şunlardır:

  • EKLE...execute deyimlerinin.

  • Statements inside the bodies of stored procedures, triggers, or user-defined functions.SQL Server already reuses query plans for these routines.

  • Zaten istemci tarafı uygulama parametreli hazırlanmış deyimleri.

  • Yöntem bir bağlamda burada bağımsız değişkenlerini genellikle, gibi bir where yan tümce tümce tümce parametreli göründüğü XQuery yöntem çağrıları içeren deyimleri.Burada bağımsız değişkenlerini değil belirlenmi, bir bağlamda geri kalanı yöntem görünüyorsa, deyim parametrelenmiştir.

  • İçindeki ifadeler bir Transact-SQL imleç.(select deyimleri API imleçler içinde parametreli.)

  • Kaldırılmış bir sorgu oluşturur.

  • ANSI_PADDING veya ANSI_NULLS bağlamında çalışacak bir deyim küme off için.

  • Parameterizasyonunu için uygundur birden fazla 2,097 harfleri içeren deyimleri.

  • Gibi değişkenleri, başvuran deyimleri WHERE T.col2 >= @bb.

  • YENİDEN sorgu İpucu içeren deyimleri.

  • compute yan tümce tümce tümce içeren deyimleri.

  • where current of yan tümce tümce tümce içeren deyimleri.

Ayrıca, aşağıdaki sorgu yan belirlenmi değil.Bu gibi durumlarda dikkat edin, sadece yan tümceleri belirlenmi.Diğer yan tümceleri aynı sorgu içinde zorla parameterizasyonunu için uygun olabilir.

  • The <select_list> of any SELECT statement.Bu seçim listelerini alt sorgular ve INSERT deyimleri içinde seçim listelerini içerir.

  • Bir IF deyim içinde görünen select deyimleri alt sorgusuyla.

  • ÜST, tablesample, sahip olmak, tarafından Grup, sıralama ölçütü, çıktı...İÇİNE veya xml yan tümcelerini Sorgu.

  • Bağımsız değişkenler, ya da doğrudan veya openrowset, SORGUAÇ opendatasource openxml veya herhangi bir Full-Text işleç taşıyıcının olarak.

  • The pattern and escape_character arguments of a LIKE clause.

  • The style argument of a CONVERT clause.

  • Tamsayı sabitler bir kimlik yan tümce tümce tümce içinde.

  • odbc uzantısı sözdizimini kullanarak belirtilen sabitler.

  • Bağımsız değişkenler, foldable sabiti ifadeler +, -, *, / ve % operators.Uygunluk zorunlu parameterizasyonunu bahsederken SQL Server bir ifade olması dikkate alır sabit-foldable aşağıdaki koşullardan biri doğru olduğunda:

    • Hiçbir sütunlar, değişkenler veya alt sorgular görüntülenir ifade.

    • ifade, bir servis talebi yan tümce tümce tümce içeriyor.

    Hakkında daha fazla bilgi için sabit-foldable ifadeleri, bkz: Zayıf sorgu performans sorun giderme: Sabit Katlama ve ifade değerlendirme sırasında önem düzeyi tahmin.

  • Sorgu ipucu yan tümceleri için bağımsız değişkeni.Bunlar number_of_rows Hızlı sorgu ipucu bağımsız değişkeni number_of_processors maxdop sorgu ipucu bağımsız değişkeni ve number bağımsız değişkeni MAXRECURSION sorgu ipucu.

Ortaya parameterizasyonunu en düzey tarif Transact-SQL deyimleri.Başka bir deyişle, tek tek deyimleri toplu iş iş parametreli.Parametreli Sorgu derleme sonra toplu iş içinde ilk olarak gönderildiği bağlamında yürütülür.Bir sorgu için yürütme planı önbelleğe alınmışsa başvurarak parametreli olup olmadığını belirleyebilir sql sütun , sys.syscacheobjects Dinamik yönetim görünümü.Bir sorgu parametrelenmiştir, parametre adları ve veri türleri bu gönderilen toplu iş iş metinden önce gelen sütun, gibi (@ 1 tinyint).Sorgu planı önbelleğe alma hakkında daha fazla bilgi için bkz: Yeniden yürütme planı önbellekleme ve.

Not

Parametre adları rasgele.Kullanıcılar veya uygulamalar belirli bir adlandırma düzeni üzerinde güvenmemelisiniz.Ayrıca, aşağıdaki sürümleri arasında değiştirilebilir SQL Server ve hizmet paketi yükseltmeleri: Parametre adları belirlenmi harfleri seçimi ve parametreli metin aralığı.

Parametre veri türleri

Zaman SQL Server , harflerin parameterizes parametreleri için aşağıdaki veri türleri dönüştürülür:

  • Tamsayı değişmezleri boyutları gerekir Aksi halde uyma içinde int stratejisinin veri türü için int.Herhangi bir karşılaştırma işleç içeren yüklemler bölümleri büyük tamsayı değişmezleri (içerir <, <=, =,! =, >, >, =,!<, !>, <>, Tüm, tüm, bazı, between ve konum) için stratejisinin numeric(38,0).Karşılaştırma işleçleri ilgili yüklemler bölümleri olmayan daha büyük rakamları stratejisinin için numeric , precision boyutuna desteklemek için sadece yeterince büyük ve, ölçek 0.

  • Karşılaştırma işleçleri ilgili yüklemler bölümleri parayla sayısal hazır bilgi stratejisinin için numeric , duyarlık 38 ve ölçek, sadece yeterince desteklemek, boyutu.Karşılaştırma işleçleri ilgili yüklemler bölümleri olmayan parayla sayısal hazır bilgi stratejisinin için numeric , duyarlık ve ölçek sadece yeterince desteklemek, boyutu.

  • Kayan nokta sayısal hazır bilgi stratejisinin için float(53).

  • Non-Unicode dize hazır bilgileri stratejisinin için varchar(8000) , hazır sığdığı için ve 8.000 karakter içinde varchar(max) ise, daha büyük 8.000 karakter.

  • Unicode dize hazır bilgileri stratejisinin için nvarchar(4000) , literal 4.000 Unicode karakter içinde ve için uyan nvarchar(max) ise değişmez büyük 4.000 karakter.

  • İkili sayılar stratejisinin için varbinary(8000) , hazýr bilgi uyar8.000 bayt. içinde 8.000 Bayttan daha büyük ise, onu dönüştürülür varbinary(max).

  • Money türü harflerin stratejisinin için money.

Parameterizasyonunu kullanma yönergeleri zorlanan

Aşağıdakileri dikkate alın, sizin küme ZORLANAN PARAMETERİZASYONUNU seçeneği:

  • Zorla parameterizasyonunu, gerçekte, sorguda hazır sabitleri parametreler için bir sorgu derlenirken değiştirir.Bu nedenle, sorgu iyileştiricisi hassasiyetli planları sorguları için tercih edebilirsiniz.Özellikle, sorgu iyileştiricisi eşleşen dizinli görünüm veya hesaplanan sütun üzerinde dizin sorgusu olasılığı daha düşüktür.Hassasiyetli planları sorguları için bölümlenmiş tabloları üzerinde çıkan ve dağıtılmış bölümlenmiş görünümleri de seçebilirsiniz.Zorla parameterizasyonunu, dizin oluşturulmuş görünümler ve hesaplanan sütun dizinlerde yoğun olarak kullanan ortamlar için kullanılmamalıdır.Sonra bunu belirleme performansını olumsuz değil genellikle PARAMETERİZASYONUNU ZORLA seçeneği yalnızca deneyimli veritabanı yöneticileri tarafından kullanılması gerekir.

  • PARAMETERİZASYONUNU seçeneği için ZORLANAN sorguyu çalıştıran, içerik veritabanında küme sürece birden fazla veritabanı başvurusu dağıtılmış sorgular için zorla parameterizasyonunu uygundur.

  • ZORLANAN için PARAMETERİZASYONUNU seçeneğini kurma tüm sorgu planları dışında kalan, şu anda derlemek, fakat çalıştıran veya bir veritabanı plan önbelleğinden temizleme sayısı.Derleme veya ayar değişikliği sırasında çalışan sorguları parametreli için planladığı İleri saat sorgu yürütülür.

  • PARAMETERİZASYONUNU seçeneği ayarlama veritabanı düzey hiçbir özel kilit gerektiren bir çevrimiçi işlemdir.

  • Zorla parameterizasyonunu olan (küme için basit) ne zaman devre dışı uyumluluğunu bir SQL Server veritabanı 80 olarak ayarlanır veya daha önceki örnek üzerinde bir veritabanı örneğine bağlı SQL Server 2005 veya üstü.

  • PARAMETERİZASYONUNU seçeneğinin geçerli ayarlarını yeniden takmanız veya bir veritabanını geri yükleme sırasında korunur.

Zorla parameterizasyonunu davranışını geçersiz kılmak belirterek bu basit parameterizasyonunu çalıştı tek bir sorgu ve olabilecek diğer sözdizimi kurallarına göre eşdeğerdir ancak yalnızca parametre değerleri farklı.Tam tersine, bu zorla parameterizasyonunu çalıştı üzerinde yalnızca belirtebileceğiniz bir küme sözdizimi kurallarına göre eşdeğer sorguları, veri tabanında parameterizasyonunu zorlanan bile dışıdır.Plan kılavuzları bu amaç için kullanılır.Daha fazla bilgi için bkz: Plan kılavuzları kullanarak sorgu parameterizasyonunu davranışı belirtme.

Not

PARAMETERİZASYONUNU seçeneği olduğunda küme ZORLANAN için hata iletilerini raporlamak, basit parameterizasyonunu farklı olabilir: birden çok hata iletileri, daha az sayıda ileti altında basit parameterizasyonunu burada bildirilen durumlarda ve hataları hatalı bildirilebilir ortaya çıktığı satır numaralarını bildirilebilir.