sys.database_query_store_options(Transact-SQL)

적용 대상: SQL Server 2016(13.x) 이상 Azure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics

이 데이터베이스에 대한 쿼리 저장소 옵션을 반환합니다.

적용 대상: SQL Server(SQL Server 2016(13.x) 이상), SQL Database.

열 이름 데이터 형식 설명
desired_state smallint 사용자가 명시적으로 설정한 쿼리 저장소의 원하는 작업 모드를 나타냅니다.
0 = OFF
1 = READ_ONLY
2 = READ_WRITE
4 = READ_CAPTURE_SECONDARY
desired_state_desc nvarchar(60) 쿼리 저장소의 원하는 작업 모드에 대한 텍스트 설명:
OFF
READ_ONLY
READ_WRITE
READ_CAPTURE_SECONDARY
actual_state smallint 쿼리 저장소의 작업 모드를 나타냅니다. 사용자가 요구하는 원하는 상태 목록 외에도 실제 상태는 오류 상태일 수 있습니다.
0 = OFF
1 = READ_ONLY
2 = READ_WRITE
3 = 오류
4 = READ_CAPTURE_SECONDARY
actual_state_desc nvarchar(60) 쿼리 저장소의 실제 작업 모드에 대한 텍스트 설명입니다.
OFF
READ_ONLY
READ_WRITE
오류
READ_CAPTURE_SECONDARY

실제 상태가 원하는 상태와 다른 경우가 있습니다.
- 데이터베이스가 읽기 전용 모드로 설정되거나 쿼리 저장소 크기가 구성된 할당량을 초과하는 경우 사용자가 읽기/쓰기를 지정한 경우에도 쿼리 저장소가 읽기 전용 모드로 작동할 수 있습니다.
- 극단적인 시나리오에서 쿼리 저장소는 내부 오류로 인해 오류 상태를 입력할 수 있습니다. SQL Server 2017(14.x)부터 이 경우 영향을 받는 데이터베이스의 저장 프로시저를 실행하여 쿼리 저장소를 sp_query_store_consistency_check 복구할 수 있습니다. 실행 sp_query_store_consistency_check 이 작동하지 않거나 SQL Server 2016(13.x)을 사용하는 경우 실행하여 데이터를 지워야 합니다. ALTER DATABASE [YourDatabaseName] SET QUERY_STORE CLEAR ALL;
readonly_reason int desired_state_desc READ_WRITE actual_state_desc READ_ONLY경우 readonly_reason 쿼리 저장소가 읽기 전용 모드인 이유를 나타내는 비트 맵을 반환합니다.

1 - 데이터베이스가 읽기 전용 모드입니다.

2 - 데이터베이스가 단일 사용자 모드에 있습니다.

4 - 데이터베이스가 긴급 모드에 있습니다.

8 - 데이터베이스는 보조 복제본입니다(가용성 그룹 및 Azure SQL Database 지역 복제에 적용됨). 이 값은 읽기 가능한 보조 복제본에서 만 효과적으로 관찰할 수 있습니다.

65536 - 쿼리 저장소가 옵션에 의해 설정된 크기 제한에 도달했습니다 MAX_STORAGE_SIZE_MB . 이 옵션에 대한 자세한 내용은 ALTER DATABASE SET 옵션(Transact-SQL)을 참조 하세요.

131072 - 쿼리 저장소의 여러 문 수가 내부 메모리 제한에 도달했습니다. 쿼리 저장소를 읽기/쓰기 모드로 전송할 수 있도록 필요하지 않은 쿼리를 제거하거나 더 높은 서비스 계층으로 업그레이드하는 것이 좋습니다.


262144 - 디스크에 유지되기를 기다리는 메모리 내 항목의 크기가 내부 메모리 제한에 도달했습니다. 쿼리 저장소는 메모리 내 항목이 디스크에 유지될 때까지 일시적으로 읽기 전용 모드가 됩니다.


524288 - 데이터베이스가 디스크 크기 제한에 도달했습니다. 쿼리 저장소는 사용자 데이터베이스의 일부이므로 데이터베이스에 사용할 수 있는 공간이 더 이상 없으면 쿼리 저장소가 더 이상 증가할 수 없습니다.


쿼리 저장소 작업 모드를 다시 읽기-쓰기로 전환하려면 쿼리 저장소가 쿼리 저장소를 사용하여 쿼리 데이터를 지속적으로 수집하고 있는지 확인 섹션 참조하세요.
current_storage_size_mb bigint 디스크의 쿼리 저장소 크기(메가바이트)입니다.
flush_interval_seconds bigint 쿼리 저장소 데이터를 디스크로 정기적으로 플러시하는 기간(초)입니다. 기본값은 900(15분)입니다.

문을 사용하여 변경합니다 ALTER DATABASE <database> SET QUERY_STORE (DATA_FLUSH_INTERVAL_SECONDS = <interval>) .
interval_length_minutes bigint 통계 집계 간격(분)입니다. 임의 값은 허용되지 않습니다. 1, 5, 10, 15, 30, 60 및 1440분 중 하나를 사용합니다. 기본값은 60분입니다.
max_storage_size_mb bigint 쿼리 저장소의 최대 디스크 크기(MB)입니다. 기본값은 SQL Server 2017 (14.x)까지 100MB, SQL Server 2019(15.x)부터 1GB 입니다.
SQL Database Premium Edition의 경우 기본값은 1GB이고 SQL Database Basic 버전의 경우 기본값은 10MB입니다.

문을 사용하여 변경합니다 ALTER DATABASE <database> SET QUERY_STORE (MAX_STORAGE_SIZE_MB = <size>) .
stale_query_threshold_days bigint 쿼리에 대한 정보가 쿼리 저장소에 보관되는 일 수입니다. 기본값은 30입니다. 보존 정책을 사용하지 않도록 설정하려면 0으로 설정합니다.
SQL Database Basic 버전의 경우 기본값은 7일입니다.

문을 사용하여 변경합니다 ALTER DATABASE <database> SET QUERY_STORE ( CLEANUP_POLICY = ( STALE_QUERY_THRESHOLD_DAYS = <value> ) ) .
max_plans_per_query bigint 저장된 계획의 최대 수를 제한합니다. 기본값은 200입니다. 최대값에 도달하면 쿼리 저장소에서 해당 쿼리에 대한 새 계획 캡처를 중지합니다. 0으로 설정하면 캡처된 계획 수와 관련된 제한이 제거됩니다.

문을 사용하여 변경합니다 ALTER DATABASE<database> SET QUERY_STORE (MAX_PLANS_PER_QUERY = <n>) .
query_capture_mode smallint 현재 활성 쿼리 캡처 모드:

1 = ALL - 모든 쿼리가 캡처됩니다. SQL Server(SQL Server 2016(13.x) 이상)의 기본 구성 값입니다.

2 = AUTO - 실행 수 및 리소스 소비에 따라 관련 쿼리를 캡처합니다. SQL Database의 기본 구성 값입니다.

3 = NONE - 새 쿼리 캡처를 중지합니다. 쿼리 저장소는 이미 캡처된 쿼리에 대한 컴파일 및 런타임 통계를 계속 수집합니다. 중요한 쿼리 캡처를 놓칠 수 있으므로 이 구성을 신중하게 사용합니다.

4 = CUSTOM - QUERY_CAPTURE_POLICY 옵션을 사용하여 쿼리 캡처 정책을 추가로 제어할 수 있습니다.
적용 대상: SQL Server 2019 (15.x) 이상
query_capture_mode_desc nvarchar(60) 쿼리 저장소의 실제 캡처 모드에 대한 텍스트 설명:

ALL(SQL Server 2016(13.x)의 기본값)

AUTO (SQL Database의 기본값)

NONE

CUSTOM
capture_policy_execution_count int 쿼리 캡처 모드 사용자 지정 정책 옵션입니다. 평가 기간 동안 쿼리가 실행되는 횟수를 정의합니다. 기본값은 30입니다.
적용 대상: SQL Server 2019 (15.x) 이상
capture_policy_total_compile_cpu_time_ms bigint 쿼리 캡처 모드 사용자 지정 정책 옵션입니다. 평가 기간 동안 쿼리에 사용하는 총 경과 컴파일 CPU 시간을 정의합니다. 기본값은 1000입니다.
적용 대상: SQL Server 2019 (15.x) 이상
capture_policy_total_execution_cpu_time_ms bigint 쿼리 캡처 모드 사용자 지정 정책 옵션입니다. 평가 기간 동안 쿼리에 사용하는 총 경과 실행 CPU 시간을 정의합니다. 기본값은 100입니다.
적용 대상: SQL Server 2019 (15.x) 이상
capture_policy_stale_threshold_hours int 쿼리 캡처 모드 사용자 지정 정책 옵션입니다. 쿼리가 캡처되어야 하는지 여부를 결정하는 평가 간격 기간을 정의합니다. 기본값은 24시간입니다.
적용 대상: SQL Server 2019 (15.x) 이상
size_based_cleanup_mode smallint 총 데이터 양이 최대 크기에 가까워지면 정리가 자동으로 활성화되는지 여부를 제어합니다.

0 = OFF - 크기 기반 정리가 자동으로 활성화되지 않습니다.

1 = AUTO - 디스크의 크기가 max_storage_size_mb 90%에 도달하면 크기 기반 정리가 자동으로 활성화됩니다. 이것은 기본 구성 값입니다.

크기 기반 정리는 가장 저렴하고 가장 오래된 쿼리를 먼저 제거합니다. max_storage_size_mb80%에도달하면 중지됩니다.
size_based_cleanup_mode_desc nvarchar(60) 쿼리 저장소의 실제 크기 기반 정리 모드에 대한 텍스트 설명:

OFF
AUTO (기본값)
wait_stats_capture_mode smallint 쿼리 저장소가 대기 통계 캡처를 수행하는지 여부를 제어합니다.

0 = OFF
1 = ON
적용 대상: SQL Server 2017(14.x) 이상
wait_stats_capture_mode_desc nvarchar(60) 실제 대기 통계 캡처 모드에 대한 텍스트 설명:

OFF
ON (기본값)
적용 대상: SQL Server 2017(14.x) 이상
actual_state_additional_info nvarchar(8000) 현재 사용되지 않습니다.

사용 권한

VIEW DATABASE STATE 권한이 필요합니다.

설명

actual_state_desc READ_CAPTURE_SECONDARY 값은 보조 복제본에 대한 쿼리 저장소를 사용할 때 예상되는 상태입니다. 자세한 내용은 보조 복제본에 대한 쿼리 저장소를 참조 하세요.

다음 단계