Optimización de motores SQL Server desde el código hasta la administración Expositor: Julián Castiblanco P MCSA-MCITP-MCP SQL SERVER Moderador: Kenneth Ureña
Gracias a nuestros auspiciadores Database Security as Easy as A-B-C http://www.greensql.com Hardcore Developer and IT Training http://www.pluralsight.com SQL Server Performance Try PlanExplorer today! http://www.sqlsentry.com
Próximos SQL Saturday 6 de Diciembre de 2014 https://www.sqlsaturday.com/351/register.aspx 24 de Enero de 2015 https://www.sqlsaturday.com/346/register.aspx 18 de Abril de 2015 https://www.sqlsaturday.com/368/register.aspx 9 de Mayo de 2015 https://www.sqlsaturday.com/373/register.aspx
Capítulo Global PASS en Español Reuniones semanales todos los miércoles a las 12PM UTC-5 (Hora de Colombia) https://www.facebook.com/spanishpassvc 4 4
Asistencia Técnica Si requiere asistencia durante la sesión debe usar la sección de preguntas que esta en el menú de la derecha. Use el botón de Zoom para ajustar su pantalla al tamaño deseado Escriba sus preguntas en la sección de preguntas que esta en el menú de la derecha 5
Julián Castiblanco Consultor de persistencia para Synergy TPC. Certificado como administrador desde la versión SQL Server 2005. 7 años de experiencia desarrollando y configurando bases de datos para distintas organizaciones del sector financiero y salud. 6 6
Agenda Resolución de consultas en SQL Server Manejo de archivos en SQL Server Caso de la vida real 1: Cómo reemplazar Cursores? Caso de la vida real 2: Cómo reemplazar triggers? Caso de la vida real 3: Cómo puedo distribuir mis datos? 7 7
Como se guarda la información en SQL Server 1 2 3 4 Cliente Servidor de Base De Datos sqlservr.exe Archivo de Log Transaccional *.LDF Archivo de Datos *.MDF, *. NDF 8
COMO SE GUARDA LÓGICAMENTE Distribución Física MDF, NDF LDF Filegroup 1 Filegroup 2 Distribución Lógica T1 T4 T2 T3 9
COMO SE GUARDA LÓGICAMENTE Distribución Física MDF, NDF LDF Filegroup 1 Filegroup 2 Distribución Lógica T1 T4 T2 T3 10
Si lo sabemos porqué tenemos esto?? 11
Ciclo de vida de una transacción SELECT optimizador Gestor de transacción Analizador de sintaxis Método de acceso Ejecutor de consultas Gestor del búfer Consulta de árbol * SQLcommand TDS Motor Relacional (procesador de consultas) Plan de ejecución SIN SQL Server Network Interfaz TCP/IP Shared memory Name pipes VIA Ldf file Buffer Pool Plan Caché Mdf file Motor de almacenamiento Capa de Protocolo Caché de datos 12 Profesional SQL Server 2012 Internals & Troubleshooting. Wrox
Ciclo de vida de una transacción SELECT Gestor de transacción optimizador Analizador de sintaxis Método de acceso Ejecutor de consultas Gestor del búfer TDS Motor Relacional (procesador de consultas) SIN SQL Server Network Interfaz TCP/IP Shared memory Name pipes VIA Ldf file Buffer Pool Plan Caché Mdf file Motor de almacenamiento Capa de Protocolo Caché de datos 13 Profesional SQL Server 2012 Internals & Troubleshooting. Wrox
Gestor de transacción Método de acceso Gestor del búfer optimizador Ciclo de vida de una transacción UPDATE QTree Lang. Event QP Analizador de sintaxis Ejecutor de consultas SIN SQL Server Network Interfaz TDS Motor Relacional (procesador de consultas) Capa de Protocolo Buffer Pool Ldf file Plan Caché Mdf file Motor de almacenamiento Caché de datos Dirty Page 14
Caso de la vida real 1: Eliminando uso de cursores La empresa Nikel se dedica a realizar análisis de mercados, comprando y analizando información de bases de datos de diferentes fuentes. Actualmente se encuentra en la actividad de mejorar la calidad de información, para lo cual lo contrata a usted para optimizar un procedimiento almacenado que se encarga de tomar la información cargada a través de un aplicativo del cual no tienen el código fuente de la aplicación y que a través de un procedimiento almacenado actualiza la información de los clientes. El problema más grande es el tiempo que toma la operación y el consumo excesivo de recursos que se presenta cuando se ejecuta el proceso. 15 15
Caso de la vida real 2: Reemplazando Triggers El Banco Dolar, debe cumplir una normativa local de seguridad de la información en la cual, todas las acciones de modificación de información sobre la tabla de transacciones, debe ser auditada con sus valores previos y nuevos en una tabla histórica. Actualmente, el equipo de proyectos comenta que varios incidentes en la salida de mejoras del aplicativo se presenta por la lógica compleja que manejan los disparadores en ciertas tablas. 16 16
Caso de la vida real 3: Como puedo distribuir mis datos? La aplicación de facturación de la compañía vendo de todo. Está presentando una degradación en el rendimiento durante el horario laboral. Después de un análisis minucioso, el administrador de almacenamiento descubre que el encolamiento en disco del disco E es bastante alto, así como las lecturas y escrituras. El proveedor de la aplicación comenta que 2 de las tablas del sistema son bastante transaccionales. Al revisar la configuración de la base usted encuentra que solo tiene un archivo de datos que pesa cerca de 60GB de los cuales 30GB pertenece a información de las 2 tablas transaccionales. Que posibles opciones podrían plantearse a la compañía? 17 17
Preguntas?
A continuación Durabilidad diferida de transacciones y mejoras en gestión de bloqueos para tareas administrativas en SQL Server 2014 Eladio Rincon
Gracias por participar