Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porMaría Ángeles Martin Roldán Modificado hace 8 años
1
SQL2014 Transacciones Diferidas - el AS bajo la manga Alejandro Cordero – Database Consultant - Pythian Correo electrónico: alejandro@sqlturbo.com Twitter: @ale_corderocr LinkedIn: https://cr.linkedin.com/in/alejandrocorderocr BLOG: Sqlturbo.com MCTS, CSM
2
Patrocinadores del SQL Saturday Gold Sponsor Geek Sponsor Bronze Sponsor
3
Alejandro Cordero 3 SQLTURBO.COM DBA en Pythian Scrum Master Certified alejandro@sqlturbo.com
4
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 4
5
Durabilidad de las transacciones, completas vrs Diferidas( full vrs delayed) 5 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
6
Durabilidad de las transacciones, completas vrs Diferidas( full vrs delayed)…cont 6 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
7
Comparativa Memoria Vrs Disco Duro 7
8
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. 8
9
Riesgos en las transacciones diferidas 1 2 4 Transacción Bitacora de transacciones O transaction log Memoria Archivo de datos O Data file 3 9 IDUbicación 1San José 2Ciudad de Panama OPSIEEE! Toasty!
10
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 10
11
Como Implementarlo? Control a Nivel de Base de Datos ALTER DATABASE … SET DELAYED_DURABILITY = { DISABLED | ALLOWED | FORCED } 11 Ejemplo #1.1
12
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 12 Ejemplo #1.2
13
Como Implementarlo? Control a Nivel de COMMIT COMMIT [ { TRAN | TRANSACTION } ] [ transaction_name | @tran_name_variable ] ] [ WITH ( DELAYED_DURABILITY = { OFF | ON } ) ] 13 Ejemplo #1.3
14
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. 14
15
Ejercicio#2 ejemplo de una transacción desde una aplicación utilizando Enterprise library logging block 15
16
Ejercicio #3 el caso de la perdida de datos 16
17
Alejandro alejandro@sqlturbo.comSqlturbo.com @ale_corderocr PREGUNTAS Y RESPUESTAS
18
Evaluaciones Evaluacion del evento http://www.sqlsaturday.com/443/eventeval.aspx Evaluacion de las charlas http://www.sqlsaturday.com/443/sessions/sessionevaluation.aspx
Presentaciones similares
© 2024 SlidePlayer.es Inc.
All rights reserved.