sys.fn_stmt_sql_handle_from_sql_stmt (Transact-SQL)
Si applica a: SQL Server 2016 (13.x) e versioni successive Database SQL di Azure Istanza gestita di SQL di Azure
Ottiene il stmt_sql_handle per un'istruzione Transact-SQL nel tipo di parametrizzazione specificato (semplice o forzato). In questo modo è possibile fare riferimento alle query archiviate in Query Store usando il relativo stmt_sql_handle quando si conosce il testo.
Convenzioni relative alla sintassi Transact-SQL
Sintassi
sys.fn_stmt_sql_handle_from_sql_stmt
(
'query_sql_text' ,
[ query_param_type
) [;]
Argomenti
query_sql_text
Testo della query nell'archivio query di cui si desidera l'handle. query_sql_text è un valore nvarchar(max), senza impostazione predefinita.
query_param_type
Tipo di parametro della query. query_param_type è un tinyint. I valori possibili sono:
NULL: il valore predefinito è 0
0 - None
1 - Utente
2 - Semplice
3 - Forzato
Colonne restituite
Nella tabella seguente sono elencate le colonne restituite sys.fn_stmt_sql_handle_from_sql_stmt
.
Nome colonna | Tipo | Descrizione |
---|---|---|
statement_sql_handle | varbinary(64) | Handle SQL. |
query_sql_text | nvarchar(max) | Testo dell'istruzione Transact-SQL. |
query_parameterization_type | tinyint | Tipo di parametrizzazione della query. |
Valori del codice restituito
0 (operazione completata) o 1 (operazione non riuscita)
Osservazioni:
Autorizzazioni
È richiesta l'autorizzazione EXECUTE per il database e l'autorizzazione DELETE per le viste del catalogo dell'archivio query.
Esempi
L'esempio seguente esegue un'istruzione e quindi usa sys.fn_stmt_sql_handle_from_sql_stmt
per restituire l'handle SQL di tale istruzione.
SELECT * FROM sys.databases;
SELECT * FROM sys.fn_stmt_sql_handle_from_sql_stmt('SELECT * FROM sys.databases', NULL);
Usare la funzione per correlare i dati di Query Store con altre viste a gestione dinamica. L'esempio seguente:
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;
Vedi anche
- 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)
- Viste del catalogo di Query Store (Transact-SQL)
- Monitoraggio delle prestazioni tramite Query Store