sys.fn_stmt_sql_handle_from_sql_stmt (Transact-SQL)

Si applica a: sìSQL Server 2016 (13.x) e versioni successive Sìdatabase SQL di Azure Sì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 nel Query Store usando il stmt_sql_handle quando si conosce il testo.

Icona di collegamento a un argomento Convenzioni della 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 vuole gestire l'handle. query_sql_text è un valore nvarchar(max), senza alcun valore predefinito.

query_param_type
Tipo di parametro della query. query_param_type è un valore tinyint. I valori possibili sono:

  • NULL: il valore predefinito è 0

  • 0 - Nessuno

  • 1 - Utente

  • 2 - Semplice

  • 3 - Forzato

Colonne restituite

Nella tabella seguente sono elencate le colonne sys.fn_stmt_sql_handle_from_sql_stmt restituite.

Nome colonna Type Descrizione
statement_sql_handle varbinary(64) Handle SQL gestito.
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)

Commenti

Autorizzazioni

Sono necessarie l'autorizzazione EXECUTE per il database e l'autorizzazione DELETE per le viste del catalogo dell'archivio query.

Esempio

Nell'esempio seguente viene eseguita un'istruzione e quindi sys.fn_stmt_sql_handle_from_sql_stmt viene utilizzato per restituire l SQL handle 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 Query Store dati 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;  

Vedere anche

sp_query_store_force_plan (Transact-SQL)
sp_query_store_remove_plan (Transct-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 viste del catalogo (Transact-SQL)
Monitoraggio delle prestazioni con Archivio query