Perbedaan Antara Tampilan dan Tampilan yang Terwujud

Anonim

Lihat vs Tampilan Terwujud

pilih * dari viewname

Lihat

Seperti yang disebutkan sebelumnya, view adalah tabel virtual, yang menyembunyikan permintaan pilih. Kueri pilihan ini tidak dieksekusi sebelumnya. Saat kita mengeksekusi sebuah pernyataan pilih dari suatu tampilan, ia mengeksekusi pernyataan pilih yang ada di dalam badan tampilan. Mari kita asumsikan pernyataan pilih dari view body sebagai pernyataan yang sangat kompleks. Jadi ketika dijalankan, dibutuhkan beberapa waktu untuk mengeksekusi (relatif lebih banyak waktu). Selain itu, tampilan menggunakan ruang yang sangat kecil untuk menyimpan sendiri. Itu karena hanya ada pernyataan pilih sebagai isinya.

Tampilan Terwujud (Mview)

Ini adalah jenis tampilan khusus. Mview dibuat saat kami memiliki masalah kinerja dengan tampilan. Saat kita membuat sebuah mview, ia menjalankan query pilihnya dan menyimpan hasilnya sebagai tabel snapshot. Saat kami meminta data dari Mview, kami tidak perlu mengeksekusi pernyataan pilihnya. Ini memberi keluaran dari tabel snapshot-nya. Oleh karena itu, waktu eksekusi mview kurang dari tampilan (untuk pernyataan pilih yang sama). Namun, mview tidak dapat digunakan sepanjang waktu, karena menampilkan output yang sama, yang disimpan sebagai tabel snapshot. Kita harus me-refresh mview untuk mendapatkan hasil set terakhirnya.

Apa perbedaan antara View dan Mview ?

1. Mview selalu menyimpan hasilnya sebagai tabel snapshot saat dibuat, tapi tampilan tidak membuat tabel apapun.

2. Tampilan tidak membutuhkan ruang besar untuk menyimpan isinya, namun mview membutuhkan ruang yang relatif lebih besar daripada tampilan untuk menyimpan isinya (seperti tabel snapshot).

3. Tampilan membutuhkan waktu eksekusi yang lebih besar, namun mview membutuhkan waktu eksekusi yang lebih kecil daripada tampilan (untuk pernyataan pilih yang sama).

4. Mviews perlu disegarkan untuk mendapatkan data terbarunya, namun tampilan selalu memberikan data terbaru.

5. Skema kebutuhan "membuat tampilan terwujud" untuk menciptakan mview, dan untuk dilihat, dibutuhkan "create view" privilege.

6. Indeks dapat dibuat pada mview untuk mendapatkan kinerja lebih banyak, namun indeks tidak dapat dibuat berdasarkan tampilan.