220 likes | 369 Views
Cómo controlar el rendimiento de mi SQL Server 2008. Enrique Catala Bañuls Data Platform Architect Solid Quality Mentors ecatala@solidq.com. Solid Quality Mentors. SQLU Summit 2008 (23-27 Junio – Madrid) tres tracks simultáneos : SQL Server, Business Intelligence y Desarrollo
E N D
Cómo controlar el rendimiento de mi SQL Server 2008 Enrique Catala Bañuls Data Platform Architect Solid Quality Mentors ecatala@solidq.com
Solid Quality Mentors • SQLU Summit 2008 (23-27 Junio – Madrid) • tres tracks simultáneos: SQL Server, Business Intelligence y Desarrollo • Mentores • Fernando G. Guerrero, Miguel Egea, Alejandro Leguízamo, Jesús López, Jordi Rambla, Eladio Rincón, Daniel Seara, Guillermo Som, Antonio Soto, Adolfo Wiernik, … • +80 mentores en todo el mundo, 45 MVPs, 5 RDs. • Ayudando a obtener lo mejor de SQLServer y .NET con • Formación • Consultoría • Mentoring • http://blogs.solidq.com/ES/ElRinconDelDBA
Información sobre versión Beta • Toda la información y ejemplos son relativos a la beta CTP6 pública de SQL Server 2008 • Comandos y funcionalidades pueden diferir de la versión RTM final
AgendaCómo controlar el rendimiento de SQL Server 2008 • ResourceGovernor • Rendimiento predecible • Performance Studio • Análisis del rendimiento • Bloqueos de planes de ejecución • Control de querys
ResourceGovernor (RG)Introducción ¿Tiene tu SQL Server comportamiento predecible? • Consultas fuera de control • Consultas/jobs importantes que no poseen suficientes recursos • Consultas poco importantes que usan demasiados recursos en momentos críticos
ResourceGovernor (RG)Soluciónes • RG nos permite solucionar los problemas mediante: • Clasificación de conexiones entrantes y enrutado de sus cargas de trabajo a un grupo concreto • Supervisión del uso de los recursos para cada carga de trabajo en un grupo • Agrupación de cargas de trabajo y limitación sobre el uso de CPU y memoria. • Se evitan las consultas fuera de control • Asociación de cargas de trabajo agrupadas a un grupo de recursos • Identificación y establecimiento de prioridades para cargas de trabajo
ResourceGovernor (RG)Vistazo Grupos de recursos • Habilita la clasificación de cargas de trabajo • Limitación específica de grupos de recursos Pools de recursos • “maquinas virtuales” con limites de CPU y memoria Resource Management • Mapeo de grupos a pools
ResourceGovernor (RG)Vistazo (continuación) • Existe una conexión entrante para una sesión (sesión 1 de n) • La sesión está clasificada (Clasificación). • La carga de trabajo de la sesión se enruta a un grupo de carga de trabajo, por ejemplo, al Grupo 4 • La carga de trabajo utiliza el fondo de recursos al que está asociado, por ejemplo, el Fondo 2 • El fondo de recursos proporciona y limita los recursos requeridos por la aplicación, por ejemplo, la Aplicación 3
ResourceGovernor (RG)Características generales • No entra en juego si no se compite por recursos • Comportamiento distinto según la arquitectura de la capa de acceso a datos • Depende de la función de clasificación • Arquitectura conectada vs arquitectura desconectada • Por defecto WorkloadGroup “default” e “internal” • Peticiones del propio SQL Server entran en WorkloadGroup “internal”
ResourceGovernor (RG)Resource pools • Los recursos limitables son CPU y RAM • Un recurso posee dos partes • MIN • Aislada del resto de fondos • Permite reserva mínima de recursos • La suma de estas no puede superar 100 • MAX • Compartida con el resto de fondos • Permite especificar reserva máxima de recursos • Su valor puede estar entre MIN y 100 inclusive
ResourceGovernor (RG)WorkloadGroup • Son contenedores de solicitudes de sesión que entran basándose en la función de clasificación activa. • Permiten la supervisión agregada del consumo de recursos • Permiten la aplicación de consumo de recursos uniforme a las solicitudes del grupo
ResourceGovernor (RG)Función de clasificación • Por defecto, si no existe se clasifica todo al WorkloadGroup “default” • Se evalua para cada nueva conexión • Si devuelve NULL, no existe el grupo de trabajo u ocurre cualquier error, entrará en WorkloadGroup “default” • Se debe definir en master (ámbito de servidor) • Solo una función activa, pero n definidas • Cuidado: No deben tener tiempo de ejecución elevado (conexiones huerfanas)
DEMO 1 RESOURCE GOVERNOR
ResourceGovernor (RG)Restricciones • En CTP6, ResourceGovernor tiene las siguientes restricciones: • RG solo funciona para el motor de base de datos SQL Server. No sirve para Analysisservices, IntegrationServices ni ReportingServices • Solo permite gestionar CPU y MEMORIA • Consultas muy cortas de duración no siempre ocupan la CPU el tiempo suficiente para aplicar control de su ancho de banda • Puede que las estadísticas no sean las esperadas en estos casos
Performance StudioIntroducción Es el framework que enlaza capturas, análisis, solución de problemas y persistencia de los informes de diagnóstico de SQL Server Consiste en una suite de herramientas para • Captura de datos con poca sobrecarga • Monitor de rendimiento, solucionador de problemas y optimización • Persistencia de datos de diagnósticos • Reporting
Performance StudioConceptos del colector de datos Proveedor de datos • Fuentes de información • Ej. SQL Trace, Perform counters, DMVs, consultas T-SQL, logs Tipo colector • Conoce como leer y exponer datos de un proveedor de datos específico Elemento colección • Instancia de un tipo colector • Determina las entradas de datos y su frecuencia Ej. Solo recoge wait_time_ms y max_wait_time_ms desde sys.dm_os_wait_stats DMV cada 5 segundos).
Performance StudioConceptos del colector de datos (continuación) Conjunto colección • Items de grupo de colección • Colección de datos lógicos de una unidad de datos • Definido mediante TSQL o APIs.Net Administración de almacenes de datos (DW) • Repositorio para datos que se captura • Histórico y definición de baselines
DEMO 2 PERFORMANCE STUDIO
BLOQUEO DE PLAN DE CONSULTAS “Congelamiento” de planes • Nueva posibilidad de bloquear un plan de ejecución en memoria no volátil • Permite “sobrevivir” a una actualización o reinicio de servicio • Diseñado para controlar rendimiento y escalabilidad • Actualizaciones suaves • Fijamiento de planes para aplicaciones ISV • Estabilidad entre sistemas de producción y de test
BLOQUEO DE PLAN DE CONSULTAS Varias mejoras • sp_create_plan_guide • Puede usar la salida de XML SHOWPLAN • Puede crear múltiples guías de planificación (solo una disponible) • sp_create_plan_guide_from_cache • Crea guías de planeamiento desde cache • sys.fn_validate_plan_guide • Validación de guías de planes • Nuevas clases de eventos • Guia de plan satisfactoria o insatisfactoria • Nuevos contadores de rendimiento • Guided Plan Executions/sec, Misguided Plan Executions/sec
¿ PREGUNTAS ?ecatala@solidq.com http://blogs.solidq.com/ES/ElRinconDelDBA/default.aspx