Цитата:
Сообщение от
AX2009
У вас в заказах строк сколько?
есть ли одинаковые номенклатуры?
Количество строк в Заказе порядка 10, одинаковых номенклатур нет.
Цитата:
Сообщение от
sukhanchik
Есть еще в Tracer такая кнопочка - План исполнения, а затем Рассчитать новый план - там показывается по какому индексу идет выборка.
Для начала попробуйте в индексе \Data Dictionary\Tables\InventSum\Indexes\ClosedItemDimIdx поставить первым полем ItemId, а вторым Closed.
А также скажите - какие индексы у Вас на таблице InventSum (интересует список полей по индексам с учетом положения поля в индексе). Плюс скажите по какому индексу ведется выборка по InventSum.
Общие правила такие:
1. Поля, в которых содержится большее количество разнородной информации должны быть раньше в индексе. Очевидно, что в ItemId содержится больше разнородной информации, чем в Closed
2. Наибольшее количество полей с наибольшим количеством разнородной информации, участвующие в предложениях Where, Join, Group by, Order by запроса должны присутствовать в индексе. При этом БД должна правильно выбрать индекс (не запутаться в многообразии). Неправильно выбранный индекс приведет к более долгому исполнению запроса. Например, наличие енума в индексе на производительность может не повлиять (мало разнородной информации), но может повлиять на выбор индекса.
3. Увеличение количества индексов на таблице увеличивает время на вставку записей.
Таблица InventSum без модификаций. Привожу индексы:
1. ClosedItemDimIdx - по рекомендации выставил порядок полей ItemId, Closed
2. ItemDimIdx - ItemId, InventDimId
3. DimIdIdx - InventDimId, Closed
План запроса показал использование индексов ItemDimIdx, DimIdIdx.