itcr estratégias de indexación y buenos diseños físicos para mejoras del desempeño - kenneth urena
1. Estratégias de indexación y buenos diseños
físicos para mejoras del desempeño
Kenneth Ureña
• http://www.sqlcr.com
• @sqlcr
• /sqlcr
• /SpanishPASSVC
2. Agenda
El Viaje de una transacción
Factores de degradación del desempeño
Diseños físicos
Indices y Datos
Patrónes de Acceso a Datos
Buenas prácticas de codificación
6. Ciclo de vida de la degradación del
desempeño de la BD
CPU / Memoria Degrada el desempeño
Hardware Software
Sobrecarga
Almacenamiento
Periféricos
BD
Algoritmo
Datos
7. Almacenamiento
• Sata, SAS, SSD (Tipo de Discos duros)
• Gran diferencia entre IO Secuencial vs IO aleatorio
• IOPS (In Out Per Second / entrada y salida x sec)
• Estimar IOPS = 1 / ((seek time / 1000) + (latency / 1000))
Reference
http://www.cloudbyte.com/docs/Whitepaper_CloudByte_Measuring-Storage-Performance.pdf
8. SAS - 600GB 15K - Seagate
• Average read seek time: 3.4 ms
• Average write seek time: 3.9 ms
• Average latency: 2.0 ms
• Seek time = (Average read seek time + Average write seek time) / 2
= (3.4 + 3.9) / 2 = 3.65 ms
• IOPS Estimated = 1 / ((seek time / 1000) + (latency / 1000))
= 1 / ((3.65/1000) + (2.0 / 1000)
= 176.9911 ~ 175 IOPS
Reference
http://www.seagate.com/www/en-us/products/enterprise-hard-drives/cheetah-15k#tTabContentSpecifications
16. Diseños Físicos
• Buscar el Raid apropiado para los archivos de la base de
datos
• Dividir los archivos para obtener el patron de acceso a datos
esperado
17. Escenario #1
• 1 Base de datos de usuario
• Alto tráfico OLTP
• Alto consumo de TempDB
• Servidor de 16 Cores
18. Escenario #1 (Propuesta 1)
Raid 1+0 Drive
SAS
TempDB UserDB
Raid 5 Drive
SAS
Raid 1+0 Drive
SAS
19. Escenario #1 (Propuesta 2)
Raid 1+0 Drive
SAS
TempDB UserDB
Raid 1+0 Drive
SAS
Raid 1+0 Drive
SAS
36. Buenas prácticas de codificación
Maximice cobertura
Evite conversiones (implicita/explicita)
Evite el acesos tupla por tupla (patrón cursor)
Evite ordenamientos inecesarios
Seleccione el índice correcto para el patrón
de acceso de datos esperado.
37. Data Access Patterns Preguntas y Respuestas
Kenneth Ureña
• http://www.sqlcr.com
• @sqlcr
• /sqlcr
• /SpanishPASSVC
Usually Hardware issues cause performance degradation in the software
Changes on the software usually create hardware bottleneck and get reflected in performance degradation
And that is the base of the problem, here is where you see DBA’s fighting Developers or DBA’s fighting San Administrators