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

Откуда:
Сообщений: 11
Доброго времени суток!
v. 11.2.0.1.0
Создал я несколько мат. вьюх копирующих содержимое с внешней БД(foxpro через драйвер ODBC) и установил обновляться 1 раз 3 часа.
Вот так:
create materialized view YGPX_S
refresh complete on demand
start with to_date('14-01-2015 16:49:55', 'dd-mm-yyyy hh24:mi:ss') next SYSDATE + NUMTODSINTERVAL(3, 'hour') 
as select * from ygpx_s@dbf.odbc_mfv;


Через некоторое время зависает refresh некоторых вьюх и приходится удалять сессию вручную, но при этом можно сделать селект к этой таблице без всяких проблем. Повисает даже
Create table ygpx_test as select * from ygpx@dbf
Где-то в нете нашёл что надо ставить NOLOGGING к вьюшке, но безрезультатно.

Есть ещё вариант создать простую таблицу и Job с DELETE-INSERT к этой таблице, но он тоже иногда повисает, хотя и намного реже. Job с таким кодом:
BEGIN   
   DELETE FROM RASK_SIST;      
   INSERT INTO RASK_SIST
          (cex, ndet, ndu, kol, uch, naim, data_v, mm, pr, god, rez)
   SELECT * FROM RASK_SIST@dbf.odbcdbf;        
     COMMIT;
END;

Я так понимаю что можно создать ещё Job который будет проверять не повис ли Job который обновляет таблицы, но как-то хотелось чтобы мат. вьюхи пахали. Можно как-то исправить? Может ли быть проблема в драйвере к FoxPro и какую его версию лучше юзать?
14 янв 15, 16:07    [17117744]     Ответить | Цитировать Сообщить модератору
 Re: Материальзованные представления и dblink  [new]
Изя Кацман
Member

Откуда: Великий Эксперимент
Сообщений: 2019
Камрад alexlisp,

Помониторь на чем именно они подвисают
- на DELETE?
- не INSERT?

Предполагаю, что подвисают на DELETE при удалении всех старых строк
15 янв 15, 12:55    [17121865]     Ответить | Цитировать Сообщить модератору
 Re: Материальзованные представления и dblink  [new]
alexlisp
Member

Откуда:
Сообщений: 11
Изя Кацман,

Зависает всегда на инсертах. Вот что я вижу в сессии:
INSERT /*+ BYPASS_RECURSIVE_CHECK */ INTO "VGW"."SPROBORUD" select to_number("nom") as inventory_num,
       "naim" as name,
       "cex" as id_division
  from sproborud@dbf.odbc_mfv
17 янв 15, 09:28    [17131553]     Ответить | Цитировать Сообщить модератору
 Re: Материальзованные представления и dblink  [new]
andreymx
Member

Откуда: Запорожье
Сообщений: 54381
Читаю дбф-ки по фтп в блоб и затем распарсиваю скриптом Кайта. Путь не лучший, но работает много лет
17 янв 15, 09:54    [17131566]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить