Apa yang dimaksud dengan tampilan terwujud di oracle
Tampilan yang terwujud adalah objek database yang berisi hasil query. Ini berbeda dari tampilan oracle sederhana. Tampilan terwujud ini memiliki data yang disimpan dan ketika Anda menanyakan tampilan terwujud, itu mengembalikan data dari data yang disimpan. Klausa FROM dari kueri dapat memberi nama tabel, tampilan, dan tampilan terwujud lainnya. Secara kolektif objek ini disebut tabel master (istilah replikasi) atau tabel detail (istilah data warehousing). Referensi ini menggunakan "tabel master" untuk konsistensi. Database yang berisi tabel master disebut database master.
Saat Anda membuat tampilan terwujud, Oracle Database membuat satu tabel internal dan setidaknya satu indeks Oracle, dan dapat membuat satu tampilan, semua dalam skema tampilan terwujud. Oracle Database menggunakan objek-objek ini untuk mempertahankan tampilan data yang terwujud. Anda harus memiliki hak istimewa yang diperlukan untuk membuat objek ini.
Hak istimewa diperlukan untuk membuat tampilan yang terwujud
Pengguna harus memiliki BUAT TAMPILAN MATERIALIZED untuk membuat tampilan terwujud
Sintaks Umum
CREATE MATERIALIZED VIEW BUILD [IMMEDIATE | DEFERRED] REFRESH [FAST | COMPLETE | FORCE ] ON [COMMIT | DEMAND ] [[ENABLE | DISABLE] QUERY REWRITE] [ON PREBUILT TABLE] AS ;
Penjelasan setiap istilah
BUILD [SEGERA | DITANGGUHKAN] | Kita dapat menentukan untuk segera diisi Atau kita dapat menentukan DEFERRED untuk diisi pada penyegaran pertama yang diminta. |
SEBARKAN [CEPAT | LENGKAP | KEKUATAN ] | Ada tiga opsi di sini. Masing-masing dijelaskan di bawah 1) CEPAT :Penyegaran cepat dicoba. Jika log tampilan yang dimaterialisasikan tidak ada di tabel sumber sebelumnya, pembuatannya akan gagal. 2) LENGKAP :Segmen tabel yang mendukung tampilan terwujud dipotong dan diisi ulang sepenuhnya menggunakan kueri terkait. 3) FORCE:Penyegaran cepat dicoba. Jika tidak memungkinkan, penyegaran lengkap dilakukan. |
AKTIF [KOMIT | PERMINTAAN ] | Kita dapat menentukan ON COMMIT sehingga refresh dipicu oleh perubahan data yang dilakukan di salah satu tabel dependen Atau kita dapat menentukan ON DEMAND sehingga refresh dimulai dengan permintaan manual atau tugas terjadwal. |
[[AKTIFKAN | NONAKTIFKAN] KURI TULIS ULANG] | Tampilan memenuhi syarat untuk penulisan ulang kueri |
CREATE MATERIALIZED VIEW mv_test
BUILD IMMEDIATE
REFRESH complete
ON demand AS
SELECT EMP.EMPNO,EMP.ENAME, DEPT.DEPTNO,DEPT.DNAME
FROM EMP,DEPT
where EMP.DEPTNO= DEPT.DEPTNO;
Penyegaran Tampilan Terwujud
Kami dapat menyegarkan tampilan yang terwujud melalui paket PLSQL DBMS_MVIEW
Paket DBMS_MVIEW berisi tiga API untuk melakukan operasi penyegaran:
DBMS_MVIEW.REFRESH
Segarkan satu atau beberapa tampilan yang terwujud.
DBMS_MVIEW.REFRESH_ALL_MVIEWS
Segarkan semua tampilan yang terwujud.
DBMS_MVIEW.REFRESH_DEPENDENT
Refresh semua tampilan terwujud yang bergantung pada tabel master tertentu atau tampilan terwujud atau daftar tabel master atau tampilan terwujud.
EXECUTE DBMS_MVIEW.REFRESH('MV_TEST','C');
Here C stands for Complete refresh
Jika Anda mencoba melakukan refresh cepat, gunakan perintah di bawah ini
EXECUTE DBMS_MVIEW.REFRESH('MV_TEST','F');
Here F stands for fast Refresh
Ini akan menimbulkan kesalahan, karena tidak ada log tampilan yang terwujud. kami akan memeriksa log tampilan terwujud di bawah ini
Dengan Oracle 12c, Oracle telah memperkenalkan API DBMS_SYNC_REFRESH baru untuk penyegaran
Apa itu Oracle Materialized View Log
Saat perubahan DML dibuat untuk menguasai data tabel, Oracle Database menyimpan baris yang menjelaskan perubahan tersebut dalam log tampilan yang terwujud dan kemudian menggunakan log tampilan terwujud untuk menyegarkan tampilan terwujud berdasarkan tabel master. Proses ini disebut penyegaran tambahan atau penyegaran cepat. Tanpa log tampilan yang terwujud, Oracle Database harus mengeksekusi ulang permintaan tampilan yang terwujud untuk menyegarkan tampilan yang terwujud. Proses ini disebut penyegaran lengkap. Biasanya, penyegaran cepat membutuhkan waktu lebih sedikit daripada penyegaran penuh.
Log tampilan terwujud terletak di database master dalam skema yang sama seperti tabel master. Tabel master hanya dapat memiliki satu log tampilan terwujud yang ditentukan di atasnya. Oracle Database dapat menggunakan log tampilan terwujud ini untuk melakukan penyegaran cepat untuk semua tampilan terwujud yang dapat diperbarui dengan cepat berdasarkan tabel master.
Untuk menyegarkan tampilan gabungan yang terwujud dengan cepat, Anda harus membuat log tampilan yang terwujud untuk setiap tabel yang dirujuk oleh tampilan yang terwujud.
Segarkan Grup
Grup penyegaran adalah kumpulan dari satu atau lebih tampilan terwujud yang di-refresh Oracle dalam transaksi atom, menjamin bahwa hubungan di antara tabel master dipertahankan
Contoh:
CREATE MATERIALIZED VIEW mv_test
TABLESPACE test_data
BUILD IMMEDIATE
REFRESH complete ON COMMIT AS
SELECT a.name,b.salary FROM [email protected]_LINK a, [email protected]_LINK b where a.emp_id=b.emp_id;CREATE MATERIALIZED VIEW mv_test
TABLESPACE test_data
BUILD IMMEDIATE
REFRESH force ON COMMIT AS
SELECT a.name,b.salary FROM [email protected]_LINK a, [email protected]_LINK b where a.emp_id=b.emp_id;CREATE MATERIALIZED VIEW LOG ON emp;exec DBMS_REFRESH.MAKE(name=>'test_grp', -
list=>'test_mv1,test_mv2','mv_test' -
next_date => sysdate, -
interval => 'null');exec DBMS_REFRESH.REFRESH('test_grp');
Cara memeriksa status tampilan Terwujud
SELECT MVIEW_NAME, STALENESS, LAST_REFRESH_TYPE, COMPILE_STATE
FROM USER_MVIEWS ORDER BY MVIEW_NAME;
Opsi Penyegaran di Luar Tempat untuk Tampilan yang terwujud
Dengan 12c Rilis 1, opsi penyegaran baru tersedia untuk meningkatkan kinerja dan ketersediaan penyegaran tampilan yang terwujud. Opsi penyegaran ini disebut penyegaran di luar tempat karena menggunakan tabel luar selama penyegaran sebagai lawan dari penyegaran "di tempat" yang ada yang secara langsung menerapkan perubahan ke tabel penampung tampilan yang terwujud. Opsi penyegaran tidak pada tempatnya bekerja dengan semua metode penyegaran yang ada, seperti FAST ('F'), COMPLETE ('C'), PCT ('P'), dan FORCE ('?').
Penyegaran di luar tempat sangat efektif saat menangani situasi dengan perubahan data dalam jumlah besar, di mana pernyataan DML konvensional tidak dapat diskalakan dengan baik. Ini juga memungkinkan Anda untuk mencapai tingkat ketersediaan yang sangat tinggi karena tampilan terwujud yang sedang disegarkan dapat digunakan untuk akses langsung dan penulisan ulang kueri selama eksekusi pernyataan penyegaran.
Dalam penyegaran yang tidak pada tempatnya, seluruh atau bagian yang terpengaruh dari tampilan terwujud dihitung menjadi satu atau beberapa tabel luar.
exec dbms_mview.refresh('MV_TEST', out_of_place=>true, atomic_refresh=>false) ;
Perbedaan Antara Tampilan Terwujud dan Tampilan Oracle
Seperti dijelaskan di atas Tampilan material berbasis disk dan diperbarui secara berkala berdasarkan definisi kueri. Dalam tampilan terwujud, kumpulan hasil disimpan dalam tabel tampilan terwujud
Tampilan hanya virtual dan menjalankan definisi kueri setiap kali diakses. Dalam tampilan, tidak ada kumpulan hasil yang disimpan dan mengakses tabel yang mendasari setiap kali tampilan diakses
Juga Dibaca
Oracle Bergabung
Subkueri Oracle
https://en.wikipedia.org/wiki/Materialized_view