Tanto en SQL Server 2016 como en SQLAzure (PaSS), Microsoft nos proporciona nuevas herramientas para que el comportamiento de SQL Server sea más predecible. Con estas nuevas herramientas (QueryStore) como administrador de BBDD tienes nuevas posibilidades para analizar el rendimiento de consultas concretas, de patrones de consultas, y si suceden cambios importantes en su comportamiento. Venga a esta sesión para entender QueryStore y sacarle más partido a su servidor SQL Server.


Presentación realizada en el SolidQ Summit por: Enrique Catalá Bañuls Mentor

 



1. #SQSummit Query Store Enrique Catalá Bañuls Mentor ecatala@solidq.com

2. Contenido de la sesión • Live Query Statistics (LQS) • Query Store

3. El infierno del DBA La aplicación no responde Rendimiento aleatorio Problemas de regresion

4. Live Query Statistics (LQS) • Identificación rápida de cuellos de botella • Ver en tiempo real • Filas/sec • Tiempo consumido • Progreso de operador • Warnings

5. 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

6. Demo Live Query Statistics

7. 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

8. El infierno del DBA La aplicación no responde Rendimiento aleatorio Problemas de regresion

9. 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?

10. Query Store: ¿Por qué? Problemas •Tiempo detección incidencias •Tiempo resolución del problema Soluciones •Información de rendimiento historico •Forzar plan anterior mediante GUI

11. 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

12. 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

13. 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 Runtime stats store Internal tables Query text and plan Query execute stats

14. 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 Runtime stats store Internal tables Query text and plan Query execute stats Query Store views (TVF)

15. Query Store: Tracking Tablas internas Query text Query Plan Runtime stats 1 -n1 -n Context settings sys. Compile stats query_store_query_text query_context_settings query_store_query query_store_plan Runtime stats query_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) Runtim e stats interval One row per plan, per time interval (example: 5 min)

16. 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

17. Demo Query Store

18. Query Store: Uso típico Activar Query Store (ALTER DB) Captura de datos por Query Store Buscar “patrónes problemático s” Aplicar FORCE PLAN

19. 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

20. Encontrar y arreglar problemas de regresión Identificar queries “pesadas” Realizar análisis en profundidad de cargas de trabajo Reducir riesgos ante migraciones Largo plazo/estratégicoCorto plazo/táctico Query Store: Repaso

21. 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!