В конфигурации присутствует документ ДокументОбмена (60к+ документов). Платформа 8.3.8.2137.
Делаем несколько вариантов запроса к таблице документов с разными вариантами отборов по полям документов:
Вариант 1
ВЫБРАТЬ
ДокументОбмена.Ссылка
ИЗ
Документ.ДокументОбмена КАК ДокументОбмена
ГДЕ
ДокументОбмена.СсылкаДокумент1С = &СсылкаДокумент1С
И ДокументОбмена.Заказчик = &Заказчик
И ДокументОбмена.ТипДокументаТекстовый = "ORDERS"
Вариант 2
ВЫБРАТЬ
ДокументОбмена.Ссылка
ИЗ
Документ.ДокументОбмена КАК ДокументОбмена
ГДЕ
ДокументОбмена.ТипДокументаТекстовый = "ORDERS"
И ДокументОбмена.СсылкаДокумент1С = &СсылкаДокумент1С
Вариант 3
ВЫБРАТЬ
ДокументОбмена.Ссылка
ИЗ
Документ.ДокументОбмена КАК ДокументОбмена
ГДЕ
ДокументОбмена.Заказчик = &Заказчик
И ДокументОбмена.СсылкаДокумент1С = &СсылкаДокумент1С
Вариант 4
ВЫБРАТЬ
ДокументОбмена.Ссылка
ИЗ
Документ.ДокументОбмена КАК ДокументОбмена
ГДЕ
ДокументОбмена.СсылкаДокумент1С = &СсылкаДокумент1С
Для всех 3 полей, по которым производится отбор, стоит признак индексирования, но значения поля "СсылкаДокумент1С" уникальны для 95% документов. На тестовом прогоне (100 поисков) варианты 1 и 3 выполняются по 20 секунд, в то время как варианты 2 и 4 менее секунды.
Очевидно, что при выполнении вариантов 2 и 4 применяется индекс по полю "СсылкаДокумент1С", а для остальных вариантов менее удачный индекс.
Вопрос:
Как в файловой базе платформа принимает решение какой индекс применять в таких запросах? Тесты показывают, что порядок следования реквизитов в метаданных документа не влияет на результат запроса. Как не влияют и имена полей.
(1) Через временную таблицу и решил вопрос сейчас, но это выглядит как костыль. Хотелось бы найти более естественное решение.
(2) Все реквизиты по алфавиту, от смены порядка (с реструктуризацией и реиндексацией) ничего не меняется.
Я думаю, что порядок применения индексов зависит от порядка каких-нибудь внутренних идентификаторов реквизитов документа.
(4) более естественное решение - отказ от файловой версии. Раз уж хочешь управлять индексами
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший