72 похожих чатов

Друзья, поясните, что тут происходит! Дидлок в таблице, один процесс делает

SELECT, второй DELETE. Но почему?

31 ответов

22 просмотра

Можно запросы?

pechezerov- Автор вопроса
Yevhen Nedaskivskyi
Можно запросы?

точные запросы не знаю как откопать, длина в логе ограничена и целиком они там не видны. К тому же они формируются ORM. Но предполагаю что первый должен быть вида SELECT * FROM Events WHERE (StartTime >= A OR EndTime <= B) AND EventType = C , а второй просто DELETE FROM Events WHERE Id = X

pechezerov- Автор вопроса
pechezerov
SQL Server,READ COMMITTED

А какая версия MS SQL Server?

Yevhen Nedaskivskyi
СУБД и тип изоляции?

Хм. Похожэ, ещё одной гадости про MSSQL я не знал. Так и не избавились от наследия блокировочника Sybase? Или там всё-таки, видимо, что-то спецыфичное было в этом SELECT -- ну там, триггер какой неявный?

pechezerov- Автор вопроса
Ilya Anfimov
Хм. Похожэ, ещё одной гадости про MSSQL я не знал....

дидлоки, в которые вовлечён триггер, я вчера тоже разбирал, и вроде бы в таких случаях его видно. А что значит "неявный" ?

pechezerov
дидлоки, в которые вовлечён триггер, я вчера тоже ...

Ну, вообще-то вроде на SELECT триггер просто так не повесишь. Но через всякие view и stored procedure можно добиться.

pechezerov- Автор вопроса

А чего странного то в этом дедлоке ? С одной стороны s блокировка с другой x , они не совместимы. Режим изоляции как я понял дефолтный, например можно включить rcsi на базе чтоб читатели не мешали остальным.

Ilushka
А чего странного то в этом дедлоке ? С одной сторо...

Вообще не знал вот про эту вещь, спасибо!

Ilushka
А чего странного то в этом дедлоке ? С одной сторо...

И это очередная причина, почему СУБД должны в первую очередь выбирать программисты... Какая боль выяснять такие вещи в середине проекта!

pechezerov- Автор вопроса
Ilushka
А чего странного то в этом дедлоке ? С одной сторо...

Я вот тоже не знаю что такое RCSI, это какая-то опция которую принято на хайлоаде включать?

pechezerov
Я вот тоже не знаю что такое RCSI, это какая-то оп...

Read committed snapshot isolation , все чтение будет из version store , которое находится в tempdb базе. Минусы если есть долгие транзакции оно может сильно распухать

Как бы select это shared lock, delete - это update lock, они несовместимы, причем, shared может блокировать того, кто хочет получить update, то есть, select может блокировать delete

Yevhen Nedaskivskyi
Согласен. Но почему deadlock?

Скорее всего там hold lock хинт используется в select

pechezerov
точные запросы не знаю как откопать, длина в логе ...

Есть там в SELECT хинт HOLDLOCK ? Хотя даже если и нет, ничего страшного-то нет. Расскажи, в чём твоя ПРОБЛЕМА заключается, и чего ты хочешь добиться?

Yevhen Nedaskivskyi
СУБД и тип изоляции?

Очевидно, что изоляция стандартная, не MVCC

pechezerov- Автор вопроса
Ilya Zviagin
Есть там в SELECT хинт HOLDLOCK ? Хотя даже если ...

Проблема в том, что я не понимаю, почему единственный DELETE, который представлен на графе, связан с блокировкой сразу нескольких страниц

pechezerov
Проблема в том, что я не понимаю, почему единствен...

Не факт, что ваша строчка на одной странице

pechezerov- Автор вопроса
Yevhen Nedaskivskyi
Не факт, что ваша строчка на одной странице

А, вот эта мысль мне в голову не приходила

pechezerov
Проблема в том, что я не понимаю, почему единствен...

Он ищет записи для того чтобы их удалить на многих страницах

pechezerov
Проблема в том, что я не понимаю, почему единствен...

Так несколько индэксов если -- то ничего удивительного.

pechezerov- Автор вопроса
Ilya Anfimov
Так несколько индэксов если -- то ничего удивитель...

А можно поподробнее? Ссылки на матчасть тоже принимаются.

pechezerov
А можно поподробнее? Ссылки на матчасть тоже прини...

В смысле -- если несколько индэксов -- то разумеется INSERT/UPDATE будет несколько страниц менять. И ничего удивительного, в принцыпе, что SELECT тогда шёл другим путём и ужэ заблокировал страницы в другом порядке.

Ilya Anfimov
В смысле -- если несколько индэксов -- то разумеет...

А вторая страница это как раз страница кластерного индекса... Вполне может быть, кстати

Похожие вопросы

Обсуждают сегодня

Подскажите, а есть vault lite или ченить такое?) А то нужен вольт для похода в вольт, но весит он ~500 мб) как-то многовато для парочки запросов ))
Alexandr Orloff
17
Всем привет, есть небольшая проблема Есть такой скрипт document.addEventListener('DOMContentLoaded', function () { const sliderTabs = document.querySelectorAll('.s...
A da
8
@go1337 @dblackCat Привет. Все ещё дрочусь с fastpanel. Добавил второй домен который должен смотреть в рут того же сайта, но так как это просто домен, а не сайт, я не могу ему...
Ross 🦴
9
До речі, в ево нема можливості чи якого розширення щоб з адмінки з телефона зайти і терміново щось в верстці поправити?
Женя
7
Ну, так - шо, грамодяне-эрленгяне? Все - готовы подписаться под словами "гуру" на счёт трудности применения POSIX threads и про, конкретно, мьютексы, что "... недопоставишь м...
Wlad
21
кто-нибудь пользуется тайм-трекерами во время работы? так много разных нагуглил, может есть что-то популярное
Lencore
8
Пацаны. Я разрабатываю софт для инвайтинга на телетон, и столкнулся с такой проблемой, в один из чатов не могу приглашать никого, не дает добавлять, в то же время через официа...
Kernel Panic
11
Скажите, а кому нужен Currency как отдельный плагин вместо полноценного ecommerce в OctoberCMS? Кто-то использует его уже или планирует в будущем? Может я что-то не понимаю?
Igor
13
Розмовами про Рево мені нагадали часи, коли шаблони правилися прямо в адмінці. Хто в курсі, чому відійшли від цієї практики, так блейд не працює? Доволі зручно ж було (інколи)
Женя
3
привет, как сбилдить свифт прогу статически? делаю -Xswiftc -static-executable - получаю такую ошибку: /lib/aarch64-linux-gnu/libc.a(pthread_join_common.o)(.note.stapsdt+0x14...
🦊 Fox 🌸 🌸
6
Карта сайта