Durabilidad diferida de transacciones y mejoras en gestión de bloqueos para tareas administrativas en SQL Server 2014 Expositor: Eladio Rincón (
[email protected]) Director y Mentor SolidQ | MVP SQL Server | MCT Moderador: Freddy Angarita
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
Presentando a: Eladio Rincón Mentor y Director @ SolidQ Microsoft SQL Server MVP http://www.solidq.com http://www.linkedin.com/in/erincon Mentor y formador en SQL Server: • Experto en Arquitecturas 24x7 basadas en SQL Server: • Diseño de Sistemas Escalables • Soporte a Clientes • Optimización y Troubleshooting
6
6
Agenda 1. Transacciones durabilidad diferida en SQL Server 2014 Transacciones en SQL Server 2014 Transacciones Diferidas Ejemplos y Escenarios de Uso
2. Nuevas Operaciones ONLINE Prioridad en Bloqueos Reconstrucción online de particiones
Tipos de Transacciones en SQL Server 2014
Transacciones en SQL Server 2014 Pros / Contras Tradicionales
Diferidas
Sin perdida datos
Perdida datos posible
Cuello de botella en Log
Reducción esperas Escribimos en lotes Menos operaciones E/S disco
Transacciones Diferidas Consideraciones Son visibles para el resto de transacciones en registro Con alto grado de simultaneidad es posible contención pero mucho menor que con las tradicionales Utilizar en: Logs, Simuladores, Cargas masivas, Cuellos de Botella por Log Transacciones Pero asumiendo que: ES POSIBLE LA PERDIDA DE DATOS
Durabilidad Transacciones Diferidas Cuando se escribe a disco? Una transacción tradicional de la misma bbdd se confirma
Sys.sp_flush_log El buffer de registro de transacciones en memoria se llena y se vacía en disco automáticamente.
Modos Configuración BBDD ALTER DATABASE SET DELAYED DURABILITY =
Disabled
Allowed
COMMIT [ { TRAN | TRANSACTION } ] [ transaction_name | @tran_name_variable ] [ WITH ( DELAYED_DURABILITY = { OFF | ON } ) ]
Forced
Resumen Opciones Combinaciones COMMIT TRANSACCION DELAYED_DURABILITY = OFF
DELAYED_DURABILITY = ON
DELAYED DURABILITY EN BASE DE DATOS DISABLED ALLOWED FORCED Totalmente durable (Tradicional)
Totalmente durable (Tradicional)
Durabilidad diferida
Totalmente durable (Tradicional)
Durabilidad diferida
Durabilidad diferida
DEMO Transacciones Diferidas:
Configuración y Ejemplos
Escenarios de Uso Alta actividad en Log y trozos pequeños Cursores que modifican fila por fila Escenarios de loggin (registro, auditoria) ASUMIR: potencial perdida de datos SI fail-over
Sin mejoras apreciables Batches grandes que modifican mucho (transacción única) Operaciones masivas
Agenda 1. Transacciones durabilidad diferida en SQL Server 2014
SQL Server 2014 Transacciones Transacciones Diferidas Durabilidad Transacciones Diferidas Ejemplos y Escenarios de Uso
2. Nuevas Operaciones ONLINE Reconstrucción online de particiones Prioridad en Bloqueos
Reconstrucción ONLINE de particiones
• Rebuild online (índice entero en tablas particionadas) • Rebuild offline (a nivel de partición) • Bloqueo Exclusivo de Tabla (with Sch-M lock) durante la operación
• Timeouts o caida de rendimiento • Muchos recursos (CPU, disco, memoria) • Saturación de transasction log • Impacto en cargas de mission crítica
Beneficios de SPOIR (Singles Partition Online Index Rebuild) Granularidad
Una o varias particiones
Accesibilidad
Tabla accesible para DML y bloqueos leves (al principio y al final)
Lock Priority
Utiliza el gestor de prioridad de bloqueos
Disponibilidad
Reducción de downtime en mission crítica Mejor uso de recursos (CPU, memoria, disco y
Ahorro de Recursos log)
Prioridad en Gestión de Bloqueos
Partition SWITCH • Short Sch-M lock on source and target tables Online Index Rebuild (OIR) • Short table S and Sch-M lock
• Blocking transactions need to be completed before DDL • SWITCH/OIR will block new transactions • Workload slow down or timeouts • Impact to Tier1 mission-critical OLTP workloads
Situación Actual (antes de 2014)
51-SELECT
Grant 52-DDL
53-SELECT
Wait
54-SELECT
FIFO: Primero en entrar, primero en reservar el recurso
55-SELECT
Session
Lock queue
Mejoras en SQL Server 2014 POR FIN!
• Se mata a todos los que evitan que hagas la operación • Inmediatamente o tras el tiempo establecido • MAX_DURATION* = n minutes
• Esperar a que los bloqueadores acaben • MAX_DURATION* • Gestión de bloqueos habitual
LOW PRIORITY LOCK QUEUE *Si no hay bloqueadores, la operación sucede de forma normal
• Operación cancelada • Inmediatamente o tras el tiempo establecido • MAX_DURATION* = n minutes
DEMO Gestión de Bloqueos en “cola alternativa”
Agenda 1. Transacciones durabilidad diferida en SQL Server 2014
SQL Server 2014 Transacciones Transacciones Diferidas Durabilidad Transacciones Diferidas Ejemplos y Escenarios de Uso
2. Nuevas Operaciones ONLINE Prioridad en Bloqueos Reconstrucción online de particiones
Preguntas?
A continuación …
Funcionalidades de Nube Híbrida en SQL Server 2014 Guillermo Caicedo
Gracias por participar