Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности

Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
27.04.2018, 11:03
|
|||
|---|---|---|---|
Может ли запрос с одним и тем же планом выполнения создавать деадлок? |
|||
|
#18+
Не секрет, что некоторые запросы могут приводить к деадлокам. У меня возник вопрос, а может ли это случиться когда план выполнения один и тот же?(надеюсь разработчики заложили одни и те же правила сортировки) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.04.2018, 11:09
|
|||
|---|---|---|---|
Может ли запрос с одним и тем же планом выполнения создавать деадлок? |
|||
|
#18+
для простоты будем считать что сложный запрос на удаление строк в таблице ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.04.2018, 11:17
|
|||
|---|---|---|---|
Может ли запрос с одним и тем же планом выполнения создавать деадлок? |
|||
|
#18+
МуМу, Нормально сформулируйте. Причем чем тут один и тот же план? Если имеется ввиду один запрос, естественно может быть дедлок. Бонально неоптимизированный update к примеру. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.04.2018, 11:20
|
|||
|---|---|---|---|
Может ли запрос с одним и тем же планом выполнения создавать деадлок? |
|||
|
#18+
aleksrov, Один и тот же запрос(запрос на запрос), с update, с одним и тем же планом. Может быть deadlock? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.04.2018, 11:22
|
|||
|---|---|---|---|
Может ли запрос с одним и тем же планом выполнения создавать деадлок? |
|||
|
#18+
МуМу, Что значит запрос на запрос? Запустите на куче Update Table set column2=Val where column1 = Val План один и тот же, отличаться будет только условие, может быть дедлок. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.04.2018, 11:22
|
|||
|---|---|---|---|
Может ли запрос с одним и тем же планом выполнения создавать деадлок? |
|||
|
#18+
aleksrovМуМу, Нормально сформулируйте. Причем чем тут один и тот же план? Если имеется ввиду один запрос, естественно может быть дедлок. Бонально неоптимизированный update к примеру. он хотел сказать, возможна ли ситуация, когда к дедлоку приводит один и тот же запрос, выполненный из разных сессий, план запросов один и тот же и "с виду" доступ к ресурсам идет в одном и том же порядке. очевидно же, что никакие "правила сортировки, заложенные разработчиками" не имеют отношения к вопросу, т.к. для дедлока сортировка вообще не нужна. нужно минимум 2 ресурса и доступ к ним в разном порядке ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.04.2018, 11:28
|
|||
|---|---|---|---|
Может ли запрос с одним и тем же планом выполнения создавать деадлок? |
|||
|
#18+
Если бы я был разработчиком, вполне мог бы создать ситуацию когда это было бы невозможно(правда издержки могли бы быть больше от подобной выгоды). Вопрос, возник при споре с коллегами. Вопрос не практический, просто любопытно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.04.2018, 11:36
|
|||
|---|---|---|---|
Может ли запрос с одним и тем же планом выполнения создавать деадлок? |
|||
|
#18+
МуМу, Каждая система уникальна, разработчики не могут предсказать как она будет использоваться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.04.2018, 11:37
|
|||
|---|---|---|---|
|
|||
Может ли запрос с одним и тем же планом выполнения создавать деадлок? |
|||
|
#18+
МуМуЕсли бы я был разработчиком, вполне мог бы создать ситуацию когда это было бы невозможно(правда издержки могли бы быть больше от подобной выгоды). Вопрос, возник при споре с коллегами. Вопрос не практический, просто любопытно. Да. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.04.2018, 11:43
|
|||
|---|---|---|---|
Может ли запрос с одним и тем же планом выполнения создавать деадлок? |
|||
|
#18+
МуМуУ меня возник вопрос, а может ли это случиться когда план выполнения один и тот же?(надеюсь разработчики заложили одни и те же правила сортировки)Может. Правила сортировки тут вообще ни при чем. А одинаковость плана не означает, что его экземпляры не могут находится на разных этапах выполнения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.04.2018, 11:49
|
|||
|---|---|---|---|
Может ли запрос с одним и тем же планом выполнения создавать деадлок? |
|||
|
#18+
invm, Можно пример? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.04.2018, 11:51
|
|||
|---|---|---|---|
Может ли запрос с одним и тем же планом выполнения создавать деадлок? |
|||
|
#18+
invm, собственно вопрос к этапам выполнения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.04.2018, 11:59
|
|||
|---|---|---|---|
Может ли запрос с одним и тем же планом выполнения создавать деадлок? |
|||
|
#18+
МуМу, Например, в плане есть Table Scan -> Sort -> ... -> Table Update. Блокировки уровня строки или таблицы. TIL RR или выше. Один экземпляр на этапе Table Scan, другой - на Table Update. Соответственно, порядок обрабатываемых строк будет разным. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.04.2018, 12:03
|
|||
|---|---|---|---|
Может ли запрос с одним и тем же планом выполнения создавать деадлок? |
|||
|
#18+
Что такое план- алгоритм более эффективно обрабатывающий данные. Есть этап предобработки статистики, своего рода компиляция. Если алгоритм просчитывает и идет по одним и тем же этапам, соблюдая сортировку и т.п., по идее деадлоков можно избежать теоретически.(для апдейта по одной таблице) Пока вопросы остаются, хотя возможно все просто. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.04.2018, 12:04
|
|||
|---|---|---|---|
Может ли запрос с одним и тем же планом выполнения создавать деадлок? |
|||
|
#18+
invm, Эскалацию предположим уберем как внезапный фактор. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.04.2018, 12:12
|
|||
|---|---|---|---|
Может ли запрос с одним и тем же планом выполнения создавать деадлок? |
|||
|
#18+
МуМу, Что вы пристали к этой сортировке. Дедлок возникает когда запрос получает доступ к ресурсам в разном порядке. К примеру вы делаете сначала update строки 1, на нее наложена X до конца транзации, другой запрос делает update строки 2, также update до конца транзации, в первой транзакции потом делается неоптимизированный select (т.е. скан) во второй также, в итоге оба запроса хотят наложить S и ждут пока снимется X, ура дедлок! Причем тут сортировка? Причем тут план запроса? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.04.2018, 12:18
|
|||
|---|---|---|---|
Может ли запрос с одним и тем же планом выполнения создавать деадлок? |
|||
|
#18+
aleksrov, spid 70 update A spid 80 update B spid 70 update B spid 80 update A вы об этом?;) Один и тот же запрос на апдейт выполненный из разных сессий, приводящий к деадлоку, покажите мне пример. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.04.2018, 12:20
|
|||
|---|---|---|---|
Может ли запрос с одним и тем же планом выполнения создавать деадлок? |
|||
|
#18+
МуМу, Вам же уже 100 раз сказали: "Да, может" Вот простой пример Код: 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.04.2018, 12:26
|
|||
|---|---|---|---|
Может ли запрос с одним и тем же планом выполнения создавать деадлок? |
|||
|
#18+
msLex, Сортировки нет, а если с ней?(не могу проверить) Согласен, в моем случае были индексы уникальные(не сказал). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.04.2018, 12:29
|
|||
|---|---|---|---|
Может ли запрос с одним и тем же планом выполнения создавать деадлок? |
|||
|
#18+
МуМуmsLex, Сортировки нет, а если с ней?(не могу проверить) Согласен, в моем случае были индексы уникальные(не сказал). Я не знаю что у вас там за "запрос" и что за уникальные индексы, но с каждым последующим вашим постом ваш изначальный вопрос "Может ли запрос с одним и тем же планом выполнения создавать деадлок?" превращается в "Может ли запрос с одним и тем же планом выполнения не создавать деадлок?" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.04.2018, 12:31
|
|||
|---|---|---|---|
Может ли запрос с одним и тем же планом выполнения создавать деадлок? |
|||
|
#18+
Вопрос был не правильно сформулирован. Тема закрыта;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.04.2018, 13:01
|
|||
|---|---|---|---|
|
|||
Может ли запрос с одним и тем же планом выполнения создавать деадлок? |
|||
|
#18+
МуМу, любая параллельная обработка имеет право на дедлок. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.04.2018, 14:10
|
|||
|---|---|---|---|
Может ли запрос с одним и тем же планом выполнения создавать деадлок? |
|||
|
#18+
Итог(кто понял). Любые случайные события провоцируют деадлок. Например неупорядоченная куча(отсутствие индексов) , случайно включенная эскалация, параллелизм который вряд ли работает в одном порядке распределения. Может еще что то? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.04.2018, 14:28
|
|||
|---|---|---|---|
Может ли запрос с одним и тем же планом выполнения создавать деадлок? |
|||
|
#18+
МуМуЛюбые случайные события провоцируют деадлок.Дедлоки провоцируются несовместимым доступом к ресурсам в разном порядке. И ничем более. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.04.2018, 14:31
|
|||
|---|---|---|---|
Может ли запрос с одним и тем же планом выполнения создавать деадлок? |
|||
|
#18+
МуМуИтог(кто понял). Любые случайные события провоцируют деадлок. Например неупорядоченная куча(отсутствие индексов) , случайно включенная эскалация, параллелизм который вряд ли работает в одном порядке распределения. Может еще что то? Да. Курсор, а внутри update. А до него (апдейта одной строки) внутри цикла вычитка на клиента некоторых других строк select-ом, которая зависит от самочувствия клиента и скорости сети. Вы запустите миллион раз этот код, он сделает update для миллиона строк без дедлока. А на 1000001 раз очередной селект затормозит и внезапно Вы получите при попытке очередного апдейта дедлок. Из другой сессии, которая никогда раньше не мешала. Более того, Вы еще миллион раз прогоните тот же код в попытке разобраться - и не поймаете ни одного дедлока. План - ничто (его сервер каждый раз для себя "рисует" на лету с целью оптимизации ресурсов прямо здесь и прямо сейчас, условия при этом всегда могут быть разные). Порядок выполнения паралелльных инструкций из разных сессий - всё. Вы - не единственный клиент реляционной БД и не работаете при этом с ней в одну сессию. А раз так - дедлоки неизбежны и необходимы. Чтобы оттестировать исключения на клиенте и логику повторной обработки и записи ошибок в отдельные таблицы для дальнейшего разбора полетов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=46&mobile=1&tid=1689783]: |
0ms |
get settings: |
7ms |
get forum list: |
19ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
50ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
80ms |
get tp. blocked users: |
2ms |
| others: | 223ms |
| total: | 404ms |

| 0 / 0 |
