Udostępnij za pośrednictwem


Parametryzacja proste

W SQL Server, za pomocą parametry lub parametr znaczników na wykresach Transact-SQL instrukcje zwiększa możliwość odpowiada nowej instrukcji SQL, wcześniej skompilowany plany wykonanie aparat relacyjny.

Security noteSecurity Note:

Za pomocą parametrów lub parametru do przechowywania wartości wpisywane przez użytkowników końcowych jest bezpieczniejsze niż łączenia wartości na ciąg znaków, która następnie zostanie wykonana przy użyciu obu dostępu do danych metoda interfejsu API, instrukcja wykonać lub sp_executesql procedura przechowywana.

Jeżeli instrukcja języka SQL jest wykonywane bez parametrów, SQL Server parameterizes wewnętrznie, aby zwiększyć możliwości odpowiadające mu przed istniejący plan wykonania instrukcji. Proces ten nazywa się proste parametry.W SQL Server 2000, proces została przedstawiona jako parametry automatycznego.

Należy wziąć pod uwagę tej instrukcja:

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

Wartość 1 na końcu instrukcja może być określony jako parametr.aparat relacyjny tworzy plan wykonania dla tej instancji tak, jakby miał określono parametr zamiast wartości 1.Ze względu na to proste parametryzacji SQL Server rozpoznaje, że dwie poniższe instrukcje wygenerować zasadniczo ten sam plan wykonania i ponownie używa pierwszego planu dla drugiej instrukcja:

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

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

Podczas przetwarzania złożone instrukcje SQL, aparat relacyjny mogą mieć trudności określenie wyrażenia, które mogą zostać sparametryzowana.Aby zwiększyć możliwość dopasowania złożone instrukcje SQL do istniejących, nieużywane planów wykonania aparat relacyjny, należy jawnie określić parametrów przy użyciu jednej sp_executesql lub parametr znaczników.Aby uzyskać więcej informacji zobaczParametry i wykonanie plan ponowne użycie.

Uwaga

Gdy +,-, *, /, lub % operatory arytmetyczne służą do wykonywania konwersji bezpośrednia lub pośrednia int, smallint, tinyint, lub bigint wartości stała float, real, decimal lub numeric typy danych SQL Server stosuje określonej reguły obliczania, typ i dokładność wyniki wyrażenie. Jednak reguły te różne, w zależności od tego, czy jest parametrów kwerendy, czy nie.Dlatego podobne wyrażenia w kwerendach w niektórych przypadkach wynik może być różne.Aby uzyskać więcej informacji zobaczint, bigint, smallint, and tinyint (Transact-SQL).

W obszarze domyślne zachowanie proste parametryzacji SQL Server parameterizes stosunkowo niewielką klasy z kwerendy. Można jednak określić, że wszystkie kwerendy w bazie danych można sparametryzowana, podlega pewne ograniczenia, przez ustawienie opcji Parametry polecenia ALTER DATABASE FORCED.W ten sposób może zwiększyć wydajność bazy danych, które występuje wysokie woluminów równoczesnych kwerendy przez zmniejszenie częstotliwości kompilacji kwerendy.Aby uzyskać więcej informacji zobaczParametryzacja wymuszony.

Alternatywnie można określić jedną kwerendę i innych składniowo równoważne, ale różnią się jedynie wartości parametru, zostać sparametryzowana.Aby uzyskać więcej informacji zobaczSpecifying Query Parameterization Behavior by Using Plan Guides.

See Also

Other Resources