27.04.2006, 07:56 | #1 |
Гость
|
Оптимизация запроса
Подскажите, кто сталкивался с такой проблемой! Как можно оптимизировать такой запрос:
while select sum(amount),payPeriod,sourceDate from RPayTrans group By sourceDate where RPayTrans.payPeriod == payPeriod && RpayTrans.PayPeriod <= RpayParameters::PayPeriod() exists join RPayTable where RPayTable.payCtype == RPayTrans.payCtype && RPayTable.rpayTaxIncomeCode == incomeCode exists join emplTableLocal where emplTableLocal.emplId == RPayTrans.emplid && (emplTableLocal.payMainEmplId_Ru == emplId || emplTableLocal.emplId == emplId) { ..................... } Пробовала через join count(recid) особо не помогло, все равно сканирует таблицы RPayTable и emplTable много и долго. Убирать join с emplTable не можем, так как используем поле payMainEmplId_RU. Какие есть варианты? |
|
27.04.2006, 08:37 | #2 |
Участник
|
Попробуйте вместо "exists join" использовать "join TableId from". Иногда помогает. Ну и еще можно попробовать индекс по полю payMainEmplId_Ru сделать.
|
|
|
Похожие темы | ||||
Тема | Ответов | |||
Оптимизация запроса - ranges | 13 | |||
Изменить план выполнения запроса | 2 | |||
Быстродействие запроса | 1 | |||
Оптимизация запроса | 16 | |||
Опять оптимизация запроса | 3 |
|