적용 대상: Microsoft Fabric의 SQL Server 2022(16.x) 이상 버전
Azure SQL Database
Azure SQL Managed Instance
SQL 데이터베이스
자동 튜닝 기능의 APC(자동 계획 수정 ) 구성 요소에 대한 구성을 변경합니다 . 구성 옵션은 쿼리 저장소 가져올 수 있는 지정된 query_id
옵션에 적용됩니다.
이러한 옵션에는 APC 고려 사항을 허용하거나 건너뛸 수 있도록 허용 query_id
하거나 특정 쿼리에 추가 확장된 시간 기반 계획 회귀 검사를 적용하도록 APC를 구성하는 기능이 포함됩니다. 구성 옵션은 상호 배타적이지 않습니다 .
구문
SQL Server 2022(16.x), Azure SQL Managed Instance에 대한 구문:
sp_configure_automatic_tuning
[ @option = ] 'FORCE_LAST_GOOD_PLAN'
, [ @type = ] 'type'
[ , [ @type_value = ] N'type_value' ]
, [ @option_value = ] { 'ON' | 'OFF' }
Azure SQL Database, Microsoft Fabric의 SQL 데이터베이스에 대한 구문:
sp_configure_automatic_tuning
[ @option = ] { 'FORCE_LAST_GOOD_PLAN' | 'FORCE_LAST_GOOD_PLAN_EXTENDED_CHECK' }
, [ @type = ] 'type'
[ , [ @type_value = ] N'type_value' ]
, [ @option_value = ] { 'ON' | 'OFF' }
인수
중요합니다
확장 저장 프로시저에 대한 인수는 구문 섹션에 설명된 대로 특정 순서로 입력해야 합니다. 매개 변수를 순서대로 입력하면 오류 메시지가 발생합니다.
[ @option = ] 'option'
호출할 구성 옵션의 이름을 지정합니다. @option 기본값이 없는 varchar(60)이며 이러한 값 중 하나일 수 있습니다.
값 | 설명 |
---|---|
FORCE_LAST_GOOD_PLAN |
APC가 실행 계획 선택 회귀를 식별하고 쿼리 저장소 기록된 대로 마지막으로 알려진 양호한 계획을 강제로 적용하여 문제를 자동으로 해결할 수 있도록 합니다. 실행 계획 선택 회귀란? |
FORCE_LAST_GOOD_PLAN_EXTENDED_CHECK |
적용 대상: Microsoft Fabric의 Azure SQL Database 및 SQL 데이터베이스만 해당합니다. 계획 변경이 감지된 후 5분 후에 발생하는 추가 시간 기반 계획 회귀 검사를 사용하도록 APC에 지시합니다. 이 검사를 통해 APC는 신속하게 실행되는 쿼리에 대한 회귀 검사의 편향을 방지할 수 있습니다. 이 옵션을 사용하면 APC는 더 오래 실행되거나 계획 변경으로 인해 시간이 초과되기 쉬운 쿼리 실행을 고려합니다. |
[ @type = ] 'type'
구성이 적용되는 개체의 형식입니다.
@type 기본값이 없는 varchar(60)입니다. 가능한 값은 .입니다 QUERY
.
[ @type_value = ] N'type_value'
구성을 적용해야 하는 쿼리 저장소 쿼리 ID입니다. @type_value 기본값이 없는 sysname입니다.
[ @option_value = ] 'option_value'
구성 설정의 원하는 상태입니다.
@option_value 기본값이 없는 varchar(60)입니다. 가능한 값은 ON
또는 OFF
입니다.
FORCE_LAST_GOOD_PLAN
옵션의 경우 값을 OFF
설정하면 APC가 쿼리 계획 회귀를 위해 시스템에서 쿼리 저장소의 query_id
무시합니다.
반환 코드 값
0
(성공) 또는 1
(실패).
현재 구성 값 확인
sys.database_automatic_tuning_configurations 카탈로그 뷰의 출력을 확인하여 설정되는 구성 옵션을 확인할 수도 있습니다. 카탈로그 뷰의 변경 내용도 SQL Server 오류 로그에 기록됩니다.
사용 권한
ALTER DATABASE
권한이 필요합니다.
설명
SQL Server 2022(16.x) CU 4 이상 버전의 경우 전역 FORCE_LAST_GOOD_PLAN_EXTENDED_CHECK
인 전체 SQL Server 인스턴스에 구성 옵션의 동작을 적용할 수 있습니다. 쿼리 저장소 캡처에 적합한 모든 쿼리에는 추가 시간 기반 회귀 검사 논리가 적용됩니다.
예제
A. 특정 쿼리를 무시하도록 자동 튜닝(마지막 계획 강제 적용 옵션) 구성
다음 예제에서는 자동 계획 강제 적용에 적합한 경우 쿼리를 무시하도록 자동 튜닝을 구성하는 방법을 보여줍니다. 이 예제에서는 쿼리 저장소 선택한 값을 422
query_id
사용합니다.
EXECUTE sys.sp_configure_automatic_tuning 'FORCE_LAST_GOOD_PLAN', 'QUERY', 422, 'OFF';
B. 명명된 매개 변수를 사용하여 특정 쿼리를 무시하도록 자동 튜닝(마지막 계획 강제 적용 옵션) 구성
이 예제에서는 APC 기능에서 강제 적용하는 업데이트 커서 문의 일부인 모든 query_id
결과를 볼 수 있습니다.
SELECT qry.query_id,
pl.plan_forcing_type_desc,
pl.is_forced_plan,
pl.plan_id
FROM sys.query_store_plan AS pl
INNER JOIN sys.query_store_query AS qry
ON qry.query_id = pl.query_id
WHERE pl.query_plan LIKE '%StatementType="UPDATE CURSOR"%'
AND pl.is_forced_plan > 0
AND pl.plan_forcing_type = 2;
이전 쿼리 query_id
의 결과에 따라 값 42
이 있는 쿼리는 APC에서 무시해야 하는 쿼리입니다. 다음과 같이 구문 sp_configure_automatic_tuning
의 명명된 매개 변수 버전을 사용할 수 있습니다.
EXECUTE sys.sp_configure_automatic_tuning
@option = 'FORCE_LAST_GOOD_PLAN',
@type = 'QUERY',
@type_value = 42,
@option_value = 'OFF';
설정이 적용되었는지 확인합니다.
SELECT *
FROM sys.database_automatic_tuning_configurations;
C. 특정 쿼리에 연장된 시간 기반 계획 회귀 검사를 적용하도록 자동 튜닝(마지막 계획 강제 적용 옵션)을 구성합니다.
적용 대상: Azure SQL Database, Microsoft Fabric의 SQL 데이터베이스:
APC는 계획 변경이 감지된 후 5분 후에 발생하는 시간 기반 계획 회귀 검사를 사용합니다. 이 검사를 통해 APC는 신속하게 실행되는 쿼리에 대한 회귀 검사의 편향을 방지할 수 있습니다. APC는 더 오래 실행되거나 계획 변경으로 인해 시간이 초과되기 쉬운 쿼리 실행을 고려합니다.
다음 예제에서는 자동 계획 강제 적용에 적합한 경우 확장 검사 논리를 쿼리에 적용하도록 자동 튜닝을 구성하는 방법을 보여줍니다. 이 예제에서는 쿼리 저장소 선택한 값을 442
query_id
사용합니다.
EXECUTE sys.sp_configure_automatic_tuning 'FORCE_LAST_GOOD_PLAN_EXTENDED_CHECK', 'QUERY', 442, 'ON';