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. Сурикат 183 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. Сурикат 183 16.01.17 21:19 Сейчас в теме
А у вас статистика обновлена на 8.3.8?
Дело не в сортировке, она занимает 6% процессорного времени. Выборка из таблицы с номенклатурой происходит гораздо медленнее
И из плана видно, что в первом случае индекс используется, во втором нет
1СSergey; +1 Ответить
5. 1СSergey 17.01.17 08:29 Сейчас в теме
(4) Виталий, спасибо что помогаете.
А как проверить, обновлена ли статистика?
И как запустить обновление, если не обновлена?
Вообще же она должна обновляться автоматически?
6. Сурикат 183 17.01.17 08:50 Сейчас в теме
(5) Настройте план обслуживания (там есть и обновление статистики и реорганизация индекса). Можно или то, или то выбрать и запустить план принудительно.
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

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

Консультант-аналитик 1С (ЗУП)
Санкт-Петербург
Полный день

Руководитель группы сервисов ЭДО, ЭЦП и криптографии
Москва
зарплата от 150 000 руб.
Полный день

Руководитель группы интеграций (1С)
Москва
зарплата от 150 000 руб.
Полный день

Руководитель группы сервисов FRM на 1С
Москва
зарплата от 150 000 руб.
Полный день