sys.fn_stmt_sql_handle_from_sql_stmt (Transact-SQL)
S’applique à : SQL Server 2016 (13.x) et versions ultérieures Azure SQL Database Azure SQL Managed Instance
Obtient la stmt_sql_handle d’une instruction Transact-SQL sous un type de paramétrage donné (simple ou forcé). Cela vous permet de faire référence aux requêtes stockées dans le Magasin des requêtes à l’aide de leur stmt_sql_handle lorsque vous connaissez leur texte.
Conventions de la syntaxe Transact-SQL
Syntaxe
sys.fn_stmt_sql_handle_from_sql_stmt
(
'query_sql_text' ,
[ query_param_type
) [;]
Arguments
query_sql_text
Texte de la requête dans le magasin de requêtes dont vous souhaitez obtenir le handle. query_sql_text est un nvarchar(max), sans valeur par défaut.
query_param_type
Type de paramètre de la requête. query_param_type est un tinyint. Les valeurs possibles sont les suivantes :
NULL : la valeur par défaut est 0
0 - Aucun
1 - Utilisateur
2 - Simple
3 - Forcé
Colonnes retournées
Le tableau suivant répertorie les colonnes qui retournent sys.fn_stmt_sql_handle_from_sql_stmt
.
Nom de la colonne | Type | Description |
---|---|---|
statement_sql_handle | varbinary(64) | Handle SQL. |
query_sql_text | nvarchar(max) | Texte de l’instruction Transact-SQL. |
query_parameterization_type | tinyint | Type de paramétrage de requête. |
Valeurs des codes de retour
0 (réussite) ou 1 (échec)
Notes
autorisations
Nécessite l’autorisation EXECUTE sur la base de données et l’autorisation DELETE sur les vues de catalogue du magasin de requêtes.
Exemples
L’exemple suivant exécute une instruction, puis utilise sys.fn_stmt_sql_handle_from_sql_stmt
pour retourner le handle SQL de cette instruction.
SELECT * FROM sys.databases;
SELECT * FROM sys.fn_stmt_sql_handle_from_sql_stmt('SELECT * FROM sys.databases', NULL);
Utilisez la fonction pour mettre en corrélation Magasin des requêtes données avec d’autres vues de gestion dynamique. L’exemple suivant :
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;
Voir aussi
- 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)
- Affichages catalogue du Magasin des requêtes (Transact-SQL)
- Analyse des performances à l’aide du magasin de requêtes