Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

apa pandangan terwujud di oracle?

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQLRecoverableException:Pengecualian I/O:Reset koneksi

  2. 50 Nuansa Ujian Sertifikasi Database Oracle

  3. Bagaimana cara menggunakan urutan Oracle yang ada untuk menghasilkan id dalam hibernasi?

  4. Kueri yang menampilkan gabungan luar berperilaku berbeda di Oracle 12c

  5. periksa apakah itu fungsi angka di Oracle