sys.database_query_store_options (Transact-SQL)

Se aplica a: SQL Server 2016 (13.x) y versiones posteriores Azure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics

Devuelve las opciones de Almacén de consultas para esta base de datos.

Se aplica a: SQL Server (SQL Server 2016 (13.x) y versiones posteriores), SQL Database.

Nombre de la columna Tipo de datos Descripción
desired_state smallint Indica el modo de operación deseado de Almacén de consultas, establecido explícitamente por el usuario.
0 = OFF
1 = READ_ONLY
2 = READ_WRITE
4 = READ_CAPTURE_SECONDARY
desired_state_desc nvarchar(60) Descripción textual del modo de operación deseado de Almacén de consultas:
Apagado
READ_ONLY
READ_WRITE
READ_CAPTURE_SECONDARY
actual_state smallint Indica el modo de operación de Almacén de consultas. Además de la lista de estados deseados requeridos por el usuario, el estado real puede ser un estado de error.
0 = OFF
1 = READ_ONLY
2 = READ_WRITE
3 = ERROR
4 = READ_CAPTURE_SECONDARY
actual_state_desc nvarchar(60) Descripción textual del modo de operación real de Almacén de consultas.
Apagado
READ_ONLY
READ_WRITE
ERROR
READ_CAPTURE_SECONDARY

Hay situaciones en las que el estado real es diferente del estado deseado:
- Si la base de datos está establecida en modo de solo lectura o si Almacén de consultas tamaño supera su cuota configurada, Almacén de consultas puede funcionar en modo de solo lectura incluso si el usuario especificó lectura-escritura.
- En escenarios extremos Almacén de consultas puede especificar un estado ERROR debido a errores internos. A partir de SQL Server 2017 (14.x), si esto sucede, el Almacén de consultas se puede recuperar mediante la ejecución del procedimiento almacenado sp_query_store_consistency_check en la base de datos afectada. Si la ejecución sp_query_store_consistency_check no funciona o si usa SQL Server 2016 (13.x), deberá borrar los datos mediante la ejecución de .ALTER DATABASE [YourDatabaseName] SET QUERY_STORE CLEAR ALL;
readonly_reason int Cuando el desired_state_desc es READ_WRITE y el actual_state_desc es READ_ONLY, readonly_reason devuelve un mapa de bits para indicar por qué el Almacén de consultas está en modo de lectura.

1 : la base de datos está en modo de solo lectura

2 : la base de datos está en modo de usuario único

4 : la base de datos está en modo de emergencia

8: la base de datos es réplica secundaria (se aplica a los grupos de disponibilidad y a la replicación geográfica de Azure SQL Database). Este valor solo se puede observar de forma eficaz en réplicas secundarias legibles .

65536: el Almacén de consultas ha alcanzado el límite de tamaño establecido por la MAX_STORAGE_SIZE_MB opción . Para obtener más información sobre esta opción, vea OPCIONES DE ALTER DATABASE SET (Transact-SQL).

131072: el número de instrucciones diferentes en Almacén de consultas ha alcanzado el límite de memoria interna. Considere la posibilidad de quitar las consultas que no necesita o actualizar a un nivel de servicio superior para permitir la transferencia de Almacén de consultas al modo de lectura y escritura.


262144 : el tamaño de los elementos en memoria que esperan conservarse en el disco ha alcanzado el límite de memoria interno. Almacén de consultas estará en modo de solo lectura temporalmente hasta que los elementos en memoria se conserven en el disco.


524288 : la base de datos ha alcanzado el límite de tamaño del disco. Almacén de consultas forma parte de la base de datos de usuario, por lo que si no hay más espacio disponible para una base de datos, significa que Almacén de consultas ya no puede crecer.


Para volver al modo de operaciones de Almacén de consultas a lectura y escritura, vea Comprobar que Almacén de consultas está recopilando datos de consulta continuamente en la sección Procedimiento recomendado con el Almacén de consultas.
current_storage_size_mb bigint Tamaño de Almacén de consultas en disco en megabytes.
flush_interval_seconds bigint Período de vaciado normal de Almacén de consultas datos en disco en segundos. El valor predeterminado es 900 (15 minutos).

Cambie mediante la ALTER DATABASE <database> SET QUERY_STORE (DATA_FLUSH_INTERVAL_SECONDS = <interval>) instrucción .
interval_length_minutes bigint Intervalo de agregación de estadísticas en minutos. No se permiten valores arbitrarios. Use uno de los siguientes: 1, 5, 10, 15, 30, 60 y 1440 minutos. El valor predeterminado es 60 minutos.
max_storage_size_mb bigint Tamaño máximo del disco para el Almacén de consultas en megabytes (MB). El valor predeterminado es de 100 MB hasta SQL Server 2017 (14.x) y 1 GB a partir de SQL Server 2019 (15.x).
En la edición SQL Database Premium, el valor predeterminado es 1 GB y en la edición SQL Database Basic, el valor predeterminado es 10 MB.

Cambie mediante la ALTER DATABASE <database> SET QUERY_STORE (MAX_STORAGE_SIZE_MB = <size>) instrucción .
stale_query_threshold_days bigint Número de días que la información de una consulta se mantiene en el Almacén de consultas. El valor predeterminado es 30. Establezca en 0 para deshabilitar la directiva de retención.
En la edición SQL Database Basic, el valor predeterminado es 7 días.

Cambie mediante la ALTER DATABASE <database> SET QUERY_STORE ( CLEANUP_POLICY = ( STALE_QUERY_THRESHOLD_DAYS = <value> ) ) instrucción .
max_plans_per_query bigint Limita el número máximo de planes almacenados. El valor predeterminado es 200. Si se alcanza el valor máximo, Almacén de consultas deja de capturar nuevos planes para esa consulta. Si se establece en 0, se quita la limitación con respecto al número de planes capturados.

Cambie mediante la ALTER DATABASE<database> SET QUERY_STORE (MAX_PLANS_PER_QUERY = <n>) instrucción .
query_capture_mode smallint Modo de captura de consulta activo actualmente:

1 = ALL: se capturan todas las consultas. Este es el valor de configuración predeterminado para SQL Server (SQL Server 2016 (13.x) y versiones posteriores).

2 = AUTO: captura las consultas pertinentes en función del recuento de ejecuciones y el consumo de recursos. Este es el valor de configuración predeterminado para SQL Database.

3 = NONE: deje de capturar nuevas consultas. El almacén de consultas seguirá recopilando estadísticas de compilación y tiempo de ejecución para las consultas que ya se capturaron. Use esta configuración con precaución, ya que es posible que no capture consultas importantes.

4 = CUSTOM: permite un control adicional sobre la directiva de captura de consultas mediante las opciones de QUERY_CAPTURE_POLICY.
Válido para : SQL Server 2019 (15.x) y versiones posteriores.
query_capture_mode_desc nvarchar(60) Descripción textual del modo de captura real de Almacén de consultas:

ALL (valor predeterminado para SQL Server 2016 (13.x))

AUTO (valor predeterminado para SQL Database)

Ninguno

CUSTOM
capture_policy_execution_count int Opción de directiva PERSONALIZADA modo de captura de consultas. Define el número de veces que se ejecuta una consulta durante el período de evaluación. El valor predeterminado es 30.
Válido para : SQL Server 2019 (15.x) y versiones posteriores.
capture_policy_total_compile_cpu_time_ms bigint Opción de directiva PERSONALIZADA modo de captura de consultas. Define el tiempo total de CPU de compilación transcurrido que usa una consulta durante el período de evaluación. El valor predeterminado es 1000.
Válido para : SQL Server 2019 (15.x) y versiones posteriores.
capture_policy_total_execution_cpu_time_ms bigint Opción de directiva PERSONALIZADA modo de captura de consultas. Define el tiempo de ejecución total de CPU transcurrido que ha utilizado una consulta durante el período de evaluación. El valor predeterminado es 100.
Válido para : SQL Server 2019 (15.x) y versiones posteriores.
capture_policy_stale_threshold_hours int Opción de directiva PERSONALIZADA modo de captura de consultas. Define el período de intervalo de evaluación para determinar si se debe capturar una consulta. El valor predeterminado es 24 horas.
Válido para : SQL Server 2019 (15.x) y versiones posteriores.
size_based_cleanup_mode smallint Controla si la limpieza se activará automáticamente cuando la cantidad total de datos se acerque al tamaño máximo:

0 = OFF: la limpieza basada en el tamaño no se activará automáticamente.

1 = AUTO: la limpieza basada en el tamaño se activará automáticamente cuando el tamaño del disco alcance el 90 % del max_storage_size_mb. Es el valor de configuración predeterminado.

La limpieza según el tamaño quita primero las consultas menos caras y más antiguas. Se detiene cuando se alcanza aproximadamente el 80 % de max_storage_size_mb .
size_based_cleanup_mode_desc nvarchar(60) Descripción textual del modo de limpieza basado en tamaño real de Almacén de consultas:

Apagado
AUTO (valor predeterminado)
wait_stats_capture_mode smallint Controla si Almacén de consultas realiza la captura de estadísticas de espera:

0 = OFF
1 = ON
Se aplica a: SQL Server 2017 (14.x) y posterior.
wait_stats_capture_mode_desc nvarchar(60) Descripción textual del modo de captura de estadísticas de espera reales:

Apagado
ON (valor predeterminado)
Se aplica a: SQL Server 2017 (14.x) y posterior.
actual_state_additional_info nvarchar(8000) Actualmente no se está usando.

Permisos

Requiere el permiso VIEW DATABASE STATE.

Comentarios

Un actual_state_desc valor de READ_CAPTURE_SECONDARY es el estado esperado cuando se habilita Almacén de consultas para réplicas secundarias. Para obtener más información, consulte Almacén de consultas para réplicas secundarias.

Pasos siguientes