Блокировка таблиц запросом

1. MyNameNoName 03.05.17 09:18 Сейчас в теме
Здравствуйте.
1С 8.1. Древнющая УТ 10.1. Клиент-серверный вариант.
В конфигурации включен управляемый режим управления блокировками базы данных.
В последнее время заметил плохую вещь: есть регламентное задание в котором делается запрос к РН ЗаказыПокупателейОстатки, РН ТоварыНаСкладахОстатки.
Так вот если в это время проводится документ затрагивающий эти регистры - то срабатывает блокировка.
Как это обойти?
Неужели в момент обычного обращения запросом к РН таблица блокируется?
Спасибо за помощь!
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. ipoloskov 162 03.05.17 09:22 Сейчас в теме
Разве в 8.1 и УТ 10 есть управляемый режим блокировки?
В любом случае, попробуйте обновить платформу хотя бы на 8.2.19
В управляемом режиме блокировки, при выполнении запроса данные не блокируются.
Посмотрите, какой режим блокировки установлен на регистре и документе.
корум; MyNameNoName; +2 Ответить
3. MyNameNoName 03.05.17 14:58 Сейчас в теме
В регистрах стоит автоматический режим управления блокировками.
Перейти на 8.2 нет вообще никакой возможности - в режиме совместимости все ужасно начинает тормозить, СУБД около 200 Гб весит. А переписывать сейчас нет ресурсов - на 95% от конфигурации не осталось ничего.
4. корум 287 03.05.17 15:07 Сейчас в теме
(3) попробуй на копии запустить без режима совместимости.
Вполне вероятно, что ваша на 95% переписанная база станет жить лучше.
MyNameNoName; +1 Ответить
5. MyNameNoName 03.05.17 15:37 Сейчас в теме
Пробовали на копии без режима совместимости ранее (конвертнули базу) - потеря 40% производительности.
6. kolya_tlt 86 03.05.17 15:52 Сейчас в теме
(5) управляемый режим в 8.1 не работает, не смотря на то что включить его можно. тормозит он жутко. нормально он начинает работать с версии платформы 8.2.19 и без режима совместимости.
если вам нужно решить свою проблему то нужно двигаться именно в этом направлении.
просто так отключить режим нельзя, нужно переписывать код согласно статье на итс.

(2) блокируются, просто очень быстро высвобождаются.
MyNameNoName; +1 Ответить
7. caponid 03.05.17 16:55 Сейчас в теме
Самое простое это пересмотреть логику рег заданий и не выбирать данные такими большими порциями, что блокируется вся таблица.
Посмотреть профайлером планы выполнения запросов, может со временем они стали неактуальны или использованные индексы неселективны.

Выжать прирост производительности можно даже в таком "запущенном" случае.
Fox-trot; +1 Ответить
8. a30v 03.05.17 20:50 Сейчас в теме
Если долго выполняется запрос, то, вероятно, нужна его оптимизация. По поводу блокировок есть статья на ИТС http://its.1c.ua/db/metod8dev#content:5841:hdoc
MyNameNoName; +1 Ответить
9. MyNameNoName 04.05.17 12:39 Сейчас в теме
Спасибо всем!
Теперь более менее понятна хоть сама причина стала.
Единственное - блокировка возникает из-за того что:
Операция чтения остатков должна быть блокирующей
А если использовать виртуальный регистр не Остатки, а ОстаткиИОбороты - все равно как я понимаю от блокировки не уйти?
10. MyNameNoName 04.05.17 13:17 Сейчас в теме
И самое главное: в самом запросе я не указываю Блокировать получаемые данные для последующего изменения (в конструкторе запроса на вкладке дополнительно) - почему тогда вообще может блокироваться таблица???
11. caponid 04.05.17 16:35 Сейчас в теме
Если большая выборка, то при чтении данных (неявная, на уровне SQL) блокировка может разрастись до таблицы
MyNameNoName; +1 Ответить
Оставьте свое сообщение

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