query store
TRANSCRIPT
Contenido de la sesión
• Live Query Statistics (LQS)
• Query Store
El infierno del DBA
La aplicaciónno responde
Rendimientoaleatorio
Problemasde regresion
Live Query Statistics (LQS)
• Identificación rápida de cuellos de botella
• Ver en tiempo real• Filas/sec
• Tiempo consumido
• Progreso de operador
• Warnings
Live Query Statistics (LQS)
• DMVs• sys.dm_exec_requests
• sys.dm_exec_sql_text
• sys.dm_exec_query_memory_grants
• sys.dm_exec_query_plan
• sys.dm_exec_query_profiles
• Activación• SET STATISTICS XML ON | SET STATISTICS PROFILE ON
• Xevents capturando query_post_execution_showplan
Demo
Live Query Statistics
Live Query Statistics
• Limitaciones• Tiene que ser activado previa ejecución de la
query
• No se soportan procedimientos almacenados compilados nativos
• Requiere• SHOWPLAN para ver la pestaña resultados
• VIEW SERVER STATE para ver estadísticas live
El infierno del DBA
La aplicaciónno responde
Rendimientoaleatorio
Problemasde regresion
Regresión de rendimiento• El optimizador utiliza dos tipos de clave
• Conforme los parámetros cambian, el plan de ejecución óptimo puede ser otro
Y si lo estima
incorrectamente?
Query Store: ¿Por qué?
Problemas
•Tiempodetecciónincidencias
•Tiemporesolución del problema
Soluciones
• Información de rendimientohistorico
•Forzar plan anterior mediante GUI
Query Store: Cómo funciona
• Texto de consulta
• Métricas de rendimiento
• Historificado por tiempo
• Permite forzado de planes
• Configuracion de recolección
Durability latency controlled by DB option
DATA_FLUSH_INTERNAL_SECONDS
Query Store
Async write-back
Compile
Execute
SQL
Plan store
Runtime stats
Query
Store
schema
Compile MSG
Execute MSG
Async write-back
Query Store
Query Store: Cómo funciona
Existe en
plan caché?
Compilar y optimizar
query
Ejecucion query
Fin de ejecución
NO
Ejecutar query
Necesario
recompilar?
NO
Query Store
Obtener plan de caché
SI
SI
Enviar texto y plan
Nuevo plan forzado
Obtener plan forzado
Query Store: Almacenamiento
Captura de datos en memoria para minimizar E/S
Persistencia de datos asíncrona en background
Query execution Query Store
async
Compile
Execute
Query Store plan store
Runtimestats store
Internal
tables
Query text and plan
Query execute stats
Query Store: Lectura
Vistas de mezcla entre datos in-memory y on-disk
Los usuarios siempre ven el “ultimo” dato
Query execution Query Store
async
Compile
Execute
Query Store plan store
Runtimestats store
Internal
tables
Query text and plan
Query execute stats
Query Store views (TVF)
Query Store: Tracking
Tablas internas
Query text
Query PlanRuntime
stats1 -n1 -n
Context settings
sys.
Compile stats
query_store_query_text
query_context_settings
query_store_query
query_store_plan
Runtime statsquery_store_runtime_stats_inte
rval
query_store_runtime_stats
Vistas expuestas
One row per query text, per plan affecting option(example: ANSI NULLS on/off)
One row per plan (for each query)
Runtime stats interval
One row per plan, per time interval (example: 5 min)
Query Store: configuraciones
• Operation mode [OFF | READ_ONLY | READ_WRITE]• Actual | Requested (status)
• Data flush interval (minutes)
• Statistics Collection Interval (minutes)
• Max Size (MB)
• Capture Mode [None | ALL | AUTO]
• Stale Query Threshold (Days)
• Purge Query Data
Demo
Query Store
Query Store: Uso típico
Activar Query Store
(ALTER DB)
Captura de datos por
Query Store
Buscar“patrónes
problemáticos”
AplicarFORCE PLAN
Query Store: Uso típico
• Queries con regresión de rendimiento
• Queries con regresión de rendimiento en período de tiempo
• Queries con mayor coste en un período de tiempo
• Coste de compilación de queries
• Forzar plan de ejecución
Encontrar y arreglarproblemas de regresión
Identificarqueries “pesadas”
Realizaranálisis en profundidadde cargas de trabajo
Reducirriesgos ante migraciones
Largo plazo/estratégicoCorto plazo/táctico
Query Store: Repaso
También puedes preguntar tus
dudas con el hashtag
#SQSummit en Twitter
ADAPTIVE BI FRAMEWORK
Te ayudaremos a mejorar la velocidad de desarrollo de tu plataforma de analítica de negocio basada en nuestra experiencia:
•Diseña antes de construir
•Automatización de procesos por ETL
•Servicios de mentoring para ayudarte a conseguir mejores prácticas para la construcción de procesos específicos y plataformas de analítica de negocio
•Muy fácil de mantener
SOLIDQ FLEX SERVICES
Con SolidQ Flex Services evitarás sustos, consiguiendo que tus sistemas sean estables. Desde una solución sencilla de monitorización, hasta un servicio de atención de incidencias 24/7, mantenimiento proactivo, resolución de problemas y línea de soporte.
Todo con un coste fijo mensual… y tú dedica el tiempo a las cosas importantes.
¡Gracias!