sys.database_query_store_options (Transact-SQL)

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

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

Применимо к: SQL Server (SQL Server 2016 (13.x); и выше), База данных SQL.

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

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

Измените с помощью ALTER DATABASE <database> SET QUERY_STORE (MAX_STORAGE_SIZE_MB = <size>) инструкции.
stale_query_threshold_days bigint Число дней, в течение которых данные запроса хранятся в хранилище запросов. Значение по умолчанию — 30. Задайте значение 0, чтобы отключить политику хранения.
Для выпуска База данных SQL Basic Edition значение по умолчанию — семь дней.

Измените с помощью 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 = Автоматический сбор соответствующих запросов на основе числа выполнений и потребления ресурсов. Это значение конфигурации по умолчанию для База данных 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); )

Авто (по умолчанию для База данных SQL )

None

CUSTOM
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 = очистка на основе размера не будет автоматически активирована.

1 = Очистка на основе авторазмера будет автоматически активирована, если размер на диске достигнет 90% max_storage_size_mb. Это значение конфигурации по умолчанию.

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

OFF
Авто (по умолчанию)
wait_stats_capture_mode smallint Определяет, выполняет ли хранилище запросов сбор статистики ожидания:

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

OFF
Вкл . (по умолчанию)
Область применения: SQL Server 2017 (14.x); и более поздних версий.
actual_state_additional_info nvarchar (8000) В настоящее время не используется. Может быть реализован в будущем.

Разрешения

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

См. также:

sys.query_context_settings (Transact-SQL)
sys.query_store_plan (Transact-SQL)
sys.query_store_query (Transact-SQL)
sys.query_store_query_text (Transact-SQL)
sys.query_store_runtime_stats (Transact-SQL)
sys.query_store_wait_stats (Transact-SQL)
sys.query_store_runtime_stats_interval (Transact-SQL)
Мониторинг производительности с использованием хранилища запросов
Представления каталога (Transact-SQL)
sys.fn_stmt_sql_handle_from_sql_stmt (Transact-SQL)
Хранимые процедуры хранилища запросов (Transact-SQL)