Есть еще в Tracer такая кнопочка - План исполнения, а затем Рассчитать новый план - там показывается по какому индексу идет выборка.
Для начала попробуйте в индексе \Data Dictionary\Tables\InventSum\Indexes\ClosedItemDimIdx поставить первым полем ItemId, а вторым Closed.
А также скажите - какие индексы у Вас на таблице InventSum (интересует список полей по индексам с учетом положения поля в индексе). Плюс скажите по какому индексу ведется выборка по InventSum.
Общие правила такие:
1. Поля, в которых содержится большее количество разнородной информации должны быть раньше в индексе. Очевидно, что в ItemId содержится больше разнородной информации, чем в Closed
2. Наибольшее количество полей с наибольшим количеством разнородной информации, участвующие в предложениях Where, Join, Group by, Order by запроса должны присутствовать в индексе. При этом БД должна правильно выбрать индекс (не запутаться в многообразии). Неправильно выбранный индекс приведет к более долгому исполнению запроса. Например, наличие енума в индексе на производительность может не повлиять (мало разнородной информации), но может повлиять на выбор индекса.
3. Увеличение количества индексов на таблице увеличивает время на вставку записей.
__________________
Возможно сделать все. Вопрос времени
Последний раз редактировалось sukhanchik; 31.08.2009 в 12:33.
|