Имя: Пароль:
1C
1С v8
Вопрос по индексам и порядку измерений в отборе РН, таблица остатки.
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
Спасибо)