![]() |
![]() |
|
Вопрос по индексам оборотного регистра накопления. | ☑ | ||
---|---|---|---|---|
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 строк (по количеству строк распоряжения) Дичь же или есть скрытый смысл?
|
|||
1
H A D G E H O G s
19.10.25
✎
12:09
|
Написал на партнерку, посмотрим, че скажут
|
|||
2
Волшебник
19.10.25
✎
12:41
|
А может завести регистр остатков?
|
|||
3
H A D G E H O G s
19.10.25
✎
12:44
|
(2) Это кусок типовой 1С. Всем не заведешь.
Ну и разрабы типовой надеялись, что проиндексирует, установив признак у измерения "Индексировать", но разрабы платформы не оправдали ожиданий. Просчитались, но кто!? |
|||
4
Волшебник
19.10.25
✎
12:47
|
(3) Подумаешь, типовой... Идеал что ли?
|
|||
5
H A D G E H O G s
19.10.25
✎
12:49
|
(4) Лучшее, что есть.
|
|||
6
Волшебник
19.10.25
✎
13:25
|
(5) Ну не надо...
|
|||
7
d4rkmesa
19.10.25
✎
18:43
|
(3) Тут и платформа, и регистр новый (появившийся в 2.5.18 вроде), и сама процедура заполнения ТЧ - тогда еще не определились как лучше.
PS: Вроде уже исправились в 2.5.24, там тоже передвинули измерение на 2-ю позицию, на 1-й новое измерение с перечислением. |
|||
8
H A D G E H O G s
20.10.25
✎
17:46
|
Пожелание записали.
|
|||
9
Fragster
гуру
20.10.25
✎
18:02
|
(8) а пожелание не использовать регистры оборотов там, где нужны регистры остатков, записали?
а то название функции ПолучитьРезультатЗапросаПоОстаткамЗаказов() да и сам текст запроса как бы намекают |
|||
10
H A D G E H O G s
20.10.25
✎
18:03
|
(9) Антон, ты не в ту сторону воюешь.
|
|||
11
Garykom
гуру
20.10.25
✎
18:07
|
Больные люди с излишним использованием виртуальных таблиц
|
|||
12
breezee
21.10.25
✎
09:22
|
Прикол еще в том что когда > < условия - то следующие индексы не используются. А в оборотном РН первое поле дата и там как раз дата > и дата <.
Вроде агрегаты должны такое лечить, но я не пробовал |
|||
13
rsv
21.10.25
✎
09:28
|
(0) что покажет план если просто сумму взять из линейной таблички регистра ? Судя по коду типовых - тьма обращений к табличкам аля сумма и group by без использования виртуальных ( даже как то не по сертификатовски )
|
|||
14
Сергиус
22.10.25
✎
21:01
|
(13)Возможно в тестируемых условиях так работает быстрее..
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |