Тормозят запросы в УТ11

Обсуждение различных вопросов, связанных с разработкой и эксплуатацией 1С-Предприятия 8.X
maljaev
Сообщения: 41
Зарегистрирован: 22 дек 2011, 12:52

Re: Тормозят запросы в УТ11

Сообщение maljaev »

Всё, я нашел причину тормозов. Всем кому интересно читаем дальше.

С помощью обработки http://infostart.ru/public/99236/ разобрал структуру БД, нашел различия в индексах между БП и УТ.
У каждого документа есть индекс вида:

Код: Выделить всё

_DocumenХХХ_ByDocDate_TR
_Date_Time Дата
_IDRRef Ссылка

Так вот в УТ, за счет общих реквизитов - разделителей учета - этот индекс дополняется еще одним измерением:

Код: Выделить всё

_DocumenХХХ_ByDocDate_TR
_FldYYY ОбластьДанныхОсновныеДанные
_Date_Time Дата
_IDRRef Ссылка

В результате получается что при отборе документов по дате, в первом случае этот индекс используется, а во втором не используется. Отсюда и тормоза. Возможно на SQL-версии мощные движки СУБД умеют оптимизировать запросы и с имеющимися индексами, но в случае файловой версии движок 1С тупит.

Вариант решения проблемы.

Если вы используете разделитель учета или не хочется ломать конфу, то скорее всего поможет только SQL, там на крайний случай индексы можно и самому нужные добавить, хотя полагаю что движок SQL и сам справиться.

Если в учете не используются разделители учета (это как раз мой случай), то порядок действий следующий:
1. создать архивную копию БД.
2. обработкой ВыгрузкаЗагрузкаДанныхXML (я использовал слегка исправленную версию от 8.3 для Уф) выгрузить в файл все справочники и планы видов характеристик, так как слетят значения предопределенных объектов.
3. открыть состав общего реквизита ОбластьДанныхОсновныеДанные и установить признак использования в состояние "Не использовать" для всех объектов, кроме констант, регламентных заданий и планов обмена (с ними гемор). общий реквизит ОбластьДанныхВспомогательныеДанные не трогаем.
4. сохранить/обновить конфигурацию БД.
5. обработкой ВыгрузкаЗагрузкаДанныхXML загрузить из файла сохраненные ранее справочники и планы видов характеристик (слетевшие значения вернутся на место).
6. проверить работу.

По итогу конфа работает даже в целом веселее, и устраняется описанная в первом посту фича с запросами. Думаю что в ряде случаев 1С начинает наконец-то попадать в индекс там где раньше не попадала. Можно выполнить также сжатие таблиц БД, реиндексацию, реструктуризацию и т.д.
Последний раз редактировалось maljaev 31 окт 2013, 03:24, всего редактировалось 2 раза.
maljaev
Сообщения: 41
Зарегистрирован: 22 дек 2011, 12:52

Re: Тормозят запросы в УТ11

Сообщение maljaev »

А вообще наверное более безопасно и правильно пройтись по составу объектов общих реквизитов и отключить использование там где это возможно и где не затрагивает другие механизмы системы.
JohnyDeath
Сообщения: 722
Зарегистрирован: 24 авг 2011, 15:32

Re: Тормозят запросы в УТ11

Сообщение JohnyDeath »

Спасибо. Будем знать.
Аватара пользователя
orefkov
Администратор
Сообщения: 2052
Зарегистрирован: 24 авг 2011, 15:04

Re: Тормозят запросы в УТ11

Сообщение orefkov »

Подход к решению проблемы внушает уважение!
maljaev
Сообщения: 41
Зарегистрирован: 22 дек 2011, 12:52

Re: Тормозят запросы в УТ11

Сообщение maljaev »

Саш, смеешься? ))) Просто выхода другого не было, только что заключил договор с новым клиентом на абонентку и нужно было в течение 2-3 дней решить проблему с тормозами не взяв ни одной лишней копейки на оборудование или ПО. А дальше приработаюсь с ними и потихоньку пробью новый сервак и MS SQL, перепишу все тормозные участки в учете.
Аватара пользователя
orefkov
Администратор
Сообщения: 2052
Зарегистрирован: 24 авг 2011, 15:04

Re: Тормозят запросы в УТ11

Сообщение orefkov »

Наоборот, категорически приветствую. Люблю, когда к делу подходят серьезно и копают, пока не найдут истинную причину.
Аватара пользователя
kostas
Сообщения: 86
Зарегистрирован: 07 фев 2012, 15:25
Откуда: РБ

Re: Тормозят запросы в УТ11

Сообщение kostas »

Очень интересная информация! Спасибо!
advali
Сообщения: 204
Зарегистрирован: 06 сен 2013, 07:59

Re: Тормозят запросы в УТ11

Сообщение advali »

А может в случае, если разделители учета не используются, просто добавить условие по разделителю учета в запрос (чему там оно равно "не заданное значение")?

Если я правильно понял про работу с индексами, если в условиях пристуствуют все индексы выше текущего (т.е. выше даты), то отбор производится быстрее, чем если будут пропуски
advali
Сообщения: 204
Зарегистрирован: 06 сен 2013, 07:59

Re: Тормозят запросы в УТ11

Сообщение advali »

Если копия базы осталась, уточните пожалуйста этот момент, очень интересно, соответствуют ли рекомендации 1С действительности, или нет (у меня к сожалению нет подходящих баз)
maljaev
Сообщения: 41
Зарегистрирован: 22 дек 2011, 12:52

Re: Тормозят запросы в УТ11

Сообщение maljaev »

Общие реквизиты отсутствуют в составе реквизитов запроса. Попытка вручную указать в запросе условие "РеализацияТоваровУслугТовары.Ссылка.ОбластьДанныхОсновныеДанные=0" или "РеализацияТоваровУслугТовары.ОбластьДанныхОсновныеДанные=0" приводят к ошибке, ругается на отсутствие такого реквизита. Соответственно вручную указать в запросе область разделения данных невозможно.
Ответить