Zoeken…


Vraagarchief in database inschakelen

Query store kan worden ingeschakeld in de database met behulp van de volgende opdracht:

ALTER DATABASE tpch SET QUERY_STORE = ON

SQL Server / Azure SQL Database verzamelt informatie over uitgevoerde query's en geeft informatie in sys.query_store-weergaven:

  • 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

Ontvang uitvoeringsstatistieken voor SQL-vragen / plannen

De volgende query retourneert informatie over vragen, hun plannen en gemiddelde statistieken met betrekking tot hun duur, CPU-tijd, fysieke en logische io-reads.

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

Gegevens verwijderen uit queryarchief

Als u een of meer query's of queryplannen uit de queryopslag wilt verwijderen, kunt u de volgende opdrachten gebruiken:

EXEC sp_query_store_remove_query 4;
EXEC sp_query_store_remove_plan 3; 

Parameters voor deze opgeslagen procedures worden query / plan-ID opgehaald uit systeemweergaven.

U kunt ook gewoon uitvoeringsstatistieken voor een bepaald plan verwijderen zonder het plan uit de winkel te verwijderen:

EXEC sp_query_store_reset_exec_stats 3;  

Parameter verstrekt aan dit procedureplan id.

Dwangplan voor zoekopdracht

SQL Query optimizer kiest het mogelijke basisplan dat hij voor een bepaalde zoekopdracht kan vinden. Als u een plan kunt vinden dat optimaal werkt voor een query, kunt u QO dwingen dat plan altijd te gebruiken met de volgende opgeslagen procedure:

EXEC sp_query_store_unforce_plan @query_id, @plan_id

Vanaf dit punt gebruikt QO altijd het plan dat voor de query is verstrekt.

Als u deze binding wilt verwijderen, kunt u de volgende opgeslagen procedure gebruiken:

EXEC sp_query_store_force_plan @query_id, @plan_id

Vanaf dit punt zal QO opnieuw proberen het beste plan te vinden.



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow