02.11.2007, 09:22 | #1 |
Участник
|
Опять оптимизация запроса
while select AccountNum, Voucher, AmountCur
from rAssetTrans //Ищем все ОС, которые введены в эксплуатацию where rAssetTrans.AssetTransType == RAssetTransType::Acquisition && rAssetTrans.TransDate <= transDate join rAssetStandards where rAssetStandards.AssetId == rAssetTrans.AccountNum && rAssetStandards.AssetGroup != 'СО' && rAssetStandards.AssetGroup != '01' && rAssetStandards.PostingProfile != 'НМА' { ledgerAccount = ( select firstonly firstfast AssetDebAccountNum_ru from LedgerJournalTrans where LedgerJournalTrans.Voucher == _voucher && (LedgerJournalTrans.AssetDebAccountNum_ru != 'XX-00-00-з001' || LedgerJournalTrans.AssetDebAccountNum_ru != '') ).AssetDebAccountNum_ru; .................... } |
|
02.11.2007, 10:41 | #2 |
Участник
|
опять же используем
join, но использовать строки журналов - это вульгарно ищите счета в бух проводках, т.е. в LedgerTrans |
|
02.11.2007, 14:05 | #3 |
Участник
|
Согласен с тобой по LedgerTrans.
Но join с LedgerTrans увеличивает время запроса |
|
02.11.2007, 14:41 | #4 |
Участник
|
Надо делать 1 большой запрос к БД.
1 запрос на много записей отработает быстрее, чем много запросов по 1 записи |
|
|
Похожие темы | ||||
Тема | Ответов | |||
Оптимизация запроса - ranges | 13 | |||
Изменить план выполнения запроса | 2 | |||
Оптимизация запроса | 16 | |||
Оптимизация запроса | 1 | |||
Ускорение выполнения запроса Oracle + MS Axapta | 17 |
|