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
SQL Server Performance Try PlanExplorer today!
http://www.pluralsight.com
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
5
Escriba sus preguntas en la sección de preguntas que esta en el menú de la derecha
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
3
2
Cliente
Servidor de Base De Datos sqlservr.exe
8
Archivo de Log Transaccional *.LDF
4 Archivo de Datos *.MDF, *. NDF
COMO SE GUARDA LÓGICAMENTE Distribución Física MDF, NDF
Filegroup 1
Distribución Lógica T1
T3 T4
Filegroup 2 LDF
T2
9
COMO SE GUARDA LÓGICAMENTE Distribución Física MDF, NDF
Filegroup 1
Distribución Lógica T1
T3 T4
Filegroup 2 LDF
T2
10
Si lo sabemos porqué tenemos esto??
11
Ciclo de vida de una transacción SELECT SQLcommand TDS
Ejecutor de consultas
Analizador de sintaxis
optimizador
Consulta de árbol *
Motor Relacional (procesador de consultas) Plan de ejecución
Gestor del búfer
Método de acceso
Mdf file
TCP/IP Shared memory Name pipes VIA
Buffer Pool
Gestor de transacción
Ldf file
SIN – SQL Server Network Interfaz
• Plan Caché Capa de Protocolo
Motor de almacenamiento Profesional SQL Server 2012 Internals & Troubleshooting. Wrox 12
• Caché de datos
Ejecutor de consultas
Analizador de sintaxis
optimizador
Ciclo de vida de una transacción SELECT
TDS SIN – SQL Server Network Interfaz
Motor Relacional (procesador de consultas)
Gestor del búfer
Método de acceso
Mdf file
Buffer Pool
Gestor de transacción
Ldf file
TCP/IP Shared memory Name pipes VIA
• Plan Caché Capa de Protocolo
Motor de almacenamiento Profesional SQL Server 2012 Internals & Troubleshooting. Wrox 13
• Caché de datos
Ciclo de vida de una transacción UPDATE Lang. Event
optimizador
QTree
Analizador de sintaxis QP
SIN – SQL Server Network Interfaz
Ejecutor de consultas
Capa de Protocolo
Mdf file
Gestor del búfer
Método de acceso
Gestor de transacción
Motor Relacional (procesador de consultas)
Ldf file
TDS
Motor de almacenamiento 14
Buffer Pool
• Plan Caché • Caché de datos Dirty Page
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