Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für: SQL Server 2016 (13.x) und spätere Versionen
Azure SQL Database
Azure SQL Managed Instance
SQL database in Microsoft Fabric
Ruft die stmt_sql_handle für eine Transact-SQL-Anweisung unter dem angegebenen Parameterisierungstyp (einfach oder erzwungen) ab. Sie können auf abfragen verweisen, die im Abfragespeicher gespeichert sind, indem Sie deren stmt_sql_handle Text verwenden.
Transact-SQL-Syntaxkonventionen
Syntax
sys.fn_stmt_sql_handle_from_sql_stmt
(
N'query_sql_text'
, [ query_param_type ]
)
[ ; ]
Argumente
query_sql_text
Der Text der Abfrage im Abfragespeicher, der das Handle enthalten soll. query_sql_text ist nvarchar(max) ohne Standard.
query_param_type
Der Parametertyp der Abfrage.
query_param_type ist winzig, mit einem Standardwert von NULL. Dabei sind folgende Werte möglich:
| Wert | Beschreibung |
|---|---|
NULL (Standardwert) |
Der Standardwert lautet 0. |
| 0 | Nichts |
| 1 | Benutzer |
| 2 | Simple |
| 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 Fehler.
Berechtigungen
Erfordert EXECUTE Berechtigungen für die Datenbank und DELETE die 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
INNER JOIN sys.query_store_query AS q
ON qt.query_text_id = q.query_text_id
CROSS APPLY sys.fn_stmt_sql_handle_from_sql_stmt(qt.query_sql_text, NULL) AS fn_handle_from_stmt
INNER JOIN sys.dm_exec_query_stats AS qs
ON fn_handle_from_stmt.statement_sql_handle = qs.statement_sql_handle;
Verwandte Inhalte
- 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)
- Abfragespeicherkatalogansichten (Transact-SQL)
- Überwachen der Leistung mithilfe des Abfragespeichers