Menganalisis rencana kueri - Amazon Redshift

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Menganalisis rencana kueri

Sebelum menganalisis rencana kueri, Anda harus terbiasa dengan cara membacanya. Jika Anda tidak terbiasa membaca rencana kueri, kami sarankan Anda membaca Rencana kueri sebelum melanjutkan.

Jalankan EXPLAIN perintah untuk mendapatkan rencana kueri. Untuk menganalisis data yang disediakan oleh rencana kueri, ikuti langkah-langkah berikut:

  1. Identifikasi langkah-langkah dengan biaya tertinggi. Berkonsentrasilah untuk mengoptimalkannya saat melanjutkan langkah-langkah yang tersisa.

  2. Lihatlah jenis gabungannya:

    • Nested Loop: Gabungan seperti itu biasanya terjadi karena kondisi gabungan dihilangkan. Untuk solusi yang direkomendasikan, lihatLoop Bersarang.

    • Hash dan Hash Join: Gabungan hash digunakan saat menggabungkan tabel di mana kolom gabungan bukan kunci distribusi dan juga bukan kunci pengurutan. Untuk solusi yang direkomendasikan, lihatHash bergabung.

    • Gabung Gabung: Tidak diperlukan perubahan.

  3. Perhatikan tabel mana yang digunakan untuk penggabungan bagian dalam, dan yang mana untuk gabungan luar. Mesin kueri umumnya memilih tabel yang lebih kecil untuk sambungan bagian dalam, dan tabel yang lebih besar untuk gabungan luar. Jika pilihan seperti itu tidak terjadi, statistik Anda kemungkinan sudah ketinggalan zaman. Untuk solusi yang direkomendasikan, lihatStatistik tabel hilang atau kedaluwarsa.

  4. Lihat apakah ada operasi pengurutan berbiaya tinggi. Jika ada, lihat Baris yang tidak disortir atau disortir solusi yang direkomendasikan.

  5. Cari operator siaran berikut di mana ada operasi berbiaya tinggi:

    • DS_BCAST_INNER: Menunjukkan bahwa tabel disiarkan ke semua node komputasi. Ini bagus untuk meja kecil, tetapi tidak ideal untuk meja yang lebih besar.

    • DS_DIST_ALL_INNER: Menunjukkan bahwa semua beban kerja berada pada satu irisan.

    • DS_DIST_BOTH: Menunjukkan redistribusi berat.

    Untuk solusi yang direkomendasikan untuk situasi ini, lihatDistribusi data suboptimal.