![]() |
#5 |
Участник
|
Что если перестроить запрос так:
while select [fields] from inventTable where inventTable.ItemType != ..... join [fields] from inventTrans where inventTrans.ItemId == inventTable.ItemId && ((inventTrans.TransType == InventTransType::Purch) || (inventTrans.TransType == InventTransType::Sales)) && (includeEstimated || ( ! includeEstimated && ((inventTrans.StatusReceipt == StatusReceipt::None && inventTrans.StatusIssue == StatusIssue::Sold) || (inventTrans.StatusReceipt == StatusReceipt::Purchased && inventTrans.StatusIssue == StatusIssue::None)))) && (inventTrans.DateFinancial && inventTrans.DateFinancial >= dateFrom && inventTrans.DateFinancial <= dateTo) || (!inventTrans.DateFinancial && inventTrans.DateExpected >= dateFrom && inventTrans.DateExpected <= dateTo)) join [fields] from inventDim where inventDim.InventDimId == inventTrans.InventDimId && (.........) exists join [fields] from A where A.[X] == inventDim.[Y] join B where B.InventDimId == A.InventDimId && ((B.DateFinancial && B.DateFinancial >= dateFrom && B.DateFinancial <= dateTo) || ( !B.DateFinancial && B.DateExpected >= dateFrom && B.DateExpected <= dateTo)) Есть мысль, что это сократит "терзания" InventTrans (+InventDim) и будет быстрее... |
|
Теги |
оптимизация, производительность, ax3.0 |
|
![]() |
||||
Тема | Ответов | |||
Оптимизация запроса - ranges | 13 | |||
Изменить план выполнения запроса | 2 | |||
Быстродействие запроса | 1 | |||
Опять оптимизация запроса | 3 | |||
Оптимизация запроса | 1 |
|