Tentu.
Tampilan normal adalah kueri yang mendefinisikan tabel virtual -- Anda sebenarnya tidak memiliki data di tabel, Anda membuatnya dengan cepat dengan mengeksekusi.
Tampilan terwujud adalah tampilan di mana kueri dijalankan dan data disimpan dalam tabel yang sebenarnya.
Data dalam tampilan terwujud akan disegarkan saat Anda memerintahkannya.
Beberapa kasus penggunaan:
-
Kami memiliki beberapa instance Oracle di mana kami ingin memiliki data master pada satu instance, dan salinan data terkini pada instance lainnya. Kami tidak ingin berasumsi bahwa tautan basis data di antara mereka akan selalu aktif dan beroperasi. Jadi kami menyiapkan tampilan terwujud pada instance lain, dengan kueri seperti
select a,b,c from [email protected]
dan beri tahu mereka untuk menyegarkan setiap hari. -
Tampilan terwujud juga berguna dalam penulisan ulang kueri. Katakanlah Anda memiliki tabel fakta di gudang data dengan setiap buku yang pernah dipinjam dari perpustakaan, dengan tanggal dan peminjam. Dan staf itu secara teratur ingin tahu berapa kali sebuah buku telah dipinjam. Kemudian buat tampilan yang terwujud sebagai
select book_id, book_name, count(*) as borrowings from book_trans group by book_id, book_name
, atur untuk frekuensi pembaruan apa pun yang Anda inginkan -- biasanya frekuensi pembaruan untuk gudang itu sendiri. Sekarang jika seseorang menjalankan kueri seperti itu untuk buku tertentu terhadapbook_trans
tabel, kemampuan penulisan ulang kueri di Oracle akan cukup pintar untuk melihat tampilan yang terwujud daripada berjalan melalui jutaan baris dibook_trans
.
Biasanya, Anda membuat tampilan yang terwujud untuk alasan kinerja dan stabilitas -- jaringan yang tidak stabil, atau melakukan kueri yang panjang di luar jam kerja.