Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Data tanpa skema yang disimpan di SUPER dapat memengaruhi kinerja Amazon Redshift. Misalnya, filter predikat atau bergabung dengan kondisi karena pemindaian terbatas rentang tidak dapat menggunakan peta zona secara efektif. Pengguna dan alat BI dapat menggunakan pandangan terwujud sebagai presentasi data konvensional dan meningkatkan kinerja kueri analitis.
Kueri berikut memindai tampilan super_mv
dan filter yang terwujud. o_orderstatus
SELECT c.c_name, v.o_totalprice
FROM customer_orders_lineitem c
JOIN super_mv v ON c.c_custkey = v.c_custkey
WHERE v.o_orderstatus = 'F';
Periksa stl_scan
untuk memverifikasi bahwa Amazon Redshift tidak dapat menggunakan peta zona secara efektif pada pemindaian terbatas rentang. o_orderstatus
SELECT slice, is_rrscan FROM stl_scan
WHERE query = pg_last_query_id() AND perm_table_name LIKE '%super_mv%';
slice | is_rrscan
-------+-----------
0 | f
1 | f
5 | f
4 | f
2 | f
3 | f
(6 rows)
Contoh berikut menyesuaikan tampilan terwujud super_mv
untuk membuat kolom skalar dari data yang diparut. Dalam hal ini, Amazon Redshift beralih o_orderstatus
dari SUPER ke VARCHAR. Selain itu, tentukan o_orderstatus
sebagai kunci pengurutan untuksuper_mv
.
CREATE MATERIALIZED VIEW super_mv distkey(c_custkey) sortkey(c_custkey, o_orderstatus) AS (
SELECT c_custkey, o.o_orderstatus::VARCHAR AS o_orderstatus, o.o_totalprice, o_idx
FROM customer_orders_lineitem c, c.c_orders o AT o_idx
);
Setelah menjalankan kembali kueri, verifikasi bahwa Amazon Redshift sekarang dapat menggunakan peta zona.
SELECT v.o_totalprice
FROM super_mv v
WHERE v.o_orderstatus = 'F';
Anda dapat memverifikasi bahwa pemindaian terbatas rentang sekarang menggunakan peta zona sebagai berikut.
SELECT slice, is_rrscan FROM stl_scan
WHERE query = pg_last_query_id() AND perm_table_name LIKE '%super_mv%';
slice | is_rrscan
-------+-----------
0 | t
1 | t
2 | t
3 | t
4 | t
5 | t
(6 rows)