Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Оптимизация запроса  [new]
akaipbay
Member

Откуда:
Сообщений: 109
Доброго времени суток!

Подскажите как можно ускорить запрос? Несколько небольших таблиц соединяю с большими таблицами.

SELECT brt.realizationdate,
 CASE interface_type
   WHEN 'APP_CNP' THEN
    'LH'
   ELSE
    'CNP'
 END channel,
 CASE ticc.type_
   WHEN 1 THEN
    'LOAN'
   WHEN 2 THEN
    'DEPOSIT'
   WHEN 3 THEN
    'CARD'
 END target,
 brt.amount,
 tiu.phone_number,
 tiu.cuid,
 tba.prod_dispatch_note_num
  FROM ap_it.t_ib_tbl_ib_card_cnp_transfer ticc
  JOIN ap_it.t_ib_tbl_ib_bank_account tba
    ON tba.id = ticc.target_acc_id
  JOIN owner_int.vh_obs_bc_realizedtransaction brt
    ON brt.idrequiredtransaction = ticc.cbs_req_tran_id
  JOIN owner_int.vh_obs_bc_bankaccount bba
    ON bba.idbankaccount = brt.idbankaccountcredit
  JOIN owner_int.vh_obs_bc_person bpe
    ON bpe.idperson = bba.idperson
  JOIN ap_it.t_ib_tbl_ib_user tiu
    ON tiu.cuid = bpe.personextid;

select count(1) from ap_it.t_ib_tbl_ib_card_cnp_transfer t; -- 89 333
select count(1) from ap_it.t_ib_tbl_ib_bank_account t; -- 97 458
select count(1) from owner_int.vh_obs_bc_realizedtransaction t; -- 1 423 789 583
select count(1) from owner_int.vh_obs_bc_bankaccount t;  -- 86 080 300
select count(1) from owner_int.vh_obs_bc_person t; -- 4 670 722
select count(1) from ap_it.t_ib_tbl_ib_user t; -- 3 902 449
7 мар 18, 09:02    [21242386]     Ответить | Цитировать Сообщить модератору
 Re: Оптимизация запроса  [new]
Elic
Member

Откуда:
Сообщений: 29990
akaipbay
Несколько небольших таблиц соединяю с большими таблицами.
Ты вот скажи, а на кой ляд те сдался весь лярд транзакций?
7 мар 18, 09:44    [21242447]     Ответить | Цитировать Сообщить модератору
 Re: Оптимизация запроса  [new]
akaipbay
Member

Откуда:
Сообщений: 109
Elic, да согласен с Вами. Ярд мне незачем, не знаю как урезать эту большую таблицу производительным способом.
7 мар 18, 11:52    [21242846]     Ответить | Цитировать Сообщить модератору
 Re: Оптимизация запроса  [new]
Alexander_Ttl
Member

Откуда: Новосибирск
Сообщений: 158
akaipbay, так нужно урезать или оптимизировать запрос? Это разные задачи.
7 мар 18, 12:19    [21242973]     Ответить | Цитировать Сообщить модератору
 Re: Оптимизация запроса  [new]
akaipbay
Member

Откуда:
Сообщений: 109
Alexander_Ttl, оптимизировать
7 мар 18, 12:24    [21242984]     Ответить | Цитировать Сообщить модератору
 Re: Оптимизация запроса  [new]
Alexander_Ttl
Member

Откуда: Новосибирск
Сообщений: 158
akaipbay, напишите поподробнее, цель какая и в чем сложность? Выгрузить таблицу целиком? В запросе нет ни одного ограничивающего условия, поэтому оптимизатор использует план, который даст максимальную скорость для выборки всех строк таблицы. Вполне логично, что сначала придется подождать. Если нужно первые n строк, то поможет хинт FIRST_ROWS
7 мар 18, 12:38    [21243016]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить