|
Вопрос по индексам и порядку измерений в отборе РН, таблица остатки. |
☑ |
0
Demetry
29.06.21
✎
12:47
|
Цитата из книги Профессиональная разработка 1С
"Если не применять условие отбора по первому измерению Номенклатура, а применить условие отбора по измерению Склад (листинг 11.88), для получения данных таблицы
итогов система сможет применить индекс Период + Номенклатура + Склад."
ВЫБРАТЬ
ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
ТоварыНаСкладахОстатки.Склад КАК Склад,
ТоварыНаСкладахОстатки.КоличествоОстаток КАК КоличествоОстаток
ИЗ
РегистрНакопления.ТоварыНаСкладах.Остатки(&Период, Склад = &СкладОтбора)
КАК ТоварыНаСкладахОстатки
Не могу понять , я то всегда думал что отборы нужно ставить последовательно по полям регистра накопления , получается это не так ? Типо поставил отбор по какому хочешь полю и индекс прекрасно работает ?
|
|
1
ДенисЧ
29.06.21
✎
12:49
|
"отборы нужно ставить последовательно по полям регистра накопления , получается это не так ?"
да, это не так.
Выражение И коммутативно.
Важен порядок полей в таблице, а не порядок предикатов в запросе.
|
|
2
Волшебник
модератор
29.06.21
✎
12:51
|
Выбор индекса в общем случае непредсказуем. Это решает планировщик запроса конкретной СУБД прямо в онлайне, опираясь на статистику.
Чем жёстче отбор в параметрах виртуальной таблицы, тем лучше, но не всегда.
|
|
3
Почему 1С
29.06.21
✎
13:04
|
(0) Частичное использование индекса <> индекс прекрасно работает
|
|
4
H A D G E H O G s
29.06.21
✎
13:07
|
(0) Ну она применит Индекс, но прочитает тебе все страницы индекса на дату.
|
|
5
Demetry
29.06.21
✎
13:21
|
Понятно , я то грешным делом подумал неужто она применит индекс для период и Склад , а сосклада прочитает уже все его номенклатуру.
|
|
6
Demetry
29.06.21
✎
13:34
|
Спасибо)
|
|