Perspektywy materializowane

Autor: Marcin Kasiński
21.01.2011 13:24:00 +0200

Perspektywy materializowane są lokalna replika odległej bazy danych. Rozróżniamy perspektywy materializowane tylko do odczytu lub modyfikowalne. Innym podziałem takich perspektyw jest podział na proste i złożone. Perspektywy proste jak sama nazwa wskazuje opierają się na prostych zapytaniach, które nie zawierają agregacji, klauzuli connect by złączeń lub operacji ustawień. Jeśli perspektywa opiera się na zapytaniu zawierającym powyższe klauzule określamy jako złożone. Ważne jest ze w przypadku perspektyw złożonych zawsze następuje replikacja całkowita. W przypadku perspektyw prostych natomiast możemy wybrać pomiędzy replikacją całkowitą a replikacją przyrostową. Aby móc korzystać z takiej perspektywy najpierw należy stworzyć połączenie lokalnej bazy danych ze zdalna baza. Połączenie takie tworzy się poleceniem:


Create database link db_link
connect to user_name identyfied by user_password
using 'service'

gdzie:

  • db_linknazwa połączenia
  • user_namenazwa użytkownika odległej bazy danych
  • user_passwordhasło tego użytkownika
  • servicenazwa usługi lub serwisu odległej bazy danych

Przykład polecenia tworzącego taka perspektywę na lokalnym serwerze może mięć postać:

Create snapshot local_view
pctfree 5
tablespace datas
storage (initial 100K next 100K pctincrease 0)
refresh fast
start with SysDate
next SysDate +1
as select * from emp@link_name;

Polecenie to tworzy perspektywę materializowana dla prostych zapytań, co widać po zapytaniu. Klauzula refresh fast oznacza, że będzie tu wykonywana replikacja przyrostowa. Jeśli chcielibyśmy, aby replikacja była całkowita musimy użyć klauzuli refresh complete. W przypadku perspektyw złożonych nie mamy wyboru i musimy użyć klauzuli refresh complete. Dodatkowo klauzula refresh fast mówi nam, że do replikacji danych wykorzystamy dodatkowy obiekt bazy danych, dziennik perspektywy. Obiekt ten tworzy się po stronie nadrzędnej zdalnej bazy w tym samym schemacie, co tabela, do której się odwołuje.

Przykład takiego polecenia może mięć postać:

Create materialized view log on emp
tablespace big_datas
storage (initial 10K next 10K pctincrease 0)

Wywoływanie odległych procedur

Tak samo jak zapytania SQL na zdalnym serwerze możemy z naszej lokalnej bazy również wywoływać zdalne procedury. Dla zdalnej procedury calc (id IN NUMBER), aby ją wykonać na lokalnym serwerze poprzez połączenie db_link wykonujemy polecenie:

execute calc@db_link(1265);

powrót
Zachęcam do przedstawienia swoich uwag i opinii w polu komentarzy.

Komentarze

Dodaj Komentarz