수색…


데이터베이스에서 쿼리 저장소 사용

다음 명령을 사용하여 데이터베이스에서 쿼리 저장소를 활성화 할 수 있습니다.

ALTER DATABASE tpch SET QUERY_STORE = ON

SQL Server / Azure SQL 데이터베이스는 실행 된 쿼리에 대한 정보를 수집하고 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

SQL 쿼리 / 계획에 대한 실행 통계 가져 오기

다음 쿼리는 qeries, 해당 계획 및 지속 시간, CPU 시간, 물리적 및 논리적 읽기와 관련된 평균 통계에 대한 정보를 반환합니다.

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

쿼리 저장소에서 데이터 제거

쿼리 저장소에서 쿼리 나 쿼리 계획을 제거하려면 다음 명령을 사용할 수 있습니다.

EXEC sp_query_store_remove_query 4;
EXEC sp_query_store_remove_plan 3; 

이러한 저장 프로 시저의 매개 변수는 시스템 뷰에서 검색 한 쿼리 / 계획 ID입니다.

또한 계획을 상점에서 제거하지 않고 특정 계획에 대한 실행 통계를 제거 할 수도 있습니다.

EXEC sp_query_store_reset_exec_stats 3;  

이 프로 시저에 제공된 매개 변수는 계획 ID입니다.

쿼리 계획 강제화

SQL 쿼리 최적화 프로그램은 일부 쿼리에서 찾을 수있는 가능한 계획을 선택합니다. 일부 쿼리에 대해 최적으로 작동하는 일부 계획을 찾으면 QO가 다음 저장 프로 시저를 사용하여 항상 해당 계획을 사용하도록 할 수 있습니다.

EXEC sp_query_store_unforce_plan @query_id, @plan_id

이 시점부터 QO는 항상 쿼리에 제공된 계획을 사용합니다.

이 바인딩을 제거하려면 다음 저장 프로 시저를 사용할 수 있습니다.

EXEC sp_query_store_force_plan @query_id, @plan_id

이 시점에서 QO는 다시 최고의 계획을 찾으려고 노력할 것입니다.



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow