Tampilan terwujud memungkinkan Anda untuk menyimpan hasil kueri kompleks secara fisik dan memperbaruinya secara berkala. Jadi mereka berguna dalam kasus di mana Anda memerlukan akses data cepat untuk pelaporan dan intelijen bisnis. Berikut cara membuat tampilan terwujud di PostgreSQL.
Tampilan PostgreSQL vs Tampilan Terwujud
Tampilan terwujud mirip dengan tampilan PostgreSQL yang memungkinkan Anda menyimpan kueri SQL untuk memanggilnya nanti. Namun, tampilan PostgreSQL memungkinkan Anda untuk menyimpan hanya kueri SQL dan bukan hasilnya. Tampilan terwujud memungkinkan Anda untuk menyimpan hasil kueri secara fisik, dan memperbaruinya secara berkala. Hasilnya, tampilan yang terwujud lebih cepat daripada tampilan PostgreSQL.
Bonus Baca :Cara Mendapatkan Baris Terakhir Per Grup di PostgreSQL
Cara Membuat Tampilan Terwujud di PostgreSQL
Anda dapat membuat tampilan termaterialisasi di PostgreSQL menggunakan pernyataan CREATE MATERIALIZED VIEW seperti yang ditunjukkan di bawah ini.
CREATE MATERIALIZED VIEW view_name AS query WITH [NO] DATA;
Dalam pernyataan di atas, Anda perlu menyebutkan view_name serta kueri yang hasilnya ingin Anda simpan dalam tampilan terwujud.
Terakhir, Anda juga dapat menentukan opsi WITH DATA jika Anda ingin memuat data ke tampilan pada saat pembuatannya. Jika Anda menyebutkan TANPA DATA, tampilan akan ditandai sebagai tidak dapat dibaca dan Anda tidak akan dapat meminta data dari tampilan hingga Anda memuat data ke dalamnya.
Bonus Baca :Fungsi Buat PostgreSQL
Refresh Tampilan Terwujud PostgreSQL
Anda dapat memuat data ke tampilan terwujud menggunakan pernyataan REFRESH MATERIALIZED VIEW seperti yang ditunjukkan
REFRESH MATERIALIZED VIEW view_name
Anda juga dapat menggunakan pernyataan di atas untuk menyegarkan tampilan yang terwujud.
Harap dicatat, pernyataan REFRESH MATERIALIZED VIEW mengunci data kueri sehingga Anda tidak dapat menjalankan kueri terhadapnya. Anda dapat menghindarinya menggunakan opsi CONCURRENTLY
REFRESH MATERIALIZED VIEW CONCURRENTLY view_name
Dalam hal ini, PostgreSQL membuat tampilan sementara, membandingkannya dengan yang asli dan membuat penyisipan, pembaruan, dan penghapusan yang diperlukan. Akibatnya, opsi CONCURRENTLY hanya tersedia untuk tampilan terwujud yang memiliki indeks unik.
Untuk menyegarkan tampilan yang terwujud secara otomatis secara berkala, Anda dapat menjalankan REFRESH MATERIALIZED VIEW melalui skrip otomatis.
Bonus Baca :PostgreSQL Buat Skema
Hapus tampilan yang terwujud
Anda dapat menghapus tampilan material menggunakan pernyataan DROP MATERIALIZED VIEW.
DROP MATERIALIZED VIEW view_name
Contoh Tampilan Terwujud
Mari kita lihat beberapa contoh tampilan yang terwujud.
Inilah kueri untuk membuat tampilan terwujud yang disebut sample_view
postgres=# create materialized view sample_view as select * from sales with no data;
Dalam kueri di atas kami telah menyebutkan opsi TANPA DATA sehingga tampilan tidak akan memiliki data apa pun dan akan memberikan kesalahan saat kami mencoba mengkuerinya.
postgres=# select * from sample_view; ERROR: materialized view "sample_view" has not been populated HINT: Use the REFRESH MATERIALIZED VIEW command.
Sekarang kita akan menyegarkan tampilan untuk memuat data ke dalamnya dan kemudian menjalankan kueri di atas terhadap tampilan kita.
postgres=# refresh materialized view sample_view; REFRESH MATERIALIZED VIEW postgres=# select * from sample_view; order_date | sale ------------+------ 2020-04-01 | 210 2020-04-02 | 125 2020-04-03 | 150 2020-04-04 | 230 2020-04-05 | 200 2020-04-10 | 220 2020-04-06 | 250 2020-04-07 | 215 2020-04-08 | 300 2020-04-09 | 250
Seperti yang Anda lihat di atas, ketika kami menjalankan kueri kami lagi, kami mendapatkan hasilnya.
Mudah-mudahan, sekarang Anda dapat dengan mudah membuat tampilan material untuk database Anda.
Ubiq memudahkan untuk memvisualisasikan data dalam hitungan menit, dan memantau di dasbor waktu nyata. Cobalah Hari Ini!