Снегопат
https://snegopat.ru/forum/

Тормозят запросы в УТ11
https://snegopat.ru/forum/viewtopic.php?f=6&t=562
Страница 1 из 2

Автор:  maljaev [ 30 окт 2013, 11:01 ]
Заголовок сообщения:  Тормозят запросы в УТ11

Пожалуйста, помогите разобраться с траблом - очень приперло.

Есть терминал-сервер, на нём 2 базы: БП 2 и УТ 11, файловые. Каждая по 2.5 Гб. Базы лежат на одном диске. Обе работают в толстом клиенте. Состав документов реализации в обоих базах идентичный. Делаю запросы из консоли:

Код:
ВЫБРАТЬ
   РеализацияТоваровУслугТовары.Номенклатура,
   РеализацияТоваровУслугТовары.Количество,
   РеализацияТоваровУслугТовары.Ссылка
ИЗ
   Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
ГДЕ
   РеализацияТоваровУслугТовары.Ссылка.Дата МЕЖДУ НАЧАЛОПЕРИОДА(&Дата, ДЕНЬ) И КОНЕЦПЕРИОДА(&Дата, ДЕНЬ)


В БП 2 этот запрос выполняется миллисекунды, в УТ 11 - минуту. Притом во время выполнения запроса в УТ одно ядро процессора грузится на 100%, диск и память практически не используются.

В чём причина тормозов и куда копать никак не пойму.

Автор:  maljaev [ 30 окт 2013, 11:02 ]
Заголовок сообщения:  Re: Тормозят запросы в УТ11

Попробовал провести эксперимент. Перевел УТ11 в режим обычного приложения, запустил консоль для обычного приложения.

Код:
ВЫБРАТЬ
   РеализацияТоваровУслугТовары.Номенклатура,
   РеализацияТоваровУслугТовары.Количество,
   РеализацияТоваровУслугТовары.Ссылка,
   РеализацияТоваровУслугТовары.Ссылка.Дата
ИЗ
   Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары


Выполняется 4 секунды. Количество строк в результате - 250'000

Код:
ВЫБРАТЬ
   РеализацияТоваровУслугТовары.Номенклатура,
   РеализацияТоваровУслугТовары.Количество,
   РеализацияТоваровУслугТовары.Ссылка,
   РеализацияТоваровУслугТовары.Ссылка.Дата
ИЗ
   Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
ГДЕ
   РеализацияТоваровУслугТовары.Ссылка.Дата МЕЖДУ НАЧАЛОПЕРИОДА(&Дата, ДЕНЬ) И КОНЕЦПЕРИОДА(&Дата, ДЕНЬ)


Выполняется 133 секунды. Количество строк в результате - 1'475

Почему из-за одного условия такие тормоза? Условие пробовал переписывать по-разному, тормоза те же.

Автор:  advali [ 30 окт 2013, 11:12 ]
Заголовок сообщения:  Re: Тормозят запросы в УТ11

Наверное надо соединить с таблицей шапки? И по ней делать условие?

Автор:  maljaev [ 30 окт 2013, 11:18 ]
Заголовок сообщения:  Re: Тормозят запросы в УТ11

Ну как вариант. Но я ведь вывожу полностью колонку "РеализацияТоваровУслугТовары.Ссылка.Дата" и по ней тормозов нет (без условия).
В БП вообще не тормозит при любом раскладе.

Автор:  sosnae [ 30 окт 2013, 11:29 ]
Заголовок сообщения:  Re: Тормозят запросы в УТ11

РЛС?

Автор:  maljaev [ 30 окт 2013, 11:52 ]
Заголовок сообщения:  Re: Тормозят запросы в УТ11

В шаблонах ограничений роли все правила РЛС поудалял - не помогает.

Автор:  JohnyDeath [ 30 окт 2013, 12:24 ]
Заголовок сообщения:  Re: Тормозят запросы в УТ11

А так:
Код:
ВЫБРАТЬ
   РеализацияТоваровУслугТовары.Номенклатура,
   РеализацияТоваровУслугТовары.Количество,
   РеализацияТоваровУслугТовары.Ссылка,
   Выразить(РеализацияТоваровУслугТовары.Ссылка как Документ.РеализацияТоваровУслуг).Дата
ИЗ
   Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
ГДЕ
   Выразить(РеализацияТоваровУслугТовары.Ссылка как Документ.РеализацияТоваровУслуг).Дата МЕЖДУ НАЧАЛОПЕРИОДА(&Дата, ДЕНЬ) И КОНЕЦПЕРИОДА(&Дата, ДЕНЬ)

(хотя не факт, что для файловой применимы те же методы, что и для скульной)

Автор:  maljaev [ 30 окт 2013, 13:38 ]
Заголовок сообщения:  Re: Тормозят запросы в УТ11

Не катит. Я для начала выполню-как тестирование и исправление ИБ, хотя оно и жутко долго делается. Может поможет.

Автор:  artbear [ 30 окт 2013, 15:37 ]
Заголовок сообщения:  Re: Тормозят запросы в УТ11

Перепиши запрос на явный inner join с основной таблицей c условием соединения по дате
maljaev писал(а):
Код:
ВЫБРАТЬ
   РеализацияТоваровУслугТовары.Номенклатура,
   РеализацияТоваровУслугТовары.Количество,
   РеализацияТоваровУслугТовары.Ссылка
ИЗ
   Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
   Внутренннее соединение Документ.РеализацияТоваровУслуг КАК Доки
   ПО Доки.Ссылка = РеализацияТоваровУслугТовары.Ссылка
   И Доки.Дата МЕЖДУ НАЧАЛОПЕРИОДА(&Дата, ДЕНЬ) И КОНЕЦПЕРИОДА(&Дата, ДЕНЬ)

Может быть, поможет.
Если нет, тогда ТиИ + помним о том, что в файловом запросы могут работать странно :(

Автор:  maljaev [ 30 окт 2013, 22:29 ]
Заголовок сообщения:  Re: Тормозят запросы в УТ11

Да я еще в начале дня переписал, явное ведь решение. Но поведение системы просто странное, хочется докопаться до истины.

Самое интересное в том, что базы УТ и БП идентичны по составу документов реализации, соответственно результаты один и тот же запрос в обоих базах дает одинаковые. И размер баз одинаковый. Но загадка в том почему этот запрос в БП выполняется где-то 30 миллисекунд, а в УТ 130 секунд. Это я про неоптимизированную версию запроса, оптимизированная с джойном двух таблиц выполняется приемлемо быстро, но все равно в УТ она выполняется на 2 порядка медленнее чем в БП. Может быть действительно в УТ каких-то индексов не хватает, но как это проверить?

Если кому интересно увидеть это своими глазами - могу дать ссылки на архивы обеих баз (примерно 400 Мб каждая), но разумеется не каждому встречному а из тех кого здесь знаю.

Вложение:
scr1.jpg
scr1.jpg [ 212.96 КБ | Просмотров: 21452 ]

Вложение:
scr2.jpg
scr2.jpg [ 112.15 КБ | Просмотров: 21452 ]

Страница 1 из 2 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/