sys.database_query_store_options (Transact-SQL)sys.database_query_store_options (Transact-SQL)

Применимо к:Applies to: даSQL Server 2016 (13.x);SQL Server 2016 (13.x)yesSQL Server 2016 (13.x);SQL Server 2016 (13.x) и более поздние версии ДаБаза данных SQL AzureAzure SQL DatabaseYesБаза данных SQL AzureAzure SQL Database ДаУправляемый экземпляр SQL AzureAzure SQL Managed InstanceYesУправляемый экземпляр SQL AzureAzure SQL Managed Instance даAzure Synapse AnalyticsAzure Synapse AnalyticsyesAzure Synapse AnalyticsAzure Synapse AnalyticsПрименимо к:Applies to: даSQL Server 2016 (13.x);SQL Server 2016 (13.x)yesSQL Server 2016 (13.x);SQL Server 2016 (13.x) and later ДаБаза данных SQL AzureAzure SQL DatabaseYesБаза данных SQL AzureAzure SQL Database ДаУправляемый экземпляр SQL AzureAzure SQL Managed InstanceYesУправляемый экземпляр SQL AzureAzure SQL Managed Instance даAzure Synapse AnalyticsAzure Synapse AnalyticsyesAzure Synapse AnalyticsAzure Synapse Analytics

Возвращает параметры хранилища запросов для этой базы данных.Returns the Query Store options for this database.

Применимо к: SQL ServerSQL Server (SQL Server 2016 (13.x);SQL Server 2016 (13.x) и выше), База данных SQLSQL Database.Applies to: SQL ServerSQL Server (SQL Server 2016 (13.x);SQL Server 2016 (13.x) and later), База данных SQLSQL Database.

Имя столбцаColumn name Тип данныхData type ОписаниеDescription
desired_statedesired_state smallintsmallint Указывает режим требуемой операции хранилища запросов, явно заданный пользователем.Indicates the desired operation mode of Query Store, explicitly set by user.
0 = выключен.0 = OFF
1 = READ_ONLY1 = READ_ONLY
2 = READ_WRITE2 = READ_WRITE
desired_state_descdesired_state_desc nvarchar(60)nvarchar(60) Текстовое описание требуемого режима работы хранилища запросов:Textual description of the desired operation mode of Query Store:
OFFOFF
READ_ONLYREAD_ONLY
READ_WRITEREAD_WRITE
actual_stateactual_state smallintsmallint Указывает режим работы хранилища запросов.Indicates the operation mode of Query Store. В дополнение к списку требуемых состояний, требуемых для пользователя, фактическое состояние может быть состоянием ошибки.In addition to list of desired states required by the user, actual state can be an error state.
0 = выключен.0 = OFF
1 = READ_ONLY1 = READ_ONLY
2 = READ_WRITE2 = READ_WRITE
3 = ОШИБКА3 = ERROR
actual_state_descactual_state_desc nvarchar(60)nvarchar(60) Текстовое описание реального режима работы хранилища запросов.Textual description of the actual operation mode of Query Store.
OFFOFF
READ_ONLYREAD_ONLY
READ_WRITEREAD_WRITE
ОШИБКАERROR

Существуют ситуации, когда фактическое состояние отличается от желаемого состояния:There are situations when actual state is different from the desired state:
— Если база данных имеет режим "только для чтения" или размер хранилища запросов превышает настроенную квоту, хранилище запросов может действовать в режиме только для чтения, даже если пользователь указал параметр "чтение и запись".- If the database is set to read-only mode or if Query Store size exceeds its configured quota, Query Store may operate in read-only mode even if read-write was specified by the user.
— В экстремальных сценариях хранилище запросов может вводить состояние ошибки из-за внутренних ошибок.- In extreme scenarios Query Store can enter an ERROR state because of internal errors. Начиная с SQL Server 2017 (14.x);SQL Server 2017 (14.x) , если это происходит, хранилище запросов можно восстановить, выполнив sp_query_store_consistency_check хранимую процедуру в затронутой базе данных.Starting with SQL Server 2017 (14.x);SQL Server 2017 (14.x), if this happens, Query Store can be recovered by executing the sp_query_store_consistency_check stored procedure in the affected database. Если работа sp_query_store_consistency_check не работает или используется SQL Server 2016 (13.x);SQL Server 2016 (13.x) , необходимо очистить данные, выполнив ALTER DATABASE [YourDatabaseName] SET QUERY_STORE CLEAR ALL;If running sp_query_store_consistency_check doesn't work, or if you are using SQL Server 2016 (13.x);SQL Server 2016 (13.x), you will need to clear the data by running ALTER DATABASE [YourDatabaseName] SET QUERY_STORE CLEAR ALL;
readonly_reasonreadonly_reason intint Если desired_state_desc READ_WRITE и actual_state_desc READ_ONLY, readonly_reason возвращает битовую карту, чтобы указать, почему хранилище запросов находится в режиме только для чтения.When the desired_state_desc is READ_WRITE and the actual_state_desc is READ_ONLY, readonly_reason returns a bit map to indicate why the Query Store is in readonly mode.

1 — база данных находится в режиме только для чтения1 - database is in read-only mode

2 — база данных находится в однопользовательском режиме2 - database is in single-user mode

4 . база данных находится в аварийном режиме4 - database is in emergency mode

8 — база данных является вторичной репликой (применяется для Always on и База данных SQL AzureAzure SQL Database георепликации).8 - database is secondary replica (applies to Always On and База данных SQL AzureAzure SQL Database geo-replication). Это значение можно эффективно наблюдать только на вторичных репликах, доступных для чтенияThis value can be effectively observed only on readable secondary replicas

65536 -хранилище запросов достигло предельного размера, установленного MAX_STORAGE_SIZE_MB параметром.65536 - the Query Store has reached the size limit set by the MAX_STORAGE_SIZE_MB option. Дополнительные сведения об этом параметре см. в разделе Параметры ALTER DATABASE SET (Transact-SQL).For more information about this option, see ALTER DATABASE SET options (Transact-SQL).

131072 -количество различных инструкций в хранилище запросов достигло предела внутренней памяти.131072 - The number of different statements in Query Store has reached the internal memory limit. Рассмотрите возможность удаления ненужных запросов или обновления до более высокого уровня служб, чтобы обеспечить передачу хранилища запросов в режим чтения и записи.Consider removing queries that you do not need or upgrading to a higher service tier to enable transferring Query Store to read-write mode.


262144 -размер элементов в памяти, ожидающих сохранения на диске, достигло предела внутренней памяти.262144 - Size of in-memory items waiting to be persisted on disk has reached the internal memory limit. Хранилище запросов будет временно работать в режиме только для чтения, пока элементы в памяти не будут сохранены на диске.Query Store will be in read-only mode temporarily until the in-memory items are persisted on disk.


524288 -база данных достигла предельного размера диска.524288 - Database has reached disk size limit. Хранилище запросов является частью пользовательской базы данных, поэтому, если для базы данных больше нет свободного места, это означает, что хранилище запросов больше не может расти.Query Store is part of user database, so if there is no more available space for a database, that means that Query Store cannot grow further anymore.


Сведения о том, как переключить режим операций хранилища запросов на чтение и запись, см. в разделе Проверка хранилища запросов на сбор данных о запросах с использованием хранилища запросов.To switch the Query Store operations mode back to read-write, see Verify Query Store is Collecting Query Data Continuously section of Best Practice with the Query Store.
current_storage_size_mbcurrent_storage_size_mb bigintbigint Размер хранилища запросов на диске в мегабайтах.Size of Query Store on disk in megabytes.
flush_interval_secondsflush_interval_seconds bigintbigint Период регулярного сброса данных хранилища запросов на диск за считанные секунды.The period for regular flushing of Query Store data to disk in seconds. Значение по умолчанию — 900 (15 минут).Default value is 900 (15 min).

Измените с помощью ALTER DATABASE <database> SET QUERY_STORE (DATA_FLUSH_INTERVAL_SECONDS = <interval>) инструкции.Change by using the ALTER DATABASE <database> SET QUERY_STORE (DATA_FLUSH_INTERVAL_SECONDS = <interval>) statement.
interval_length_minutesinterval_length_minutes bigintbigint Интервал агрегирования статистики в минутах.The statistics aggregation interval in minutes. Произвольные значения не допускаются.Arbitrary values are not allowed. Используйте один из следующих элементов: 1, 5, 10, 15, 30, 60 и 1440 минут.Use one of the following: 1, 5, 10, 15, 30, 60, and 1440 minutes. Значение по умолчанию — 60 минут.The default value is 60 minutes.
max_storage_size_mbmax_storage_size_mb bigintbigint Максимальный размер диска для хранилища запросов в мегабайтах (МБ).Maximum disk size for the Query Store in megabytes (MB). Значение по умолчанию — 100 МБ до SQL Server 2017 (14.x);SQL Server 2017 (14.x) и 1 ГБ , начиная с SQL Server 2019 (15.x)SQL Server 2019 (15.x) .Default value is 100 MB up to SQL Server 2017 (14.x);SQL Server 2017 (14.x), and 1 GB starting with SQL Server 2019 (15.x)SQL Server 2019 (15.x) .
Для База данных SQLSQL Database выпуска Premium значение по умолчанию — 1 ГБ, а для База данных SQLSQL Database выпуска Basic — 10 МБ.For База данных SQLSQL Database Premium edition, default is 1 GB and for База данных SQLSQL Database Basic edition, default is 10 MB.

Измените с помощью ALTER DATABASE <database> SET QUERY_STORE (MAX_STORAGE_SIZE_MB = <size>) инструкции.Change by using the ALTER DATABASE <database> SET QUERY_STORE (MAX_STORAGE_SIZE_MB = <size>) statement.
stale_query_threshold_daysstale_query_threshold_days bigintbigint Число дней, в течение которых данные запроса хранятся в хранилище запросов.Number of days that the information for a query is kept in the Query Store. Значение по умолчанию — 30.Default value is 30. Задайте значение 0, чтобы отключить политику хранения.Set to 0 to disable the retention policy.
Для выпуска База данных SQLSQL Database Basic Edition значение по умолчанию — семь дней.For База данных SQLSQL Database Basic edition, default is 7 days.

Измените с помощью ALTER DATABASE <database> SET QUERY_STORE ( CLEANUP_POLICY = ( STALE_QUERY_THRESHOLD_DAYS = <value> ) ) инструкции.Change by using the ALTER DATABASE <database> SET QUERY_STORE ( CLEANUP_POLICY = ( STALE_QUERY_THRESHOLD_DAYS = <value> ) ) statement.
max_plans_per_querymax_plans_per_query bigintbigint Ограничивает максимальное количество хранимых планов.Limits the maximum number of stored plans. Значение по умолчанию — 200.Default value is 200. Если достигнуто максимальное значение, хранилище запросов прекращает запись новых планов для этого запроса.If the maximum value is reached, Query Store stops capturing new plans for that query. Значение 0 устраняет ограничение в отношении количества захваченных планов.Setting to 0 removes the limitation with regards to the number of captured plans.

Измените с помощью ALTER DATABASE<database> SET QUERY_STORE (MAX_PLANS_PER_QUERY = <n>) инструкции.Change by using the ALTER DATABASE<database> SET QUERY_STORE (MAX_PLANS_PER_QUERY = <n>) statement.
query_capture_modequery_capture_mode smallintsmallint Текущий активный режим записи запросов:The currently active query capture mode:

1 = все — записываются все запросы.1 = ALL - all queries are captured. Это значение конфигурации по умолчанию для SQL ServerSQL Server ( SQL Server 2016 (13.x);SQL Server 2016 (13.x) и более поздних версий).This is the default configuration value for SQL ServerSQL Server (SQL Server 2016 (13.x);SQL Server 2016 (13.x) and later).

2 = Автоматический сбор соответствующих запросов на основе числа выполнений и потребления ресурсов.2 = AUTO - capture relevant queries based on execution count and resource consumption. Это значение конфигурации по умолчанию для База данных SQLSQL Database.This is the default configuration value for База данных SQLSQL Database.

3 = NONE — отключить запись новых запросов.3 = NONE - stop capturing new queries. Хранилище запросов будет продолжать сбор статистики компиляции и времени выполнения для запросов, которые уже были записаны.Query Store will continue to collect compile and runtime statistics for queries that were captured already. Используйте эту конфигурацию с осторожностью, так как вы можете пропустить важные запросы.Use this configuration cautiously since you may miss capturing important queries.
query_capture_mode_descquery_capture_mode_desc nvarchar(60)nvarchar(60) Текстовое описание фактического режима записи хранилища запросов:Textual description of the actual capture mode of Query Store:

ALL (по умолчанию для SQL Server 2016 (13.x);SQL Server 2016 (13.x) )ALL (default for SQL Server 2016 (13.x);SQL Server 2016 (13.x))

Авто (по умолчанию для База данных SQLSQL Database )AUTO (default for База данных SQLSQL Database)

NoneNONE
size_based_cleanup_modesize_based_cleanup_mode smallintsmallint Определяет, будет ли автоматически активирована очистка, когда общий объем данных приблизится к верхней границе ограничения.Controls whether cleanup will be automatically activated when total amount of data gets close to maximum size:

0 = очистка на основе размера не будет автоматически активирована.0 = OFF - size-based cleanup won't be automatically activated.

1 = Очистка на основе авторазмера будет автоматически активирована, если размер на диске достигнет 90% max_storage_size_mb.1 = AUTO - size-based cleanup will be automatically activated when size on disk reaches 90 percent of max_storage_size_mb. Это значение конфигурации по умолчанию.This is the default configuration value.

Эта очистка сначала удаляет самые дешевые и самые старые запросы.Size-based cleanup removes the least expensive and oldest queries first. Она останавливается при достижении примерно 80% max_storage_size_mb .It stops when approximately 80 percent of max_storage_size_mb is reached.
size_based_cleanup_mode_descsize_based_cleanup_mode_desc nvarchar(60)nvarchar(60) Текстовое описание фактического режима очистки на основе размера хранилища запросов:Textual description of the actual size-based cleanup mode of Query Store:

OFFOFF
Авто (по умолчанию)AUTO (default)
wait_stats_capture_modewait_stats_capture_mode smallintsmallint Определяет, выполняет ли хранилище запросов сбор статистики ожидания:Controls whether Query Store performs capture of wait statistics:

0 = выключен.0 = OFF
1 = включено1 = ON
Область применения: SQL Server 2017 (14.x);SQL Server 2017 (14.x) и более поздних версий.Applies to: SQL Server 2017 (14.x);SQL Server 2017 (14.x) and later.
wait_stats_capture_mode_descwait_stats_capture_mode_desc nvarchar(60)nvarchar(60) Текстовое описание фактического режима записи статистики ожидания:Textual description of the actual wait statistics capture mode:

OFFOFF
Вкл . (по умолчанию)ON (default)
Область применения: SQL Server 2017 (14.x);SQL Server 2017 (14.x) и более поздних версий.Applies to: SQL Server 2017 (14.x);SQL Server 2017 (14.x) and later.

РазрешенияPermissions

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

См. также:See Also

sys.query_context_settings (Transact-SQL) sys.query_context_settings (Transact-SQL)
sys.query_store_plan (Transact-SQL) sys.query_store_plan (Transact-SQL)
sys.query_store_query (Transact-SQL) sys.query_store_query (Transact-SQL)
sys.query_store_query_text (Transact-SQL) sys.query_store_query_text (Transact-SQL)
sys.query_store_runtime_stats (Transact-SQL) sys.query_store_runtime_stats (Transact-SQL)
sys.query_store_wait_stats (Transact-SQL)sys.query_store_wait_stats (Transact-SQL)
sys.query_store_runtime_stats_interval (Transact-SQL) sys.query_store_runtime_stats_interval (Transact-SQL)
Мониторинг производительности с использованием хранилища запросов Monitoring Performance By Using the Query Store
Представления каталога (Transact-SQL) Catalog Views (Transact-SQL)
sys.fn_stmt_sql_handle_from_sql_stmt (Transact-SQL) sys.fn_stmt_sql_handle_from_sql_stmt (Transact-SQL)
Хранимые процедуры хранилища запросов (Transact-SQL)Query Store Stored Procedures (Transact-SQL)