troubleshooting de bloqueos 2016

26
#SQSummit Troubleshooting de Bloqueos Eladio Rincón [email protected] Conceptos, herramientas y resolución de problemas

Upload: solidq

Post on 24-Jan-2017

228 views

Category:

Technology


4 download

TRANSCRIPT

Page 1: Troubleshooting de bloqueos 2016

#SQSummit

Troubleshooting de Bloqueos

Eladio Rincón

[email protected]

Conceptos, herramientas y resolución de problemas

Page 2: Troubleshooting de bloqueos 2016

Sponsors del SolidQ Summit Panamá

Page 3: Troubleshooting de bloqueos 2016

#SQSummit

Troubleshooting de Bloqueos

Eladio Rincón

[email protected]

Conceptos, herramientas y resolución de problemas

Page 4: Troubleshooting de bloqueos 2016

Troubleshooting de Bloqueos

• Conceptos

• Síntomas y Herramientas

• Diagnóstico y Resolución

• Recursos

Agenda

Page 5: Troubleshooting de bloqueos 2016

Conceptos de Bloqueos

• Tipos de bloqueos

• Compatibilidad entre bloqueos

• Qué recursos se bloquean

• Niveles de aislamiento

Page 6: Troubleshooting de bloqueos 2016

Tipos de Bloqueos

6

Page 7: Troubleshooting de bloqueos 2016

Compatibilidad entre Bloqueos

7

Page 8: Troubleshooting de bloqueos 2016

Compatibilidad entre Bloqueos

8

N: no hay conflicto

C: conflicto

I: Ilegal

Page 9: Troubleshooting de bloqueos 2016

Qué Recursos se Bloquean

9

Page 10: Troubleshooting de bloqueos 2016

Niveles de Aislamiento

• Tipos ANSI• READ UNCOMMITTED

• READ COMMITTED

• REPEATABLE READ

• SERIALIZABLE

• Desde SQL Server 2005• SNAPSHOT

• Para soportar bloqueos optimistas:• Lectores no bloquean a escritores y viceversa

Page 11: Troubleshooting de bloqueos 2016

Isolation Levels

Dirty Read

Non-Repeatable

Read PhantomsUpdate Conflict

Concurrency Model

READ UNCOMMITTED

Yes Yes Yes No

READ COMMITTED

1 Locking2 Snapshot

NoNo

YesYes

YesYes

NoNo

PessimisticOptimistic

REPEATABLE READ

No No Yes No Pessimistic

SNAPSHOT No No No Yes Optimistic

SERIALIZABLE No No No No Pessimistic

Phenomena Allowed

Problemas de Concurrencia

Page 12: Troubleshooting de bloqueos 2016

Resumen

Cómo: Tipos de Bloqueos

• SharedUpdateExclusiveIntent --

Qué Recursos

• RIDKeyPageTable, …

Quién

• Usuarios

• Aplicaciones

Page 13: Troubleshooting de bloqueos 2016

Síntomas y Herramientas

• Duración de operaciones difícil de predecir

• Mensajes de error• Lock timeout

• Víctimas de abrazos mortales

• Informes de errores (blocked process report)

• Eventos extendidos (system health)

• En muchas ocasiones, los síntomas confunden• Planes subóptimos

• Mal código, mal mantenimiento, mal diseño, …

Page 14: Troubleshooting de bloqueos 2016

Síntomas y Herramientas

• Herramientas• Informes de SSMS

• sp_who2

• master..sysprocesses• sp_whoisactive (Adam Machanic)

• Sp_ask_Brent; (Brent Ozar)

• Cazabloqueadores (Miguel Egea) http://portalsql.com/index.php/2010/01/descubrir-bloqueos-en-sql-server

• Sp_blocker

Page 15: Troubleshooting de bloqueos 2016

Síntomas y Herramientas

• Herramientas• Eventos Extendidos (empezar con SSMS)

• Blocked process Report (sp_configure)

• DMVs

Page 16: Troubleshooting de bloqueos 2016

DEMO

16

Herramientas

Page 17: Troubleshooting de bloqueos 2016

Resolución

• Mejorar Consultas

• Si las consultas duran menos, menos colisión

• Si utilizas mejores índices, quizás evites colisiones• Índices clustered bloqueados en INSERT, UPDATE Y

DELELE

• Índices non-clustered bloqueados en UPDATE

• Crea índices de cobertura

Page 18: Troubleshooting de bloqueos 2016

DEMO

18

Mejorar con índices

Page 19: Troubleshooting de bloqueos 2016

Resolución

• Aligerar niveles de aislamiento

• Bajar por orden (si es aceptable)• SERIALIZABLE

• REPETEABLE

• READ-COMMITTED

• READ-UNCOMMITED

Page 20: Troubleshooting de bloqueos 2016

Resolución

• Escalado de bloqueo

• Al adquirir n bloqueos (+- 5000) SQL Server intenta aligerar presión en memoria para bloqueos

• Decide ESCALAR el bloqueo “hacia arriba”• PARTICIÓN, o TABLA

• Opciones de configuración• TABLE

• DISABLE

• AUTO (PARTICIÓN)

Page 21: Troubleshooting de bloqueos 2016

DEMO

21

Escalado de bloqueo

Page 22: Troubleshooting de bloqueos 2016

Troubleshooting de Bloqueos

• Aclara los Conceptos

• Coge soltura con las Herramientas (ver recursos)• La mayoría gratuitas

• Create tu procedimientos

• Create tus trabajos

• Diagnostica y resuelve

Resumen

Page 23: Troubleshooting de bloqueos 2016

También puedes preguntar tus

dudas con el hashtag

#SQSummit en Twitter

ADAPTIVE BI FRAMEWORK

Te ayudaremos a mejorar la velocidad de desarrollo de tu plataforma de analítica de negocio basada en nuestra experiencia:

•Diseña antes de construir

•Automatización de procesos por ETL

•Servicios de mentoring para ayudarte a conseguir mejores prácticas para la construcción de procesos específicos y plataformas de analítica de negocio

•Muy fácil de mantener

SOLIDQ FLEX SERVICES

Con SolidQ Flex Services evitarás sustos, consiguiendo que tus sistemas sean estables. Desde una solución sencilla de monitorización, hasta un servicio de atención de incidencias 24/7, mantenimiento proactivo, resolución de problemas y línea de soporte.

Todo con un coste fijo mensual… y tú dedica el tiempo a las cosas importantes.

¡Gracias!

Page 24: Troubleshooting de bloqueos 2016

Recursos (Documentación)

• https://technet.microsoft.com/en-us/library/jj856598(v=sql.110).aspx

• Lock Modes• https://technet.microsoft.com/en-

us/library/ms175519(v=sql.105).aspx

• Lock Granularity and Hiearchies• https://technet.microsoft.com/en-

us/library/ms189849(v=sql.105).aspx

• Locking Hints• https://technet.microsoft.com/en-

us/library/ms189857(v=sql.105).aspx

• Lock Compatibility• https://technet.microsoft.com/en-

us/library/ms186396(v=sql.105).aspx

Page 25: Troubleshooting de bloqueos 2016

Recursos Documentación

• Lock Escalation (blogs MSDN)• http://blogs.msdn.com/b/sqlserverstorageengine/

archive/2006/05/17/lock-escalation.aspx

• Niveles de Aislamiento• https://msdn.microsoft.com/en-

us/library/cc546518.aspx

Page 26: Troubleshooting de bloqueos 2016

Recursos

• Cazabloqueos (Miguel Egea)• http://portalsql.com/index.php/2010/01/descubr

ir-bloqueos-en-sql-server/

• Adam Machanic• http://sqlblog.com/blogs/adam_machanic/archiv

e/2012/03/22/released-who-is-active-v11-11.aspx

• Brent Ozar• http://www.brentozar.com/blitz/

• PSS