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

Откуда: г. Киев
Сообщений: 370
Здравствуйте!
Есть интересная задачка, которой пока не знаю оптимального решения:
существует некий процес который циклически запускает хранимые процедуры в базе, которые в своих селектах используют мат.витрины.
Также, в некорые моменты времени необходимо перестроить эти мат. витрины.
Понятно, что в момент перестройки витрин выполнение процедур будет невозможным.
У меня есть идея перед запуском перестройки мат. витрин выполнять проверку на использование этой витрины в данный момент.
Хотел спросить у возможно ли такое сделать, и будет ли это правильным?
Спасибо!!!!!
25 янв 08, 17:13    [5204887]     Ответить | Цитировать Сообщить модератору
 Re: вопрос о используемых обьектах БД  [new]
Ales Protiv
Member

Откуда: Прага
Сообщений: 1872
Если под мат. витринами подразумевается MATERIALIZED VIEWS, а под перестроить подразумевается сделать REFRESH, то никаких проблем не возникнет.
Или я не о том подумал?
25 янв 08, 17:31    [5204988]     Ответить | Цитировать Сообщить модератору
 Re: вопрос о используемых обьектах БД  [new]
Sashko81
Member

Откуда: Киев
Сообщений: 103
Ales Protiv
под мат. витринами подразумевается MATERIALIZED VIEWS

оригинальный перевод :)
25 янв 08, 18:12    [5205217]     Ответить | Цитировать Сообщить модератору
 Re: вопрос о используемых обьектах БД  [new]
qube
Member

Откуда:
Сообщений: 71
Session 1:

SQL*Plus: Release 10.2.0.1.0 - Production 

SQL> set timing on
SQL> drop materialized view mv_all_objects
  2  /

Materialized view dropped.

SQL> create materialized view mv_all_objects
  2  build immediate
  3  refresh complete on demand
  4  as
  5  select * from all_objects;

Materialized view created.

SQL>
SQL> select  count(*) from mv_all_objects;

  COUNT(*)
----------
     41101

SQL>
SQL> drop table  t_tmp;

Table dropped.

SQL>
SQL> create table t_tmp
  2  as
  3  select * from dual;

Table created.

SQL>
SQL> begin
  2  DBMS_MVIEW.refresh('MV_ALL_OBJECTS','C');
  3  end;
  4  /

PL/SQL procedure successfully completed.

SQL> select  count(*) from mv_all_objects;

  COUNT(*)
----------
     41103

SQL>


Session 2 :

--момент выполнения DBMS_MVIEW:

SQL> select  count(*) from mv_all_objects;

  COUNT(*)
----------
     41101

Elapsed: 00:00:00.95

--после выполнения выполнения DBMS_MVIEW:

SQL> select  count(*) from mv_all_objects;

  COUNT(*)
----------
     41103

Elapsed: 00:00:00.06
25 янв 08, 18:55    [5205384]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить