0
H A D G E H O G s
19.10.25
✎
11:58
|
Собственно, типовой алгоритм ввода реализации на основании заказа в УТ11.5. Вызывает процедуру
Документы.РеализацияТоваровУслуг.ЗаполнитьПоОстаткамЗаказов()
внутри нее вызывается процедура
ПолучитьРезультатЗапросаПоОстаткамЗаказов()
внутри которой все сводится к простому запросу
ВЫБРАТЬ
РаспоряженияОбороты.Распоряжение КАК ЗаказКлиента,
РаспоряженияОбороты.Номенклатура КАК Номенклатура,
РаспоряженияОбороты.Характеристика КАК Характеристика,
РаспоряженияОбороты.КодСтроки КАК КодСтроки,
РаспоряженияОбороты.Склад КАК Склад,
РаспоряженияОбороты.Серия КАК Серия,
РаспоряженияОбороты.КОформлениюОборот КАК КОформлению,
РаспоряженияОбороты.СуммаОборот КАК Сумма
ИЗ
РегистрНакопления.РаспоряженияНаОтгрузку.Обороты(, , , Распоряжение =&Заказ) КАК РаспоряженияОбороты
И этот запрос читает 1 млн строк данных, хоть измерение Распоряжение - первое и индексировано.
Лезем на ИТС иии, видим
Регистр накопления
Таблица оборотов
[ОРРХ | ОРНР1 +] Период + Измерение1 + ... + ИзмерениеN + [DimHash] + [Splitter] (Кластерный)
[ОРРХ | ОРНР1 +] Измерение + Период
То есть, для условия без периода, по первому измерению, кластерный индекс использоваться не будет, а больше индексов для первого измерения и нет.
Передвинув Распоряжение на 2 позицию - получил использование индекса и чтение 12 строк (по количеству строк распоряжения)
Дичь же или есть скрытый смысл?
|
|
3
H A D G E H O G s
19.10.25
✎
12:44
|
(2) Это кусок типовой 1С. Всем не заведешь.
Ну и разрабы типовой надеялись, что проиндексирует, установив признак у измерения "Индексировать", но разрабы платформы не оправдали ожиданий.
Просчитались, но кто!?
|
|
7
d4rkmesa
19.10.25
✎
18:43
|
(3) Тут и платформа, и регистр новый (появившийся в 2.5.18 вроде), и сама процедура заполнения ТЧ - тогда еще не определились как лучше.
PS: Вроде уже исправились в 2.5.24, там тоже передвинули измерение на 2-ю позицию, на 1-й новое измерение с перечислением.
|
|