Query Store Force Plan 기능이 작동하지 않습니다


12

Query Store Force 계획 기능이 계획을 시행하지 않는 것 같습니다.

나는 알고 있어요 쿼리 스토어 - 항상 힘에 의한 것은 아니다 강제 ; 그러나 계획이 크게 변경되지는 않지만 쿼리 최적화 프로그램은 계속 잘못된 인덱스, 루프 선택 등을 선택할 수 있습니다.

기본적으로 : 그것은 나의 강제 계획 선택을 존중하지 않습니다. 나는 많은 계획을 강요했고 그것은 효과가 없다 .

  1. 내가 볼 때 실패 횟수 또는 이유가 0 개 있습니다 sys.query_store_plan force_failure_count.
  2. 확장 된 이벤트 query_store_plan_forcing_failed는 아무것도 생성하지 않습니다. 0 이벤트.

예를 들어 20.09에 시행 된 계획. 강제 계획을 사용하는 컴파일은 단 1 회였습니다.

쿼리 계획

하나는 INDEX 1에서 해시 일치 조인을 사용하고 다른 하나는 INDEX 2에서 루프 조인을 사용하여 계획이 크게 다릅니다.

다른 계획

버전 : Microsoft SQL Server 2016 (SP1-GDR) (KB3210089)-13.0.4202.2 (X64)

내가 여기서 무엇을 놓치고 있습니까?

답변:


16

에서 sys.query_store_plan (Transact-SQL)를 참조하십시오 (강조 추가)

강제 제한 계획

Query Store에는 Query Optimizer가 특정 실행 계획을 사용하도록 강제하는 메커니즘이 있습니다. 그러나 계획 시행을 방해 할 수있는 몇 가지 제한 사항이 있습니다 .

먼저 계획에 다음과 같은 구성이 포함 된 경우 :

  • 대량 명세서를 삽입합니다.
  • 외부 테이블에 대한 참조
  • 분산 쿼리 또는 전체 텍스트 작업
  • 글로벌 쿼리 사용
  • 커서
  • 잘못된 스타 조인 사양

커서를 사용하고 있습니다.


대신 계획 안내를 사용하여 커서 계획을 강제 할 수도 있습니다. 커서가있는 쿼리에서 USE PLAN 쿼리 힌트 사용을 참조하십시오 .

그리고 네, 현재 상황이 최상의 사용자 경험을 제공하지는 않는다는 데 동의합니다. 나는 (현재) 강요 될 수없는 것에 대한 계획을 강요하려고 시도하면 오류나 경고가 발생하거나 무언가를 기록 할 것으로 예상된다. 당신은 로그온 할 수 피드백 항목을 이 분야의 개선을 요청할 수 있습니다.


SQL 2019 CTP 2.3부터 빨리 감기 및 정적 커서에 대한 쿼리 실행 계획 강제 지원

Query Store는 이제 빨리 감기 및 정적 T-SQL 및 API 커서에 대한 쿼리 실행 계획을 강제 실행할 수있는 기능을 지원합니다. 강제 실행은 이제 sp_query_store_force_planSQL Server Management Studio 쿼리 저장소 보고서 를 통해 또는 SQL Server Management Studio 쿼리 저장소 보고서를 통해 지원됩니다 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.