Udostępnij za pośrednictwem


Parametryzacja proste

W SQL Server, przy użyciu parametrów lub parametr znaczników w Transact-SQL instrukcji zwiększa zdolność aparat relacyjny do nowej instrukcji SQL z istniejących wcześniej skompilowany wykonanie planów.

Uwaga dotycząca zabezpieczeńUwaga dotycząca zabezpieczeń

Przy użyciu parametrów lub parametr znaczników do przechowywania wartości wpisanych przez użytkowników końcowych jest bezpieczniejsze niż konkatenację wartości na ciąg znaków, który następnie jest wykonywane przy użyciu albo dostępu do danych metoda interfejsu API, instrukcja EXECUTE lub sp_executesql procedura składowana.

Jeżeli instrukcja języka SQL jest wykonywane bez parametrów, SQL Server parameterizes instrukcji wewnętrznie, aby zwiększyć możliwości odpowiadające mu przeciwko istniejącego planu wykonania.Ten proces jest nazywany parametryzacja proste.W SQL Server 2000, proces był nazywany auto-parametryzacja.

Należy rozważyć tej instrukcja:

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

Jako parametr można określić wartość 1 na końcu instrukcja.aparat relacyjny buduje planu wykonania partia jakby miał został określony parametr zamiast wartości 1.Ze względu na to proste parametryzacja SQL Server rozpoznaje, że dwie poniższe instrukcje wygenerować zasadniczo taki sam plan wykonania i ponownie używa planu pierwszego druga instrukcja:

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

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

Podczas przetwarzania złożone instrukcje SQL aparat relacyjny mogą mieć trudności w ustalaniu wyrażeń, które mogą być parametryczne.Aby zwiększyć zdolność aparat relacyjny aby dopasować złożone instrukcje SQL do istniejących, nieużywane wykonanie planów jawnie określić parametry za pomocą sp_executesql lub parametru.Aby uzyskać więcej informacji, zobacz Parametry i wykonanie planu ponownego użycia.

Ostrzeżenie

Gdy +, -, *, lub % operatory arytmetyczne służą do wykonywania bezpośrednia lub pośrednia konwersja int, smallint, tinyint, lub bigint wartości stała float, real, decimal lub numeric typy danych, SQL Server stosuje się szczególne zasady obliczania typu i dokładność wyniki wyrażenie.Jednak te różnią się, w zależności od tego, czy kwerenda jest sparametryzowana lub nie.Dlatego podobne wyrażenia w kwerendach może w niektórych przypadkach wygenerować różne wyniki.Aby uzyskać więcej informacji, zobacz int, bigint, smallint i tinyint (Transact-SQL).

W obszarze domyślne zachowanie prosty parametryzacja SQL Server parameterizes klasy stosunkowo niewielką kwerend.Można jednak określić, że wszystkie kwerendy w bazie danych być sparametryzowana, z zastrzeżeniem niektórych ograniczeń przez ustawienie opcji PARAMETRYZACJA polecenia ALTER DATABASE WYMUSZONY.Wykonanie tej czynności może zwiększyć wydajność baz danych, które występują duże ilości kwerend współbieżnych poprzez zmniejszenie częstotliwości kompilacji kwerendy.Aby uzyskać więcej informacji, zobacz Parametryzacja wymuszony.

Alternatywnie można określić, zostać sparametryzowana jednej kwerendzie i innych syntaktycznie równoważne, które różnią się jedynie ich wartości parametru.Aby uzyskać więcej informacji, zobacz Określanie zachowania parametryzacji kwerendy przy użyciu prowadnic Plan.

Zobacz także

Odwołanie