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