SQL Server StreamIinsight - data processing in real time
24 hop - Deadlocks
1. Professional Association for SQL Server
Взаимоблокировки, блокировки и
уровни изоляции в SQL Server
Резник Денис
Киев
The Frayman Group
MVP, MCT, MCITP, MCPD, MCTS
7. Гранулярность блокировки
• Строка (Key или RowID)
• Диапазон ключей (несколько строк)
• Страница
• Экстент
• Секция (включается дополнительной опцией)
• Таблица
• База Данных
8. READ COMMITTED
• Уровень изоляции по умолчанию
• Нет «грязных чтений»
• Блокировка на чтение снимается сразу по окончании
операции
• Возможны неповторяемые чтения
10. READ UNCOMMITTED
• Самый лѐгкий уровень изоляции
• Допускает «грязные чтения»
• Не ставится блокировка на чтение
• Блокировки на запись удерживаются до конца
транзакции
12. REPEATABLE READ
• Более жесткий чем READ COMMITTED
• Блокировка на чтение удерживается до конца
транзакции
• Повторяемые чтения
• Возможно появление фантомных записей
16. READ COMMITTED SNAPSHOT
• Оптимистичная блокировка
• При изменении данных, старая версия строки
сохраняется в хранилище версий в tempdb
• Не ставится блокировка на чтение
• Возможны неповторяемые чтения
• Возможно появление фантомных записей
18. SNAPSHOT
• Оптимистичная блокировка
• Нет грязных чтений
• Повторяемые чтения
• Нет фантомных записей
• Блокировка на чтение не ставится
• При попытке пользователя изменить запись, которая
в данный момент изменяется кем-то, генерируется
ошибка
20. Как избежать?
• Проектировать базу данных так, чтобы не было
возможности дедлока
• Выравнивать порядок использования таблиц в
транзакциях
• Добавление или удаление индексов
• Смена уровня изоляции транзакции
• Нерешаемых дедлоков нет.. Есть варианты решения,
которые не до конца устраивают
21. Ресурсы
• Locking in the Database Engine
• Analyze Deadlocks with SQL Server Profiler
• Handling Deadlocks in SQL Server
• Deadlock Trobleshot series
• Twitter to SQL
22. Professional Association for SQL Server
Взаимоблокировки, блокировки и
уровни изоляции в SQL Server
Резник Денис
Киев
@denisreznik
denisreznik@live.ru
http://reznik.uneta.com.ua