Вывод данных о блокировки при записи в таблицы SQL

1. Semion 05.04.18 16:30 Сейчас в теме
Добрый день, может кто подскажет...

Проблема: есть компания численностью 50 человек, которые активно создают и проводят заказы в базе УТ.
Редко, но бывает, что кто-то проводит большой заказ на 100-200 позиций и из-за этого у некоторых пользователей перестают проводится заказы в которых присутствует позиция в большом заказе т.е. блокируется ячейка БД, а 1С выводит ошибку "конфликт блокировок" и ответ от SQL под кнопкой подробно.

Нужно: как-то дополнить стандартное сообщение о блокировки данными о том кто именно блокирует "карточку" это может быть имя ПК, пользователя не так важно.
Как я понимаю SQL нам этой информации не даст т.к. работает с агентом 1С предприятия, но может сам сервер 1С может даст нам эту информацию?

Не могу сказать, что проблема критична, но если есть возможность эту информацию выдавать и успокоить пользователя, то почему бы и нет. :-)
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Noob001 06.04.18 01:10 Сейчас в теме
(1) А может лучше зайти в конфигуратор, Администрирование, Параметры информационной базы, и увеличить "Время ожидания блокировки данных, сек."
И вообще не выводить страшное сообщение пользователю.

А ещё лучше, разобраться с производительностью, т.к. стандартно там 20 секунд, и это ненормально когда пользователь ждет по 30 секунд когда поведется его документ, пусть даже и большой.
3. Semion 06.04.18 13:44 Сейчас в теме
Александр, тут наверно уже вопрос к самой платформе 1С конфигурация сервера такая:
WS2012 Hyper-V
1C server 64bit релиз 8.3.9.2233
CPU E5-2620
Ram 70GB
SSD Intel 750 PCI-E NVMe 400Гб
База УТ версия 10.4.0.32.405 на 63Гб
Сеть 2х1Гбит

Как мне кажется достаточно для такой базы, по тесту Гилеева результат на сколько я помню был средний. Нагрузка на ЦП и диск минимальная...
5. oldfornit 06.04.18 14:06 Сейчас в теме
(3) файловая база? Если да - поможет только увеличение таймаута
6. Noob001 06.04.18 14:57 Сейчас в теме
(3) Железка гуд.
Только вот любую железку может завалить кривой запрос.

Надо смотреть что конкретно тормозит проведение.

Вариантов масса.
Я бы начал с замера производительности в отладчике, оттуда уже можно понять, это код 1С тормозит или деградация производительности на уровне СУБД.
И далее искать и лечить проблему.
Оптимизация это процесс вечный. :) но иногда сходу за пару тройку часов можно сократить время выполнения в сотни раз.
7. Semion 06.04.18 16:06 Сейчас в теме
(6) Да, конечно об этом и речь, что производительности "железа" должно хватать, серверу 2 года. Так же сервер проходил аудит SQL никаких "затычек" найдено не было, так же были настроены обрезка логов, бэкапы и пере индексация базы.

Остаётся только сама платформа 1С... но это уже отдельная тема.

А ответ по моему вопросу я понял, оптимизировать 1С, смотреть где бутылочное горлышко. :-)
8. SlavaKron 06.04.18 17:32 Сейчас в теме
(7) Теоретически вы можете получить список блокировок через ком-соединение к агенту сервера. Проблема может возникнуть с определением порта агента сервера и аутентификацией в кластере, если для него установлен администратор (по умолчанию не установлен). Всё остальное платформа может узнать без хардкодинга:
Имя сервера, порт кластера, имя базы, номера сеансов, транзакций, соединений и т.д.
Вопрос, стоит ли эта морока спокойствия пользователя?
4. caponid 06.04.18 14:03 Сейчас в теме
200-300 строк проводятся больше 20 секунд? это действительно странно - надо оптимизировать проведение по документу... а кто заблокировал, тут платформа никакой информации дать не может.

Вполне возможно что деградация по плану выполнения запроса произошла - что там выбирается? остатки?
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот