En esta sesión veremos dos novedades que ofrece SQL Server 2014 para gestionar la concurrencia de las cargas transaccionales de los sistemas OLTP de forma muy transparente. La durabilidad diferida de transacciones permite "aligerar" el acceso al archivo de transacciones penalizando ligeramente la "transaccionalidad completa" de la operacion: Veremos pros y contras de esta operación. Las mejoras en gestión de bloqueos permitirán que operaciones de mantenimiento no se vean bloqueadas (o bloqueen) las operaciones del día a día del sistema transaccional.
24 HOP edición Español - Durabilidad diferida de transacciones y mejoras en gestión de bloqueos eladio rincon
1. Durabilidad diferida de transacciones y mejoras en
gestión de bloqueos para tareas administrativas en
SQL Server 2014
Expositor: Eladio Rincón (erincon@solidq.com)
Director y Mentor SolidQ | MVP SQL Server | MCT
Moderador: Freddy Angarita
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
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
4. Capítulo Global PASS en Español
4
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. 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
7. 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
9. Transacciones en SQL Server 2014
Pros / Contras
Tradicionales
Sin perdida datos
Cuello de botella en Log
Diferidas
Perdida datos posible
Reducción esperas
Escribimos en lotes
Menos operaciones E/S disco
10. 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
11. 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.
12. Modos Configuración BBDD
ALTER DATABASE <BBDD> SET DELAYED DURABILITY =
Disabled Allowed Forced
COMMIT
[ { TRAN | TRANSACTION } ]
[ transaction_name | @tran_name_variable ]
[ WITH ( DELAYED_DURABILITY = { OFF | ON } ) ]
13. Resumen Opciones
Combinaciones
DELAYED DURABILITY EN BASE DE DATOS
COMMIT TRANSACCION DISABLED ALLOWED FORCED
DELAYED_DURABILITY = OFF
Totalmente
durable
(Tradicional)
Totalmente
durable
(Tradicional)
Durabilidad
diferida
DELAYED_DURABILITY = ON
Totalmente
durable
(Tradicional)
Durabilidad
diferida
Durabilidad
diferida
15. 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
16. 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
17. • Timeouts o caida de rendimiento
• Muchos recursos (CPU, disco,
memoria)
• Saturación de transasction log
• Impacto en cargas de mission
crítica
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
18. Beneficios de SPOIR (Singles Partition Online Index
Rebuild)
Granularidad
Accesibilidad
Lock Priority
Una o varias particiones
Tabla accesible para DML y bloqueos leves (al
principio y al final)
Utiliza el gestor de prioridad de bloqueos
Disponibilidad Reducción de downtime en mission crítica
Ahorro de Recursos Mejor uso de recursos (CPU, memoria, disco y
log)
19. • 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
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
20. Situación Actual (antes de 2014)
Session Lock queue
Grant
Wait
51-SELECT
52-DDL
53-SELECT
54-SELECT
55-SELECT
FIFO: Primero en entrar,
primero en reservar el
recurso
21. 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
• Operación cancelada
• Inmediatamente o tras
el tiempo establecido
• MAX_DURATION* = n
minutes
LOW PRIORITY LOCK QUEUE
*Si no hay bloqueadores, la operación sucede
de forma normal
Transacciones de durabilidad diferida no se debe confundir con transacciones diferidas (por error de I/O)
Las transacciones distribuidas siempre son totalmente durables!!
Ya no hay que temer particionado
Describe
Memory allocated to the rows can’t be released. The memory is released when the row is stale (i.e. update or deleted)
Memory allocation is done in chunks of 64K (confirm with the team)
Describe
Memory allocated to the rows can’t be released. The memory is released when the row is stale (i.e. update or deleted)
Memory allocation is done in chunks of 64K (confirm with the team)