|
|
#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 | |||
|