Тормозит динамический список

1. Ян Сергей (YanSergey) 10.01.17 11:28 Сейчас в теме
Здравствуйте, коллеги.
Проблема такая.
Есть динамический список с произвольным запросом вида:
ВЫБРАТЬ
	СправочникТовары.Ссылка,
	СправочникТовары.Код,
	СправочникТовары.Артикул,
	СправочникТовары.Наименование,
	НЕ Кеш.Товар ЕСТЬ NULL КАК ТоварИзКеша,
	СправочникТовары.ЭтоГруппа
ИЗ
	Справочник.Товары КАК СправочникТовары
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Кеш КАК Кеш
		ПО СправочникТовары.Ссылка = Кеш.Товар
Показать


Версия платформы 8.3.9.1818.
Отображение динамического списка на форме установлено в "Иерархический список"
Ранее был установлен режим совместимости 8.2.16.
После перевода конфигурации в режим совместимости 8.3.8 этот динамический список стал жутко тормозить.
С другими режимами совместимости 8.3.х та же ситуация.
А именно первоначальное открытие формы с пары секунд увеличилось до многих минут.
Скроллинг формы сильно стал подтормаживать.
Примечательно, что в режиме отображения списка на форме в "Список" или "Дерево" все работает отлично, но нужен именно "Иерархический список".
Если убрать из запроса соединение с регистром сведений, тормоза пропадают.
Пробовал индексировать в регистре измерение "Товар" - не помогло.
Выводил запрос с чтением регистра сведений во временную таблицу, так же с индексированием поля "Товар" - то же не помогло.
В общем то данных в кеше не так много 1000 записей, по сравнению с тем что в справочнике товаров 800 000 записей.
По отдельности в консоли запросов запрос к справочнику товаров выполняется 4.5 секунды, запрос к регистру сведений выполняется мгновенно.
Нужна помощь, советы, хоть что нибудь.
Ответы
2. Виталий Попов (Сурикат) 162 10.01.17 14:23 Сейчас в теме
Очень похоже, что платформа не вставляет условие ПЕРВЫЕ 50. Отборов никаких при открытии из пользовательских настроек не добавляется?
База на MS SQL? Смотрите профайлером какой запрос выполняется реально, сразу увидите причину тормозов
YanSergey; +1 Ответить
3. Ян Сергей (YanSergey) 16.01.17 14:16 Сейчас в теме
(2) Да, база на MS SQL 2014.
"Первые 45" система в SQL запрос добавляет.
Причем после общего запроса "SELECT TOP 45..." идет кучка таких же запросов к каждой номенклатуре "SELECT TOP 1...", в том числе и к группам.
И вот что заметил.
В режиме совместимости 8.2.16:
Для группы номенклатуры "КОВРИКИ ПОДДОНЫ" количество чтений 11, показатель CPU = 15, длительности запроса 2 мс
В режиме совместимости 8.3.8:
Для этой же группы количество чтений 2 273 883, показатель CPU = 5782, длительности запроса 18264 мс
В сравнении планов запросов в 8.3.8 добавилось одно действие с восклицательным знаком, наверно оно все портит.
Непонятно, в чем проблема.
Прикрепленные файлы:
4. Виталий Попов (Сурикат) 162 16.01.17 21:19 Сейчас в теме
А у вас статистика обновлена на 8.3.8?
Дело не в сортировке, она занимает 6% процессорного времени. Выборка из таблицы с номенклатурой происходит гораздо медленнее
И из плана видно, что в первом случае индекс используется, во втором нет
YanSergey; +1 Ответить
5. Ян Сергей (YanSergey) 17.01.17 08:29 Сейчас в теме
(4) Виталий, спасибо что помогаете.
А как проверить, обновлена ли статистика?
И как запустить обновление, если не обновлена?
Вообще же она должна обновляться автоматически?
6. Виталий Попов (Сурикат) 162 17.01.17 08:50 Сейчас в теме
(5) Настройте план обслуживания (там есть и обновление статистики и реорганизация индекса). Можно или то, или то выбрать и запустить план принудительно.
Оставьте свое сообщение