Spis treści
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
Komentarze
Dodaj Komentarz
Newsletter
Jeżeli chcesz być na bieżąco informowany o aktualnościach i poradach IT zapisz się do naszego newslettera.