24 hop edición español - fundamentos de los bloqueos en sql server enrique puig
TRANSCRIPT
![Page 1: 24 HOP edición Español - Fundamentos de los bloqueos en sql server enrique puig](https://reader030.vdocument.in/reader030/viewer/2022020110/5599a1a81a28abe5758b487f/html5/thumbnails/1.jpg)
Fundamentos de los Bloqueos
en SQL Server
Enrique Puig | MAP | MCITP
@epuignouselles
Moderador: Freddy Angarita
![Page 2: 24 HOP edición Español - Fundamentos de los bloqueos en sql server enrique puig](https://reader030.vdocument.in/reader030/viewer/2022020110/5599a1a81a28abe5758b487f/html5/thumbnails/2.jpg)
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 PerformanceTry PlanExplorer today!
http://www.sqlsentry.com
![Page 3: 24 HOP edición Español - Fundamentos de los bloqueos en sql server enrique puig](https://reader030.vdocument.in/reader030/viewer/2022020110/5599a1a81a28abe5758b487f/html5/thumbnails/3.jpg)
Próximos SQL Saturday
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
6 de Diciembre de 2014 https://www.sqlsaturday.com/351/register.aspx
![Page 4: 24 HOP edición Español - Fundamentos de los bloqueos en sql server enrique puig](https://reader030.vdocument.in/reader030/viewer/2022020110/5599a1a81a28abe5758b487f/html5/thumbnails/4.jpg)
4
Capítulo Global PASS en Español
4
Reuniones semanales todos los miércoles a
las 12PM UTC-5 (Hora de Colombia)
https://www.facebook.com/SpanishPASSVC
![Page 5: 24 HOP edición Español - Fundamentos de los bloqueos en sql server enrique puig](https://reader030.vdocument.in/reader030/viewer/2022020110/5599a1a81a28abe5758b487f/html5/thumbnails/5.jpg)
5
Asistencia Técnica
Si requiere asistenciadurante 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
![Page 6: 24 HOP edición Español - Fundamentos de los bloqueos en sql server enrique puig](https://reader030.vdocument.in/reader030/viewer/2022020110/5599a1a81a28abe5758b487f/html5/thumbnails/6.jpg)
6
Enrique Puig
Enrique Puig es ingeniero informático especializado en SQL Server. Ponente
habitual de eventos como Pass 24 horas, Virtual Spanish Chapters, Webcasts
de Microsoft y Eventos de Lanzamiento. Adicionalmente mantiene su blg
personal (www.sqlserverpasion.com). Actualmente es el DBA de producción en
RipLife Gaming and Technologies.
6
![Page 7: 24 HOP edición Español - Fundamentos de los bloqueos en sql server enrique puig](https://reader030.vdocument.in/reader030/viewer/2022020110/5599a1a81a28abe5758b487f/html5/thumbnails/7.jpg)
7
Objetivos
Comprender que son los bloqueos y para que sirven
Introducir mecanismos de monitorización de bloqueos
Introducir técnicas para combatir a los bloqueos
![Page 8: 24 HOP edición Español - Fundamentos de los bloqueos en sql server enrique puig](https://reader030.vdocument.in/reader030/viewer/2022020110/5599a1a81a28abe5758b487f/html5/thumbnails/8.jpg)
8
Agenda
• ¿Qué son los bloqueos?
• Niveles de aislamiento
• Tipos de bloqueos
• Combatiendo los bloqueos
• Conclusiones
• Preguntas
8
![Page 9: 24 HOP edición Español - Fundamentos de los bloqueos en sql server enrique puig](https://reader030.vdocument.in/reader030/viewer/2022020110/5599a1a81a28abe5758b487f/html5/thumbnails/9.jpg)
9
¿Qué son los Bloqueos?
•AtomicidadA
•ConsistenciaC
•AislamientoI
•DurabilidadD
9
• Modelos de Aislamiento
• Bloqueos (pesimista)
• Versionado de filas (optimista)
• Aseguran el Aislamiento
• Leyendo datos consistentes
• Si no son consistentes esperas
![Page 10: 24 HOP edición Español - Fundamentos de los bloqueos en sql server enrique puig](https://reader030.vdocument.in/reader030/viewer/2022020110/5599a1a81a28abe5758b487f/html5/thumbnails/10.jpg)
10
Niveles de Aislamiento – Bloqueos
10
READ UNCOMMITED
READ COMMITED
REPEATABLE READ
SERIALIZABLECO
NC
UR
REN
CIA
CO
NSISTEN
CIA
ALTA BAJA
BAJA ALTA
![Page 11: 24 HOP edición Español - Fundamentos de los bloqueos en sql server enrique puig](https://reader030.vdocument.in/reader030/viewer/2022020110/5599a1a81a28abe5758b487f/html5/thumbnails/11.jpg)
11
Tipos de Bloqueos básicos y compatibilidades
Shared Lock (S)
• Lecturas de datos
Exclusive Lock (X)
• Modificaciones de datos
• INSERT / DELETE / UPDATE
Compatibilidades:
11
Shared (S) Exclusive (X)
Shared (S) N C
Exclusive (X) C C
C: CONFLICTN: NO CONFLICT
![Page 12: 24 HOP edición Español - Fundamentos de los bloqueos en sql server enrique puig](https://reader030.vdocument.in/reader030/viewer/2022020110/5599a1a81a28abe5758b487f/html5/thumbnails/12.jpg)
12
¿Qué es lo que se bloquea?
Se bloquean recursos:
• KEY / RID
• PAGE
• FILE
• OBJECT
• …
Escalado de bloqueos
• Mecanismo de conversión
• Muchos bloqueos de bajo nivel a pocos bloqueos de alto nivel
• Numero de bloqueos >5000
• Disminuyen los recursos para gestionar bloqueos
• Aumentan los conflictos por concurrencia
12
Row
Page
ObjectFile
Table
![Page 13: 24 HOP edición Español - Fundamentos de los bloqueos en sql server enrique puig](https://reader030.vdocument.in/reader030/viewer/2022020110/5599a1a81a28abe5758b487f/html5/thumbnails/13.jpg)
13
Hints para control de granularidad
Hint Descripción
ROWLOCK Solicita bloqueo a nivel de fila (KEY/RID)
TABLOCK Solicita bloqueo a nivel de tabla
PAGLOCK Solicita bloqueo a nivel de página de datos
TABLOCKX Solicita bloqueo exclusivo a nivel de Tabla
NOLOCK Desestima bloqueos adquiridos y produce lecturas sucias “Dirty reads”
13
![Page 14: 24 HOP edición Español - Fundamentos de los bloqueos en sql server enrique puig](https://reader030.vdocument.in/reader030/viewer/2022020110/5599a1a81a28abe5758b487f/html5/thumbnails/14.jpg)
DEMO
14
![Page 15: 24 HOP edición Español - Fundamentos de los bloqueos en sql server enrique puig](https://reader030.vdocument.in/reader030/viewer/2022020110/5599a1a81a28abe5758b487f/html5/thumbnails/15.jpg)
15
Combatiendo los bloqueos
15
• SCAN vs. SEEK
• Lock Scalation cofigIndexación
• SNAPSHOT
• READ COMMITED SNAPSHOT
• Impacto en TempDB
RowVersioning
• READ UNCOMMITED
• NOLOCK
• Vista inconsistente de datosDirty Reads
![Page 16: 24 HOP edición Español - Fundamentos de los bloqueos en sql server enrique puig](https://reader030.vdocument.in/reader030/viewer/2022020110/5599a1a81a28abe5758b487f/html5/thumbnails/16.jpg)
16
Combatiendo los bloqueos - Indexación
Lo mas común: Key/RID Locks
Tipo Tabla:HEAP
16
Id:10Val:21
Id:22Val:99
Id:19Val:22
Id:89Val:62
Id:4Val:10
Id:1Val:12
Id:18Val:14
Id:40Val:99
Id:3Val:34
Id:33Val:8
TRN1: TABLE SCAN
TRN2: TABLE SCAN
RID LockBlocked by TRN1
TRN 1:update dbo.tabset val=99where id=22;
TRN 2:update dbo.tabset val=99where id=40;
![Page 17: 24 HOP edición Español - Fundamentos de los bloqueos en sql server enrique puig](https://reader030.vdocument.in/reader030/viewer/2022020110/5599a1a81a28abe5758b487f/html5/thumbnails/17.jpg)
17
Combatiendo los bloqueos - IndexaciónLo mas común: Key/RID Locks
Tipo Tabla: CLUSTERED INDEX
17
Root
Int. Int
Id:10Val:21
Id:22Val:99
Id:19Val:22
Id:89Val:62
Id:4Val:10
Id:1Val:12
Id:18Val:32
Id:40Val:99
Id:3Val:26
Id:33Val:8
TRN 1:update dbo.tabset val=99where id=22;
TRN 2:update dbo.tabset val=99where id=40;
TRN 1Index Seek
TRN 2Index Seek
Sin Transacciones bloqueadas!
![Page 18: 24 HOP edición Español - Fundamentos de los bloqueos en sql server enrique puig](https://reader030.vdocument.in/reader030/viewer/2022020110/5599a1a81a28abe5758b487f/html5/thumbnails/18.jpg)
DEMO
18
![Page 19: 24 HOP edición Español - Fundamentos de los bloqueos en sql server enrique puig](https://reader030.vdocument.in/reader030/viewer/2022020110/5599a1a81a28abe5758b487f/html5/thumbnails/19.jpg)
19
Combatiendo los bloqueos – Versionado de filas
SNAPSHOT / READ COMMITED NAPSHOT
IMPLICACIONES
• Impacto en TempDB (row versions)
• Configuraciones adicionales sobre las BBDDs
• Cambio estructura de las páginas
19
![Page 20: 24 HOP edición Español - Fundamentos de los bloqueos en sql server enrique puig](https://reader030.vdocument.in/reader030/viewer/2022020110/5599a1a81a28abe5758b487f/html5/thumbnails/20.jpg)
DEMO
20
![Page 21: 24 HOP edición Español - Fundamentos de los bloqueos en sql server enrique puig](https://reader030.vdocument.in/reader030/viewer/2022020110/5599a1a81a28abe5758b487f/html5/thumbnails/21.jpg)
21
Conclusiones
• Bloqueos pueden causar deterioro en el rendimiento de nuestras Apps
• Necesarios para mantener la coherencia de los datos (modelo pesimista)
• No son problemas físicos, más bien lógicos
• Más hardware no lo solucionará
• Para solucionarlo:
• Revisa estrategias de indexación
• Considera utilizar SNAPSHOT | READ COMMITED SNAPSHOT
• Dimensiona acorde (TempDB)
• Evita realizar lecturas sucias (Dirty Reads)
• NOLOCK | READ UNCOMMITED
• Pueden causar problemas y mostrar datos erróneos
21
![Page 22: 24 HOP edición Español - Fundamentos de los bloqueos en sql server enrique puig](https://reader030.vdocument.in/reader030/viewer/2022020110/5599a1a81a28abe5758b487f/html5/thumbnails/22.jpg)
Preguntas?
![Page 23: 24 HOP edición Español - Fundamentos de los bloqueos en sql server enrique puig](https://reader030.vdocument.in/reader030/viewer/2022020110/5599a1a81a28abe5758b487f/html5/thumbnails/23.jpg)
Optimización de motores SQL Server desde el código hasta la administración
Julián Castiblanco
A continuación …
![Page 24: 24 HOP edición Español - Fundamentos de los bloqueos en sql server enrique puig](https://reader030.vdocument.in/reader030/viewer/2022020110/5599a1a81a28abe5758b487f/html5/thumbnails/24.jpg)
Gracias por participar