Share via


Basit parameterizasyonunu

De SQL Serverkullanarak parametreleri veya parametre imleyicileri de Transact-SQL ifade yeteneğini artırır ilişkisel altyapı yeni sql deyimleri ile varolan, önceden derlenmiş yürütme planları. eşleştirmek için

Güvenlik notuGüvenlik Notu

Son kullanıcılar tarafından yazılan değerleri tutmak için parametreleri veya parametre imleyicileri kullanan değerlere bitiştirme'den daha güvenli bir dize , sonra yürütüldüğünde ya da veri erişim API yöntem, execute deyim kullanarak veya sp_executesql saklı yordamı.

Bir sql deyim parametreler olmadan yürütülür, SQL Server parameterizes karşı eşleşme olasılığını artırmak için dahili olarak deyimbir varolan yürütme planı. Bu işlem, basit parameterizasyonunu olarak adlandırılır.De SQL Server 2000, işlem otomatik başvuruldu-parameterizasyonunu.

Bunu göz önünde deyim:

SELECT * FROM AdventureWorks2008R2.Production.Product 
WHERE ProductSubcategoryID = 1;

deyim sonunda 1 değeri parametre olarak belirtilebilir.ilişkisel altyapı Parametre değeri 1 yerine belirtilen gibi bu toplu iş için yürütme planı oluşturur.Bu basit parameterizasyonunu nedeniyle SQL Server tanıdığı olan şu iki ifadeyi temelde aynı yürütme planı oluşturmak ve ikinci deyim için ilk planı yeniden kullanır:

SELECT * FROM AdventureWorks2008R2.Production.Product 
WHERE ProductSubcategoryID = 1;

SELECT * FROM AdventureWorks2008R2.Production.Product 
WHERE ProductSubcategoryID = 4;

Karmaşık sql deyimleri işlerken ilişkisel altyapı hangi ifadeleri belirlenmi belirlemede güçlük.Yeteneğini artırmak için ilişkisel altyapı varolan karmaşık sql deyimlerinin eşleştirmek için kullanılmayan yürütme planları açıkça belirtin ya da kullanarak parametreleri sp_executesql veya parametre imleyicileri.Daha fazla bilgi için bkz: Yeniden kullanım parametreleri ve yürütme planı.

Not

Zaman +, -, *, /, ya da % aritmetik işleçler, örtülü veya açık dönüştürme gerçekleştirmek için kullanılan int, smallint, tinyint, veya bigint sabit değerleri için float, real, decimal veya numeric veri türleri SQL Server türü ve kesinlik ifade sonuçlar hesaplamak için özel kurallar geçerlidirAncak bu kurallar, sorgu parametreli veya bağlı farklı.Bu nedenle, benzer ifadeleri sorgularda bazı durumlarda farklı sonuçlar üretebilir.Daha fazla bilgi için bkz: tamsayı, büyük tamsayı, küçük tamsayı ve mini tamsayı (Transact-SQL).

Altında varsayılan davranışını basit parameterizasyonunu SQL Server parameterizes görece küçük bir sınıf sorgular.Ancak, bir veritabanındaki tüm sorguları, belirli sınırlamalara tabi ZORLANAN için alter database komutunu PARAMETERİZASYONUNU seçeneği ayarlayarak belirlenmi gerektiğini belirtebilirsiniz.Böylece yüksek miktarlarda eşzamanlı sorguları sorgu derlemesini sıklığını azaltarak deneyimi veritabanlarının performansını artırabilir.Daha fazla bilgi için bkz: Zorunlu parameterizasyonunu.

Alternatif olarak, tek bir sorgu ve olabilecek diğer sözdizimi kurallarına göre eşdeğerdir ancak yalnızca parametre değerlerini, farklı belirlenmi belirtebilirsiniz.Daha fazla bilgi için bkz: Plan kılavuzları kullanarak sorgu parameterizasyonunu davranışı belirtme.

Ayrıca bkz.

Başvuru