sys.database_query_store_options (Transact-SQL)

Область применения: SQL Server 2016 (13.x) и более поздних версий Управляемого экземпляраБазы данныхSQL Azure Azure Synapse Analytics

Возвращает параметры хранилища запросов для этой базы данных.

Область применения: SQL Server (SQL Server 2016 (13.x) и более поздних версий), База данных SQL.

Имя столбца Тип данных Описание:
desired_state smallint Указывает требуемый режим работы хранилища запросов, явно заданный пользователем.
0 = выключен.
1 = READ_ONLY
2 = READ_WRITE
4 = READ_CAPTURE_SECONDARY
desired_state_desc nvarchar(60) Текстовое описание требуемого режима работы хранилища запросов:
ВЫКЛ.
READ_ONLY
READ_WRITE
READ_CAPTURE_SECONDARY
actual_state smallint Указывает режим работы хранилища запросов. Помимо списка требуемых состояний, необходимых пользователю, фактическое состояние может быть состоянием ошибки.
0 = выключен.
1 = READ_ONLY
2 = READ_WRITE
3 = ERROR
4 = READ_CAPTURE_SECONDARY
actual_state_desc nvarchar(60) Текстовое описание фактического режима работы хранилища запросов.
ВЫКЛ.
READ_ONLY
READ_WRITE
ОШИБКА
READ_CAPTURE_SECONDARY

Существуют ситуации, когда фактическое состояние отличается от требуемого состояния:
— Если для базы данных задан режим только для чтения или если размер хранилища запросов превышает настроенную квоту, хранилище запросов может работать в режиме только для чтения, даже если пользователь указал запись для чтения.
— В экстремальных сценариях хранилище запросов может ввести состояние ERROR из-за внутренних ошибок. Начиная с версии 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 . База данных является вторичной репликой (применяется к группам доступности и георепликации базы данных SQL Azure). Это значение можно эффективно наблюдать только в доступных для чтения вторичных репликах.

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 Максимальный размер диска для хранилища запросов в мегабайтах (МБ). Значение по умолчанию — 100 МБ до SQL Server 2017 (14.x) и 1 ГБ , начиная с SQL Server 2019 (15.x).
Для выпуска Sql Database Premium по умолчанию используется 1 ГБ и для выпуска Базы данных SQL Basic по умолчанию — 10 МБ.

Изменение с помощью инструкции ALTER DATABASE <database> SET QUERY_STORE (MAX_STORAGE_SIZE_MB = <size>) .
stale_query_threshold_days bigint Количество дней хранения сведений о запросе в хранилище запросов. Значение по умолчанию — 30. Установите значение 0, чтобы отключить политику хранения.
Для выпуска Базы данных SQL 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 = ВСЕ — все запросы записываются. Это значение конфигурации по умолчанию для SQL Server (SQL Server 2016 (13.x) и более поздних версий.

2 = AUTO — фиксирует соответствующие запросы на основе количества выполнения и потребления ресурсов. Это значение конфигурации по умолчанию для базы данных SQL.

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)

NONE

ПОЛЬЗОВАТЕЛЬСКАЯ
capture_policy_execution_count int Параметр настраиваемой политики режима записи запросов. Определяет количество выполнений запроса в течение ознакомительного периода. Значение по умолчанию равно 30.
Область применения: SQL Server 2019 (15.x) и более поздних версий.
capture_policy_total_compile_cpu_time_ms bigint Параметр настраиваемой политики режима записи запросов. Определяет общее время ЦП, затраченное на компиляцию, которое запрос использовал за ознакомительный период. Значение по умолчанию — 1000.
Область применения: SQL Server 2019 (15.x) и более поздних версий.
capture_policy_total_execution_cpu_time_ms bigint Параметр настраиваемой политики режима записи запросов. Определяет общее время ЦП, затраченное на выполнение, которое запрос использовал за ознакомительный период. Значение по умолчанию равно 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 — очистка на основе размера будет автоматически активирована, когда размер на диске достигает 90 процентовmax_storage_size_mb. Это значение конфигурации по умолчанию.

Эта очистка сначала удаляет самые дешевые и самые старые запросы. Он останавливается, когда достигается примерно 80 процентовmax_storage_size_mb .
size_based_cleanup_mode_desc nvarchar(60) Текстовое описание фактического режима очистки на основе размера хранилища запросов:

ВЫКЛ.
AUTO (по умолчанию)
wait_stats_capture_mode smallint Определяет, выполняется ли хранилище запросов запись статистики ожидания:

0 = выключен.
1 = ON
Область применения: SQL Server 2017 (14.x) и более поздних версий.
wait_stats_capture_mode_desc nvarchar(60) Текстовое описание фактического режима отслеживания статистики ожидания:

ВЫКЛ.
ON (по умолчанию)
Область применения: SQL Server 2017 (14.x) и более поздних версий.
actual_state_additional_info nvarchar(8000) В настоящее время не используется.

Разрешения

Требуется разрешение VIEW DATABASE STATE.

Замечания

Значение actual_state_desc READ_CAPTURE_SECONDARY является ожидаемым состоянием при включении хранилища запросов для вторичных реплик. Дополнительные сведения см. в хранилище запросов для вторичных реплик.

Далее