trad писал(а) 25. Декабря 2006 :: 11:16:Ок, Миша, с тебя эффективный вариант использования ИТЗ.
И еще с тебя сравнение на sql
ОК, готово.Я написал свой тест, максимально упрощенный и ориентированный на демонстрацию различных подходов к группировке.
Конкретный результат теста получен на R27 SQL, 1cpp 2.0.3.2 cvs, по справочнику с 7500 элементов.
Цитата:Простой индекс, родителя нет, без финальной сортировки
ИТ::Группировать(): 00.00.12.422
Обход: 00.00.03.938
Простой индекс, родителя нет, с финальной сортировкой
ИТ::Группировать(): 00.00.12.191
Обход: 00.00.03.971
Простой индекс, родитель есть, без финальной сортировки
ИТ::Группировать(): 00.00.06.567
Обход: 00.00.04.155
Простой индекс, родитель есть, с финальной сортировкой
ИТ::Группировать(): 00.00.07.218
Обход: 00.00.04.016
Внутренний индекс, родителя нет, без финальной сортировки
ИТ::Группировать(): 00.00.06.003
Обход: 00.00.03.605
Внутренний индекс, родителя нет, с финальной сортировкой
ИТ::Группировать(): 00.00.06.078
Обход: 00.00.04.057
Внутренний индекс, родитель есть, без финальной сортировки
ИТ::Группировать(): 00.00.00.988
Обход: 00.00.03.954
Внутренний индекс, родитель есть, с финальной сортировкой
ИТ::Группировать(): 00.00.00.931
Обход: 00.00.04.119
Стандартный тест ТГ
Количество строк ТГ: 7510
ТГ::Сгруппировать(): 00.00.30.386
Обход: 00.00.06.347
Дима, я правильно использую обход ТГ?
По ИТ:
1. Разница для варианта с переданным родителем и без него - очевидна (для SQL - особенно)
2. Как я и обещал - финальная сортировка результата при выводе в таблицу - не заметна, находится в пределах погрешности. Можно отключить вывод в таблицу - тогда разница времени обхода будет видна в чистом виде.
Кстати, интересно, что на малых объемах данных заметно кеширование объектов движком 1С.
Поэтому в этом случае разница между индексом по представлению и внутр. представлению может быть мала. Но с ростом объемов, процент попадания в кэш падает, и разница в индексации с доступом в БД и без нее становится резко выраженной.
3. Разница между группировкой по представлениям и внутр. представлениям - также не требует комментариев (заметно на серьезных справочниках).
P.S.
Выложите кто-нибудь результаты теста на большом справочнике с нормальным количеством групп.
P.P.S.
Да, использование теста очень простое - на любой конфигурации запустить внешний отчет и нажать кнопку "все тесты".
Нужна любая текущая 1cpp и класс ТаблицаГруппировок.
файл заменен - откорректирован обход ТГ