24 hop - Deadlocks

1,085 views

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,085
On SlideShare
0
From Embeds
0
Number of Embeds
282
Actions
Shares
0
Downloads
8
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

24 hop - Deadlocks

  1. 1. Professional Association for SQL ServerВзаимоблокировки, блокировки иуровни изоляции в SQL ServerРезник ДенисКиевThe Frayman GroupMVP, MCT, MCITP, MCPD, MCTS
  2. 2. Содержание• Блокировки – Виды блокировок – Гранулярность блокировок – Уровни изоляции• Взаимоблокировки – Классические взаимоблокировки – Неочевидные взаимоблокировки – Обработка взаимоблокировок
  3. 3. Виды блокировок - Shared X S S
  4. 4. Виды блокировок - Exclusive S X X
  5. 5. Виды блокировок - Update S U X U S
  6. 6. Виды блокировок – Intent блокировки IS IS S
  7. 7. Гранулярность блокировки• Строка (Key или RowID)• Диапазон ключей (несколько строк)• Страница• Экстент• Секция (включается дополнительной опцией)• Таблица• База Данных
  8. 8. READ COMMITTED• Уровень изоляции по умолчанию• Нет «грязных чтений»• Блокировка на чтение снимается сразу по окончании операции• Возможны неповторяемые чтения
  9. 9. Professional Association for SQL ServerДемонстрацияДедлоки при уровне изоляции READ COMMITTED
  10. 10. READ UNCOMMITTED• Самый лѐгкий уровень изоляции• Допускает «грязные чтения»• Не ставится блокировка на чтение• Блокировки на запись удерживаются до конца транзакции
  11. 11. Professional Association for SQL ServerДемонстрацияДедлоки при уровне изоляции READ UNCOMMITTED
  12. 12. REPEATABLE READ• Более жесткий чем READ COMMITTED• Блокировка на чтение удерживается до конца транзакции• Повторяемые чтения• Возможно появление фантомных записей
  13. 13. Professional Association for SQL ServerДемонстрацияДедлоки при уровне изоляции REPEATABLE READ
  14. 14. SERIALIZABLE• Самый жесткий уровень изоляции• Нет фантомных записей• Все блокировки удерживаются до конца транзакции
  15. 15. Professional Association for SQL ServerДемонстрацияДедлоки при уровне изоляции SERIALIZABLE
  16. 16. READ COMMITTED SNAPSHOT• Оптимистичная блокировка• При изменении данных, старая версия строки сохраняется в хранилище версий в tempdb• Не ставится блокировка на чтение• Возможны неповторяемые чтения• Возможно появление фантомных записей
  17. 17. Professional Association for SQL ServerДемонстрацияДедлоки при уровне изоляции SNAPSHOT READ COMMITTED
  18. 18. SNAPSHOT• Оптимистичная блокировка• Нет грязных чтений• Повторяемые чтения• Нет фантомных записей• Блокировка на чтение не ставится• При попытке пользователя изменить запись, которая в данный момент изменяется кем-то, генерируется ошибка
  19. 19. Professional Association for SQL ServerДемонстрацияДедлоки при уровне изоляции SNAPSHOT
  20. 20. Как избежать?• Проектировать базу данных так, чтобы не было возможности дедлока • Выравнивать порядок использования таблиц в транзакциях• Добавление или удаление индексов• Смена уровня изоляции транзакции• Нерешаемых дедлоков нет.. Есть варианты решения, которые не до конца устраивают
  21. 21. Ресурсы• Locking in the Database Engine• Analyze Deadlocks with SQL Server Profiler• Handling Deadlocks in SQL Server• Deadlock Trobleshot series• Twitter to SQL
  22. 22. Professional Association for SQL ServerВзаимоблокировки, блокировки иуровни изоляции в SQL ServerРезник ДенисКиев@denisreznikdenisreznik@live.ruhttp://reznik.uneta.com.ua

×