sys.query_store_plan (Transact-SQL)sys.query_store_plan (Transact-SQL)

SE APLICA A: síSQL Server síAzure SQL Database síAzure Synapse Analytics (SQL DW) noAlmacenamiento de datos paralelos APPLIES TO: yesSQL Server yesAzure SQL Database yesAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

Contiene información sobre cada plan de ejecución asociado con una consulta.Contains information about each execution plan associated with a query.

Nombre de columnaColumn name Tipo de datosData type DescripciónDescription
plan_idplan_id bigintbigint Clave principal.Primary key.
query_idquery_id bigintbigint Clave externa.Foreign key. Se une a sys.query_store_query (Transact-SQL).Joins to sys.query_store_query (Transact-SQL).
plan_group_idplan_group_id bigintbigint Id. de grupo del plan.ID of the plan group. Las consultas de cursor suele requieran varios (rellenar y capturar) planes.Cursor queries typically require multiple (populate and fetch) plans. Rellenar y son los planes de recuperación que se compilan juntos en el mismo grupo.Populate and fetch plans that are compiled together are in the same group.

0 significa que el plan no está en un grupo.0 means plan is not in a group.
engine_versionengine_version nvarchar(32)nvarchar(32) Versión del motor usado para compilar el plan en 'principal.secundaria.compilación.revisión' formato.Version of the engine used to compile the plan in 'major.minor.build.revision' format.
compatibility_levelcompatibility_level smallintsmallint Nivel de compatibilidad de base de datos de la base de datos al que hace referencia en la consulta.Database compatibility level of the database referenced in the query.
query_plan_hashquery_plan_hash binary (8)binary(8) Hash MD5 de los planes individuales.MD5 hash of the individual plan.
query_planquery_plan nvarchar(max)nvarchar(max) SHOWPLAN XML del plan de consulta.Showplan XML for the query plan.
is_online_index_planis_online_index_plan bitbit Plan utilizó durante la generación de índice en línea.Plan was used during an online index build.
Nota: Azure SQL Data Warehouse siempre devolverá cero (0).Note: Azure SQL Data Warehouse will always return zero (0).
is_trivial_planis_trivial_plan bitbit Plan es un plan trivial (salida en la etapa 0 del optimizador de consultas).Plan is a trivial plan (output in stage 0 of query optimizer).
Nota: Azure SQL Data Warehouse siempre devolverá cero (0).Note: Azure SQL Data Warehouse will always return zero (0).
is_parallel_planis_parallel_plan bitbit Plan es paralelo.Plan is parallel.
Nota: Azure SQL Data Warehouse siempre devolverá uno (1).Note: Azure SQL Data Warehouse will always return one (1).
is_forced_planis_forced_plan bitbit Plan está marcado como fuerza cuando el usuario ejecuta el procedimiento almacenado sys.sp_query_store_force_plan.Plan is marked as forced when user executes stored procedure sys.sp_query_store_force_plan. Mecanismo de forzado no garantiza que se utilizará para la consulta hace referenciada exactamente a este plan query_id.Forcing mechanism does not guarantee that exactly this plan will be used for the query referenced by query_id. Forzar el plan produce se vuelve a compilar la consulta y normalmente produce exactamente el plan iguales o similar para el plan al que hace referencia plan_id.Plan forcing causes query to be compiled again and typically produces exactly the same or similar plan to the plan referenced by plan_id. Si no tiene éxito al forzar el plan, force_failure_count se incrementa y last_force_failure_reason se rellena con el motivo del error.If plan forcing does not succeed, force_failure_count is incremented and last_force_failure_reason is populated with the failure reason.
Nota: Azure SQL Data Warehouse siempre devolverá cero (0).Note: Azure SQL Data Warehouse will always return zero (0).
is_natively_compiledis_natively_compiled bitbit Plan incluye procedimientos compilados de forma nativa optimizados en memoria.Plan includes natively compiled memory optimized procedures. (0 = FALSE, 1 = TRUE).(0 = FALSE, 1 = TRUE).
Nota: Azure SQL Data Warehouse siempre devolverá cero (0).Note: Azure SQL Data Warehouse will always return zero (0).
force_failure_countforce_failure_count bigintbigint Número de veces que forzar este plan ha fallado.Number of times that forcing this plan has failed. Se puede incrementar solo cuando se vuelve a compilar la consulta (no en cada ejecución).It can be incremented only when the query is recompiled (not on every execution). Se restablece a 0 cada vez is_plan_forced se cambia de FALSE a TRUE.It is reset to 0 every time is_plan_forced is changed from FALSE to TRUE.
Nota: Azure SQL Data Warehouse siempre devolverá cero (0).Note: Azure SQL Data Warehouse will always return zero (0).
last_force_failure_reasonlast_force_failure_reason intint Motivo de error de forzar el plan.Reason why plan forcing failed.

0: ningún error, en caso contrario, número de error del error que provocó el forzado de un error0: no failure, otherwise error number of the error that caused the forcing to fail

8637: ONLINE_INDEX_BUILD8637: ONLINE_INDEX_BUILD

8683: INVALID_STARJOIN8683: INVALID_STARJOIN

8684: TIME_OUT8684: TIME_OUT

8689: NO_DB8689: NO_DB

8690: HINT_CONFLICT8690: HINT_CONFLICT

8691: SETOPT_CONFLICT8691: SETOPT_CONFLICT

8694: DQ_NO_FORCING_SUPPORTED8694: DQ_NO_FORCING_SUPPORTED

8698: NO_PLAN8698: NO_PLAN

8712: NO_INDEX8712: NO_INDEX

8713: VIEW_COMPILE_FAILED8713: VIEW_COMPILE_FAILED

<otro valor >: GENERAL_FAILURE<other value>: GENERAL_FAILURE
Nota: Azure SQL Data Warehouse siempre devolverá cero (0).Note: Azure SQL Data Warehouse will always return zero (0).
last_force_failure_reason_desclast_force_failure_reason_desc nvarchar(128)nvarchar(128) Descripción textual del last_force_failure_reason_desc.Textual description of last_force_failure_reason_desc.

ONLINE_INDEX_BUILD: consulta intenta modificar los datos mientras la tabla de destino tiene un índice que se está generando en líneaONLINE_INDEX_BUILD: query tries to modify data while target table has an index that is being built online

INVALID_STARJOIN: plan contiene la especificación de StarJoin no válidaINVALID_STARJOIN: plan contains invalid StarJoin specification

TIME_OUT: Optimizador superado el número de operaciones permitidas durante la búsqueda del plan especificado por el plan forzadoTIME_OUT: Optimizer exceeded number of allowed operations while searching for plan specified by forced plan

NO_DB: Una base de datos especificada en el plan no existe.NO_DB: A database specified in the plan does not exist

HINT_CONFLICT: No se puede compilar la consulta porque el plan está en conflicto con una sugerencia de consultaHINT_CONFLICT: Query cannot be compiled because plan conflicts with a query hint

DQ_NO_FORCING_SUPPORTED: No se puede ejecutar la consulta porque el plan está en conflicto con el uso de la consulta distribuida u operaciones de texto completo.DQ_NO_FORCING_SUPPORTED: Cannot execute query because plan conflicts with use of distributed query or full-text operations.

NO_PLAN: Procesador de consultas no pudo producir el plan de consulta porque no se puede comprobar el plan forzado a ser válido para la consultaNO_PLAN: Query processor could not produce query plan because forced plan could not be verified to be valid for the query

NO_INDEX: El índice especificado en el plan ya no existeNO_INDEX: Index specified in plan no longer exists

VIEW_COMPILE_FAILED: No se pudo forzar el plan de consulta debido a un problema en una vista indizada que se hace referencia en el planVIEW_COMPILE_FAILED: Could not force query plan because of a problem in an indexed view referenced in the plan

GENERAL_FAILURE: error de forzar general (no se tratan con motivos anteriores)GENERAL_FAILURE: general forcing error (not covered with reasons above)
Nota: Azure SQL Data Warehouse siempre devolverá NONE.Note: Azure SQL Data Warehouse will always return NONE.
count_compilescount_compiles bigintbigint Planee las estadísticas de compilación.Plan compilation statistics.
initial_compile_start_timeinitial_compile_start_time datetimeoffsetdatetimeoffset Planee las estadísticas de compilación.Plan compilation statistics.
last_compile_start_timelast_compile_start_time datetimeoffsetdatetimeoffset Planee las estadísticas de compilación.Plan compilation statistics.
last_execution_timelast_execution_time datetimeoffsetdatetimeoffset Último tiempo de ejecución hace referencia a la última hora de finalización del plan de consulta.Last execution time refers to the last end time of the query/plan.
avg_compile_durationavg_compile_duration floatfloat Planee las estadísticas de compilación.Plan compilation statistics.
Nota: Azure SQL Data Warehouse siempre devolverá cero (0).Note: Azure SQL Data Warehouse will always return zero (0).
last_compile_durationlast_compile_duration bigintbigint Planee las estadísticas de compilación.Plan compilation statistics.
Nota: Azure SQL Data Warehouse siempre devolverá cero (0).Note: Azure SQL Data Warehouse will always return zero (0).
plan_forcing_typeplan_forcing_type intint Tipo de forzar el plan.Plan forcing type.

0: Ninguno0: NONE

1: MANUAL1: MANUAL

2: AUTO2: AUTO
plan_forcing_type_descplan_forcing_type_desc nvarchar(60)nvarchar(60) Descripción de texto de plan_forcing_type.Text description of plan_forcing_type.

NINGUNO: No forzar el planNONE: No plan forcing

MANUAL: Plan forzado por el usuarioMANUAL: Plan forced by user

AUTO: Plan forzado por el ajuste automáticoAUTO: Plan forced by automatic tuning

Limitaciones de forzar el planPlan forcing limitations

El Almacén de consultas dispone de un mecanismo para obligar al optimizador de consultas a usar un determinado plan de ejecución.Query Store has a mechanism to enforce Query Optimizer to use certain execution plan. Pero existen algunas limitaciones que pueden evitar la aplicación de un plan.However, there are some limitations that can prevent a plan to be enforced.

En primer lugar, si el plan contiene las siguientes construcciones:First, if the plan contains following constructions:

  • Instrucción insert bulk.Insert bulk statement.
  • Referencia a una tabla externaReference to an external table
  • Consulta distribuida u operaciones de texto completoDistributed query or full-text operations
  • Uso de consultas globalesUse of Global queries
  • Cursores keyset o dinámicoDynamic or keyset cursors
  • Especificación de combinación en estrella no válidaInvalid star join specification

Nota

Azure SQL Database y SQL Server 2019 (versión preliminar) admiten el forzado de plan para los cursores estáticos y de avance rápido.Azure SQL Database and SQL Server 2019 (preview) support plan forcing for static and fast forward cursors.

En segundo lugar, si los objetos en los que se basa el plan ya no están disponibles:Second, when objects that plan relies on, are no longer available:

  • Base de datos (si la base de datos donde se originó el plan ya no existe)Database (if Database, where plan originated, does not exist anymore)
  • Índice (ya no existe o está deshabilitado)Index (no longer there or disabled)

Por último, problemas con el propio plan:Finally, problems with the plan itself:

  • No válido para la consultaNot legal for query
  • El optimizador de consultas ha superado el número de operaciones permitidasQuery Optimizer exceeded number of allowed operations
  • XML de plan formado incorrectamenteIncorrectly formed plan XML

PermisosPermissions

Requiere el VIEW DATABASE STATE permiso.Requires the VIEW DATABASE STATE permission.

Vea tambiénSee Also

sys.database_query_store_options (Transact-SQL) sys.database_query_store_options (Transact-SQL)
sys.query_context_settings (Transact-SQL) sys.query_context_settings (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 Monitoring Performance By Using the Query Store
Vistas de catálogo (Transact-SQL) Catalog Views (Transact-SQL)
Procedimientos almacenados de Query Store (Transact-SQL)Query Store Stored Procedures (Transact-SQL)