Técnicas para optimizar tus aplicaciones de SQL Server con herramientas disponibles desde SQL Server 2005. Charla de la maratón de 24 horas del capítulo virtual de SQL Pass en español.
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Optimización de motores sql server 24 horas SQL Pass
1. 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
2. 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
3. Próximos SQL Saturday
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
6 de Diciembre de 2014
https://www.sqlsaturday.com/351/register.aspx
4. 4
Capítulo Global PASS en Español
4
Reuniones semanales todos los miércoles a
las 12PM UTC-5 (Hora de Colombia)
https://www.facebook.com/SpanishPASSVC
5. 5
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
6. 6
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
7. 7
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
8. 8
Como se guarda la información en SQL Server
Cliente
Servidor de Base
De Datos
sqlservr.exe
Archivo de Log
Transaccional
*.LDF
Archivo de Datos
*.MDF, *. NDF
1
2 3 4
9. 9
COMO SE GUARDA LÓGICAMENTE
T1 T3
T4
T2
MDF, NDF
LDF
Distribución
Física
Distribución
Lógica
Filegroup 1
Filegroup 2
11. 11
Ciclo de vida de una transacción SELECT
Mdf
file
Ldf
file
Motor de almacenamiento
Gestorde
transacción
Métodode
acceso
Gestordel
búfer
Motor Relacional (procesador de consultas)
optimizador
Analizador
desintaxis
Ejecutorde
consultas
Capa de
Protocolo
SIN – SQL
Server
Network
Interfaz
Buffer Pool
• Plan Caché
• Caché de datos
TCP/IP
Shared
memory
Name pipes
VIA
TDS
SQLcommandConsulta de árbol *
Plan de ejecución
Profesional SQL Server 2012 Internals & Troubleshooting. Wrox
12. 12
Ciclo de vida de una transacción SELECT
Mdf
file
Ldf
file
Motor de almacenamiento
Gestorde
transacción
Métodode
acceso
Gestordel
búfer
Motor Relacional (procesador de
consultas)
optimizador
Analizador
desintaxis
Ejecutorde
consultas
Capa de
Protocolo
SIN – SQL
Server
Network
Interfaz
Buffer Pool
• Plan Caché
• Caché de datos
TCP/IP
Shared
memory
Name pipes
VIA
TDS
Profesional SQL Server 2012 Internals & Troubleshooting. Wrox
13. 13
Ciclo de vida de una transacción UPDATE
Mdf
file
Ldf
file
Motor de almacenamiento
Gestorde
transacción
Métodode
acceso
Gestordel
búfer
Motor Relacional
(procesador de consultas)
optimizador
Analizador de sintaxis
Ejecutor de consultas
Capa de Protocolo
SIN – SQL
Server Network
Interfaz
Buffer Pool
• Plan Caché
• Caché de datos
TDS
Lang. EventQTree
QP
Dirty
Page
14. 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.
14
15. 15
Caso de la vida real 2: Reemplazando Triggers
• El Banco Dólar, 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.
15
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?
16
18. Durabilidad diferida de transacciones y
mejoras en gestión de bloqueos para
tareas administrativas en SQL Server 2014
Eladio Rincon
A continuación …
TDS: Tabular Data Stream, protocolo privado de Microsoft. Originalmente diseñado por sybase. Una vez se establece la conexión TCP/IP. Se crea un punto de conexión (endpoint) TDS. Existen 4 endpoints TDS más 1 para la conexión DAC
Analizador de sintaxis: Valida que esté bien formado el SQL y genera un hash de la consulta para validar en el buffer si existe un plan de ejecución vigente que pueda servir para solucionar la consulta. En caso contrario solicita al optimizador el diseño de un Nuevo plan de ejecución.
TDS: Tabular Data Stream, protocolo privado de Microsoft. Originalmente diseñado por sybase. Una vez se establece la conexión TCP/IP. Se crea un punto de conexión (endpoint) TDS. Existen 4 endpoints TDS más 1 para la conexión DAC
Analizador de sintaxis: Valida que esté bien formado el SQL y genera un hash de la consulta para validar en el buffer si existe un plan de ejecución vigente que pueda servir para solucionar la consulta. En caso contrario solicita al optimizador el diseño de un Nuevo plan de ejecución.
TDS: Tabular Data Stream, protocolo privado de Microsoft. Originalmente diseñado por sybase. Una vez se establece la conexión TCP/IP. Se crea un punto de conexión (endpoint) TDS. Existen 4 endpoints TDS más 1 para la conexión DAC
Analizador de sintaxis: Valida que esté bien formado el SQL y genera un hash de la consulta para validar en el buffer si existe un plan de ejecución vigente que pueda servir para solucionar la consulta. En caso contrario solicita al optimizador el diseño de un Nuevo plan de ejecución.