|
Deadlock when Update/Insert with Primary and Non-clustered index
|
|||
---|---|---|---|
#18+
Коллеги, добрый день. Таблица: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
Процедура: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51.
Время от времени возникает Deadlock (приложил скрин). Как можно поправить процедуру, чтобы разрешить взаимные блокировки? Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63.
... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2022, 12:34 |
|
Deadlock when Update/Insert with Primary and Non-clustered index
|
|||
---|---|---|---|
#18+
Ну, если савсем незатейливо Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51.
... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2022, 13:03 |
|
Deadlock when Update/Insert with Primary and Non-clustered index
|
|||
---|---|---|---|
#18+
Если посимпотичнее Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24.
Ну а если совсем чтоб православно - треба разъяснение о допустимых значениях @Id INT = -2147483648 vs @XEventTypeId TINYINT @XEventId INT и приоритете оных... ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2022, 13:17 |
|
Deadlock when Update/Insert with Primary and Non-clustered index
|
|||
---|---|---|---|
#18+
notemac, Если "время от времени", то напишите обработку взаимоблокировки через try catch. Если на пальцах, то выполняйте в цикле вставку, при получении исключения цикл должен продолжиться, если вставка успешна, то цикл завершайте. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2022, 13:54 |
|
Deadlock when Update/Insert with Primary and Non-clustered index
|
|||
---|---|---|---|
#18+
notemac, Приведите скрипт ХП [dbo].[AddUpdateEvent] на размышление наводит хинт SERIALIXABLE : Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2022, 14:35 |
|
Deadlock when Update/Insert with Primary and Non-clustered index
|
|||
---|---|---|---|
#18+
COMMIT TRANSACTION в ХП [dbo].[AddUpdateEvent] не завершает клиентскую транзакцию, поэтому удерживаются блокировки на KEY. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2022, 14:54 |
|
Deadlock when Update/Insert with Primary and Non-clustered index
|
|||
---|---|---|---|
#18+
Владислав Колосов notemac, Если "время от времени", то напишите обработку взаимоблокировки через try catch. Если на пальцах, то выполняйте в цикле вставку, при получении исключения цикл должен продолжиться, если вставка успешна, то цикл завершайте. Мягко скажем: "не очень разумный совет". Ладно бы, речь шла об охеренной транзакции из 100500 строк кода и стольки же таблиц, но для вульгарного кода ТС - это слишком роскошно. Если дедлок можно ликвидировать - надо ликвидировать дедлок. Если дедлок НЕвозможно ликвидировать - надо ПОСТАРАТЬСЯ ликвидировать дедлок. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2022, 16:32 |
|
Deadlock when Update/Insert with Primary and Non-clustered index
|
|||
---|---|---|---|
#18+
Надо смотреть по ситуации, например, создавать индекс для устранения взаимоблокировки может оказаться слишком дорогим по сравнению с повторным выполнением, например 1 к 1000 случаев. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2022, 21:25 |
|
Deadlock when Update/Insert with Primary and Non-clustered index
|
|||
---|---|---|---|
#18+
Владислав Колосов Надо смотреть по ситуации, например, создавать индекс для устранения взаимоблокировки может оказаться слишком дорогим по сравнению с повторным выполнением, например 1 к 1000 случаев. Надо учиться настоящим образом. (с) В.И.Ленин Какие индексы? Критическую секцию придумали на заре программирования. А ты все еще не выучил. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.01.2022, 07:06 |
|
|
start [/forum/topic.php?fid=46&fpage=5&tid=1683916]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
61ms |
get topic data: |
14ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 176ms |
0 / 0 |