Re: ускорить select через database link Oracle
От: DrDred Россия  
Дата: 16.06.10 04:44
Оценка:
Здравствуйте, Wit, Вы писали:

Wit>Здравствуйте! Можно ли ускорить выполнение такого запроса:


Wit>
Wit>select f1,f2,(select p1 from t1 where p2 = table1.f3) as f3 from table1@db1 
Wit>

Wit>т/е по некоторым полям из таблицы table1 с базы db1 подставляем значения таблицы t1 текущей БД


Wit>запрос select f1,f2,f3 from table1@db1 выполняется пару секунд, а тот что выше раз в 100 дольше. t1 проиндексирована


Можно попробовать переписать его по-нормальному, чтобы дать шанс оптимизатору Оракла

select dt.f1, dt.f2, t1.p1
  from table1@db1 dt
       join t1 on t1.p2 = dt.f3


Если не поможет, можно попробовать вариант с materialized view.
1. Делаем

create materialized view table1_db1 as select * from table1@db1


2. Далее работаем с ней как с обычной таблицей, не забывая делать refresh когда нужны свежие данные

На самом деле, это очень приблизительное описание идеи, реализация сильно зависит от существующей ситуации и требований
--
WBR, Alexander
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.