ВВЕДЕНИЕ
Для разностороннего исследования взял 5 парных (с индексацией и без) примеров для замера. Каждый пример сводится к созданию трех временных таблиц (чтобы не пропасть с выводом данных навечно в результирующую таблицу). Первые две временные таблицы получают фиксированные наборы данных, третья производит их соединение. По итогу замеров были сложены временные показатели для получения результата в виде прироста секунд. В целом весь эксперимент делится на две части: связь двух физических таблиц (НовыйШаблон1) и связь физической с виртуальной таблицей (НовыйШаблон2).
Далее будет указываться какой шаблон запроса в примере используется и с какими модификациями.
Физические таблицы: Товары заказов клиентов не индексируются платформой по сериям, товары реализаций индексируются по сериям но не индексируются по полю "Заказ клиента".
НАЧНЕМ!
Пример первый НовыйШаблон1
Добавлено ограничение на количество выборки записей в 800 000 элементов и использовано не левое, а полное соединение. При первом "прогоне" запроса SQL не провел внутреннее кэширование записей, а повторное выполнение этого же запроса было намного быстрее. Для статистики эти данные также были зафиксированы. Как итог получили следующие данные:
Пример второй НовыйШаблон1
Изменено левое соединение на те же 800 000 строк.
По результатам замера становится понятно, что на "одностороннем" соединении работа с проиндексированными таблицами ведется быстрее.
Пример третий НовыйШаблон1
Используется Левое соединение на 400 000 строк
Пример четвертый НовыйШаблон1
Левое соединение на микронаборе данных в 10 000 строк, чтобы понимать скорость выполнения построения индекса.
Пример пятый НовыйШаблон2
Крайний и единственный пример на втором шаблоне, отражающий поведение индексации на виртуальных таблицах. Использовано ограничение в 800 000 строк, но стоит отметить, что в виртуальной таблице нашкреблось только 57 000 записей, но на суть дела этот факт не повлияет, т.к. сравнению будет подвергаться один набор данных.
Итоги
Как итог проделанного тестирования сформировалась таблица с записями, пригодная для анализа:
Применяя нетривиальный математический анализ, прийти к выводу, что индексация помогает в оптимизации, у меня не получилось, потому, что:
В чем я мог ошибиться? Что мог понять неправильно, что неправильно сделал? Буду рад ответу на эти вопросы в комментариях!
Статья на сайте 1с: https://its.1c.ru/db/metod8dev#content:5842:hdoc
Также по ходу эксперимента был отснят видеоряд: