Recherche…


Activer le magasin de requêtes sur la base de données

Le magasin de requêtes peut être activé sur la base de données à l'aide de la commande suivante:

ALTER DATABASE tpch SET QUERY_STORE = ON

SQL Server / Azure SQL Database collectera des informations sur les requêtes exécutées et fournira des informations dans les vues sys.query_store:

  • sys.query_store_query
  • sys.query_store_query_text
  • sys.query_store_plan
  • sys.query_store_runtime_stats
  • sys.query_store_runtime_stats_interval
  • sys.database_query_store_options
  • sys.query_context_settings

Obtenir des statistiques d'exécution pour les requêtes / plans SQL

La requête suivante renverra des informations sur les séries, leurs plans et les statistiques moyennes concernant leur durée, le temps processeur, les lectures physiques et logiques.

SELECT Txt.query_text_id, Txt.query_sql_text, Pl.plan_id,
        avg_duration, avg_cpu_time, 
        avg_physical_io_reads, avg_logical_io_reads
FROM sys.query_store_plan AS Pl  
JOIN sys.query_store_query AS Qry  
    ON Pl.query_id = Qry.query_id  
JOIN sys.query_store_query_text AS Txt  
    ON Qry.query_text_id = Txt.query_text_id
JOIN sys.query_store_runtime_stats Stats
    ON Pl.plan_id = Stats.plan_id

Supprimer des données du magasin de requêtes

Si vous souhaitez supprimer un plan de requête ou de requête du magasin de requêtes, vous pouvez utiliser les commandes suivantes:

EXEC sp_query_store_remove_query 4;
EXEC sp_query_store_remove_plan 3; 

Les paramètres de ces procédures stockées sont un identifiant de requête / plan extrait des vues système.

Vous pouvez également supprimer les statistiques d'exécution d'un plan particulier sans supprimer le plan du magasin:

EXEC sp_query_store_reset_exec_stats 3;  

Paramètre fourni à cet identifiant de plan de procédure.

Plan de forçage pour la requête

L'optimiseur de requêtes SQL choisira le plan possible qu'il pourra trouver pour certaines requêtes. Si vous trouvez un plan qui fonctionne de manière optimale pour certaines requêtes, vous pouvez forcer QO à toujours utiliser ce plan à l'aide de la procédure stockée suivante:

EXEC sp_query_store_unforce_plan @query_id, @plan_id

A partir de là, QO utilisera toujours le plan fourni pour la requête.

Si vous souhaitez supprimer cette liaison, vous pouvez utiliser la procédure stockée suivante:

EXEC sp_query_store_force_plan @query_id, @plan_id

À partir de ce moment, QO tentera à nouveau de trouver le meilleur plan.



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow