Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Penulisan ulang kueri otomatis untuk menggunakan tampilan terwujud
Anda dapat menggunakan penulisan ulang kueri otomatis dari tampilan terwujud di Amazon Redshift agar kueri penulisan ulang Amazon Redshift menggunakan tampilan terwujud. Melakukan hal ini mempercepat beban kerja kueri bahkan untuk kueri yang tidak secara eksplisit mereferensikan tampilan yang terwujud. Saat Amazon Redshift menulis ulang kueri, Amazon Redshift hanya menggunakan tampilan terwujud yang mutakhir.
Catatan penggunaan
Untuk memeriksa apakah penulisan ulang kueri secara otomatis digunakan untuk kueri, Anda dapat memeriksa rencana kueri atau STL_EXPLOW. Berikut ini menunjukkan pernyataan SELECT dan output EXPLORE dari rencana query asli.
SELECT catgroup, SUM(qtysold) AS sold FROM category c, event e, sales s WHERE c.catid = e.catid AND e.eventid = s.eventid GROUP BY 1; EXPLAIN XN HashAggregate (cost=920021.24..920021.24 rows=1 width=35) -> XN Hash Join DS_BCAST_INNER (cost=440004.53..920021.22 rows=4 width=35) Hash Cond: ("outer".eventid = "inner".eventid) -> XN Seq Scan on sales s (cost=0.00..7.40 rows=740 width=6) -> XN Hash (cost=440004.52..440004.52 rows=1 width=37) -> XN Hash Join DS_BCAST_INNER (cost=0.01..440004.52 rows=1 width=37) Hash Cond: ("outer".catid = "inner".catid) -> XN Seq Scan on event e (cost=0.00..2.00 rows=200 width=6) -> XN Hash (cost=0.01..0.01 rows=1 width=35) -> XN Seq Scan on category c (cost=0.00..0.01 rows=1 width=35)
Berikut ini menunjukkan output EXPLORE setelah penulisan ulang otomatis berhasil. Output ini mencakup pemindaian pada tampilan terwujud dalam rencana kueri yang menggantikan bagian dari rencana kueri asli.
* EXPLAIN XN HashAggregate (cost=11.85..12.35 rows=200 width=41) -> XN Seq Scan on mv_tbl__tickets_mv__0 derived_table1 (cost=0.00..7.90 rows=790 width=41)
Hanya tampilan terwujud up-to-date (segar) yang dipertimbangkan untuk penulisan ulang kueri secara otomatis, terlepas dari strategi penyegaran, seperti auto, terjadwal, atau manual. Oleh karena itu, kueri asli mengembalikan up-to-date hasil. Saat tampilan terwujud direferensikan secara eksplisit dalam kueri, Amazon Redshift mengakses data yang saat ini disimpan dalam tampilan terwujud. Data ini mungkin tidak mencerminkan perubahan terbaru dari tabel dasar tampilan terwujud.
Anda dapat menggunakan penulisan ulang kueri otomatis dari tampilan terwujud yang dibuat pada klaster versi 1.0.20949 atau yang lebih baru.
Anda dapat menghentikan penulisan ulang kueri otomatis pada tingkat sesi dengan menggunakan SET mv_enable_aqmv_for_session ke FALSE.
Cara kerja penulisan ulang kueri otomatis dari tampilan terwujud
Berdasarkan pengoptimalan internal, Amazon Redshift dapat memutuskan untuk memanggil penulisan ulang kueri otomatis dari tampilan terwujud secara transparan untuk memberikan eksekusi kueri yang paling optimal dengan waktu kueri serendah mungkin.
Misalnya, Pengguna A membuat tampilan terwujud M1 pada tabel T1 dengan kueri. SELECT * FROM T1
Pengguna A memiliki hak pilih penuh di T1. Pengguna A memberikan akses ke M1 ke semua pengguna, termasuk Pengguna B. Namun, ketika Pengguna B mencoba menanyakan T1 secara langsung, mereka ditolak aksesnya. Ini karena Pengguna B tidak memiliki hak SELECT pada T1.
Beberapa waktu kemudian, Pengguna B kembali mencoba untuk query T1, tetapi kali ini mendapatkan hasil kembali dari T1. Ini karena penulisan ulang kueri otomatis menggunakan tampilan terwujud menulis ulang kueri Pengguna B pada tabel T1 (SELECT <cols> FROM
T1
) ke kueri pada tampilan terwujud M1 (). SELECT
<cols> FROM M1
Batasan
Berikut ini adalah batasan untuk menggunakan penulisan ulang kueri otomatis dari tampilan terwujud:
Penulisan ulang kueri otomatis berfungsi dengan tampilan terwujud yang tidak mereferensikan atau menyertakan salah satu dari berikut ini:
Subkueri
Gabungan luar kiri, kanan, atau penuh
Tetapkan operasi
Semua fungsi agregat, kecuali SUM, COUNT, MIN, MAX, dan AVG. (Ini adalah satu-satunya fungsi agregat yang bekerja dengan penulisan ulang kueri otomatis.)
Setiap fungsi agregat dengan DISTINCT
Fungsi jendela apa pun
PILIH Klausul DISTINCT atau HAVING
Tabel eksternal atau bersama
Pandangan terwujud lainnya
Penulisan ulang kueri otomatis menulis ulang kueri SELECT yang merujuk ke tabel Amazon Redshift yang ditentukan pengguna. Amazon Redshift tidak menulis ulang kueri berikut:
BUAT TABEL SEBAGAI pernyataan
Pernyataan SELECT INTO
Kueri pada katalog atau tabel sistem
Kueri dengan gabungan luar atau klausa SELECT DISTINCT
Jika kueri tidak ditulis ulang secara otomatis, periksa apakah Anda memiliki izin SELECT pada tampilan terwujud yang ditentukan dan mv_enable_aqmv_for_session opsi disetel ke TRUE.
Anda juga dapat memeriksa apakah tampilan terwujud Anda memenuhi syarat untuk penulisan ulang kueri secara otomatis dengan memeriksa STV_MV_INFO. Untuk informasi selengkapnya, lihat STV_MV_INFO.