вторник, 19 января 2016 г.

Як ЦУП цоп

На новой работе. Конфликт блокировок. Неустранимый. Пользователь один - я. Запустил расчет в два потока. Иногда работает нормально, чаще один из потоков отбивает.
Полез погуглить. Все одинэсники говорят "ЦУП, ЦУП".
Видел ваш ЦУП, у гробе в белых тапках. На позапрошлой работе мы даже купили его, благо был договор франчайзинга. Я был начальником ИТ там и понял, что для того, чтобы его хотя бы установить и запустить нужен отдельный спец в отделе. Когда у тебя такого человека нет - можно забыть про ЦУП. И про его возможности. И насущные и обещанные.

Задача ПРИМИТИВНЕЙШАЯ - определить на какой из сотен таблиц возникает конфликт блокировок.

И тут я вспомнил про замечательную утилитку Константина Князева - MSSQL Blocks. Как она очень помогала много лет назад. Тупо верещит, когда возникают блокировки, и выдает взаимоблокирующие процессы с их текущими запросами. А в тексте запросов - названия таблиц. И всё, больше ничего не нужно. Вот оно - счастье.

А потом мы переехали на PostgreSQL и как-то проблема блокировок ушла сама собой.
И да, я считаю, что платить за MSSQL не нужно.
Во всяком случае, если у вас 1С. Бимеровская DB2 у нас не взлетела, а постгрес рулил.

Ах да, ссылка http://sqlblocks.narod.ru/