sys.fn_stmt_sql_handle_from_sql_stmt (Transact-SQL)
Gilt für: SQL Server 2016 (13.x) und höher Azure SQL-Datenbank Azure SQL Managed Instance
Ruft die stmt_sql_handle für eine Transact-SQL-Anweisung unter dem angegebenen Parameterisierungstyp (einfach oder erzwungen) ab. Auf diese Weise können Sie auf abfragen verweisen, die im Abfragespeicher gespeichert sind, indem Sie deren stmt_sql_handle verwenden, wenn Sie deren Text kennen.
Transact-SQL-Syntaxkonventionen
Syntax
sys.fn_stmt_sql_handle_from_sql_stmt
(
'query_sql_text' ,
[ query_param_type
) [;]
Argumente
query_sql_text
Ist der Text der Abfrage im Abfragespeicher, der das Handle enthalten soll. query_sql_text ist eine nvarchar(max) ohne Standard.
query_param_type
Ist der Parametertyp der Abfrage. query_param_type ist eine winzige. Dabei sind folgende Werte möglich:
NULL- Standardwert ist 0.
0 - Keine
1 – Benutzer
2 - Einfach
3 - Erzwungen
Zurückgegebene Spalten
In der folgenden Tabelle sind die spalten aufgeführt, die sys.fn_stmt_sql_handle_from_sql_stmt
zurückgegeben werden.
Spaltenname | type | Beschreibung |
---|---|---|
statement_sql_handle | varbinary(64) | Das SQL-Handle. |
query_sql_text | nvarchar(max) | Der Text der Transact-SQL-Anweisung. |
query_parameterization_type | tinyint | Der Abfrageparametertyp. |
Rückgabecodewerte
„0“ (erfolgreich) oder „1“ (fehlerhaft)
Hinweise
Berechtigungen
Erfordert die EXECUTE-Berechtigung für die Datenbank und DIE DELETE-Berechtigung für die Abfragespeicherkatalogansichten.
Beispiele
Im folgenden Beispiel wird eine Anweisung ausgeführt, und anschließend wird sys.fn_stmt_sql_handle_from_sql_stmt
das SQL-Handle dieser Anweisung zurückgegeben.
SELECT * FROM sys.databases;
SELECT * FROM sys.fn_stmt_sql_handle_from_sql_stmt('SELECT * FROM sys.databases', NULL);
Verwenden Sie die Funktion, um Abfragespeicher Daten mit anderen dynamischen Verwaltungsansichten zu korrelieren. Im Beispiel unten geschieht Folgendes:
SELECT qt.query_text_id, q.query_id, qt.query_sql_text, qt.statement_sql_handle,
q.context_settings_id, qs.statement_context_id
FROM sys.query_store_query_text AS qt
JOIN sys.query_store_query AS q
ON qt.query_text_id = q.query_id
CROSS APPLY sys.fn_stmt_sql_handle_from_sql_stmt (qt.query_sql_text, null) AS fn_handle_from_stmt
JOIN sys.dm_exec_query_stats AS qs
ON fn_handle_from_stmt.statement_sql_handle = qs.statement_sql_handle;
Siehe auch
- sp_query_store_force_plan (Transact-SQL)
- sp_query_store_remove_plan (Transact-SQL)
- sp_query_store_unforce_plan (Transact-SQL)
- sp_query_store_reset_exec_stats (Transact-SQL)
- sp_query_store_flush_db (Transact-SQL)
- sp_query_store_remove_query (Transact-SQL)
- Query Store Catalog Views (Transact-SQL)
- Überwachen der Leistung mit dem Abfragespeicher