Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porManuela Mendoza Naranjo Modificado hace 8 años
1
Delayed Durability, desde la perspectiva de una Aplicación Alejandro Cordero Correo electrónico: alejandro@sqlturbo.com Twitter: https://twitter.com/ale_corderocr LinkedIn: https://cr.linkedin.com/in/alejandrocorderocr BLOG: Sqlturbo.com MCTS, CSM
2
Organiza http://tinyurl.com/ComunidadWindows
3
Patrocinadores del SQL Saturday Premier Sponsor Gold Sponsor Bronze Sponsor
4
Alejandro Cordero 4 SQLTURBO.COM DBA en Pythian Scrum Master Certified alejandro@sqlturbo.com
5
Agenda Durabilidad de las transacciones, completas vrs diferidas( full vrs delayed) Comparativa de velocidad de una memoria vrs disco duro Cuando se guarda la información en disco? Riesgos en las transacciones diferidas Posibles Casos de Uso Como Implementarlo? Control a nivel de bloque atómico vrs Control a nivel de base de datos (atomic block level control) Ejercicio#1,1.2,1.3 Implementando transacciones diferidas Que puedo esperar al implementarlo desde una aplicación? Ejercicio#2 ejemplo de una transacción desde una aplicación utilizando Enterprise library logging block Ejercicio #3 el caso de la perdida de datos 5
6
Durabilidad de las transacciones, completas vrs Diferidas( full vrs delayed) 6 1 3 LOG Data write-ahead logging (WAL) sincrónico 2 Transacción Bitacora de transacciones O transaction log Archivo de datos O Data file TRANSACCIÓN COMPLETA
7
Durabilidad de las transacciones, completas vrs Diferidas( full vrs delayed)…cont 7 1 2 4 LOG Asincrónico 5 Transacción Bitacora de transacciones O transaction log Memoria Archivo de datos O Data file 3 TRANSACCIÓN DIFERIDA sp_flush_log
8
Comparativa Memoria Vrs Disco Duro 8
9
Cuando Se guarda la información en Disco? La información guardada en el espacio de memoria de SQL Server destinado a transacciones diferidas se guarda en disco en las siguientes circunstancias: Una transacción completa en la misma base de datos realiza un cambio en la base de datos y ejecuta un commit exitosamente. El usuario ejecuta el comando sp_flush_log. El buffer de memoria destinado a transacciones diferidas se llena, generando un “flush” al disco. 9
10
Riesgos en las transacciones diferidas 1 2 4 Transacción Bitacora de transacciones O transaction log Memoria Archivo de datos O Data file 3 10 IDUbicación 1San José 2Ciudad de Panama OPSIEEE! Toasty!
11
Posibles Casos De Uso Cuando se puede tolerar perder datos Cuando se experimenta un cuello de botella en la bitacora de Transacciones (transaction logs) Cuando las transacciones tienen un nivel alto de contención 11
12
Como Implementarlo? Control a Nivel de Base de Datos ALTER DATABASE … SET DELAYED_DURABILITY = { DISABLED | ALLOWED | FORCED } 12 Ejemplo #1.1
13
Como Implementarlo? Control a Nivel atómico en bloques CREATE PROCEDURE … WITH NATIVE_COMPILATION, SCHEMABINDING, EXECUTE AS OWNER AS BEGIN ATOMIC WITH ( DELAYED_DURABILITY = ON, TRANSACTION ISOLATION LEVEL = SNAPSHOT, LANGUAGE = N'English' … ) END 13 Ejemplo #1.2
14
Como Implementarlo? Control a Nivel de COMMIT COMMIT [ { TRAN | TRANSACTION } ] [ transaction_name | @tran_name_variable ] ] [ WITH ( DELAYED_DURABILITY = { OFF | ON } ) ] 14 Ejemplo #1.3
15
Que puedo esperar al implementarlo desde una aplicación? Ejemplo ado.net Se abre la Conexión y se crea una transacción Se configura el objecto SqlCommand Se define el texto de la transacción Se ejecuta Se espera el retorno del control a la aplicación Se hace un commit/rollback, o se cierra. 15
16
Ejercicio#2 ejemplo de una transacción desde una aplicación utilizando Enterprise library logging block 16
17
Ejercicio #3 el caso de la perdida de datos 17
18
18 | Nombre expositor emailblog twitter PREGUNTAS Y RESPUESTAS
Presentaciones similares
© 2024 SlidePlayer.es Inc.
All rights reserved.