1. 1СSergey 10.01.17 11:28 Сейчас в теме

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

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


Версия платформы 8.3.9.1818.
Отображение динамического списка на форме установлено в "Иерархический список"
Ранее был установлен режим совместимости 8.2.16.
После перевода конфигурации в режим совместимости 8.3.8 этот динамический список стал жутко тормозить.
С другими режимами совместимости 8.3.х та же ситуация.
А именно первоначальное открытие формы с пары секунд увеличилось до многих минут.
Скроллинг формы сильно стал подтормаживать.
Примечательно, что в режиме отображения списка на форме в "Список" или "Дерево" все работает отлично, но нужен именно "Иерархический список".
Если убрать из запроса соединение с регистром сведений, тормоза пропадают.
Пробовал индексировать в регистре измерение "Товар" - не помогло.
Выводил запрос с чтением регистра сведений во временную таблицу, так же с индексированием поля "Товар" - то же не помогло.
В общем то данных в кеше не так много 1000 записей, по сравнению с тем что в справочнике товаров 800 000 записей.
По отдельности в консоли запросов запрос к справочнику товаров выполняется 4.5 секунды, запрос к регистру сведений выполняется мгновенно.
Нужна помощь, советы, хоть что нибудь.
Ответы
Избранное Подписка Сортировка: Древо
2. Сурикат 192 10.01.17 14:23 Сейчас в теме
Очень похоже, что платформа не вставляет условие ПЕРВЫЕ 50. Отборов никаких при открытии из пользовательских настроек не добавляется?
База на MS SQL? Смотрите профайлером какой запрос выполняется реально, сразу увидите причину тормозов
1СSergey; +1 Ответить
3. 1СSergey 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. Сурикат 192 16.01.17 21:19 Сейчас в теме
А у вас статистика обновлена на 8.3.8?
Дело не в сортировке, она занимает 6% процессорного времени. Выборка из таблицы с номенклатурой происходит гораздо медленнее
И из плана видно, что в первом случае индекс используется, во втором нет
1СSergey; +1 Ответить
5. 1СSergey 17.01.17 08:29 Сейчас в теме
(4) Виталий, спасибо что помогаете.
А как проверить, обновлена ли статистика?
И как запустить обновление, если не обновлена?
Вообще же она должна обновляться автоматически?
6. Сурикат 192 17.01.17 08:50 Сейчас в теме
(5) Настройте план обслуживания (там есть и обновление статистики и реорганизация индекса). Можно или то, или то выбрать и запустить план принудительно.
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Программист 1С
Санкт-Петербург
зарплата от 110 000 руб. до 120 000 руб.
Полный день

Аналитик 1С
Санкт-Петербург
зарплата от 80 000 руб.
Полный день

Программист 1С
Нижний Новгород
зарплата до 120 000 руб.
Полный день

Программист 1С
Волгоград
зарплата от 45 000 руб. до 90 000 руб.
Полный день

Автор новостных обзоров на тему 1С и бухучета
Санкт-Петербург
По совместительству