|
|
#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. Какие есть варианты? |
|
|
|
|
#2 |
|
Участник
|
Попробуйте вместо "exists join" использовать "join TableId from". Иногда помогает. Ну и еще можно попробовать индекс по полю payMainEmplId_Ru сделать.
|
|
|
|
|
Похожие темы
|
||||
| Тема | Ответов | |||
| Оптимизация запроса - ranges | 13 | |||
| Изменить план выполнения запроса | 2 | |||
| Быстродействие запроса | 1 | |||
| Оптимизация запроса | 16 | |||
| Опять оптимизация запроса | 3 | |||
| Опции темы | Поиск в этой теме |
| Опции просмотра | |
|