Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menggunakan SUMMARY tampilan SVL QUERY _ _
Untuk menganalisis informasi ringkasan kueri dengan streaming menggunakanSVL_QUERY_SUMMARY, lakukan hal berikut:
-
Jalankan kueri berikut untuk menentukan ID kueri Anda:
select query, elapsed, substring from svl_qlog order by query desc limit 5;
Periksa teks kueri terpotong di
substring
bidang untuk menentukanquery
nilai mana yang mewakili kueri Anda. Jika Anda telah menjalankan kueri lebih dari sekali, gunakanquery
nilai dari baris denganelapsed
nilai yang lebih rendah. Itu adalah baris untuk versi yang dikompilasi. Jika Anda telah menjalankan banyak kueri, Anda dapat meningkatkan nilai yang digunakan oleh LIMIT klausa yang digunakan untuk memastikan bahwa kueri Anda disertakan. -
Pilih baris dari SVL _ QUERY _ SUMMARY untuk kueri Anda. Urutkan hasil berdasarkan aliran, segmen, dan langkah:
select * from svl_query_summary where query = MyQueryID order by stm, seg, step;
Berikut ini adalah contoh hasil.
-
Petakan langkah-langkah untuk operasi dalam rencana kueri menggunakan informasi diMemetakan rencana kueri ke ringkasan kueri. Mereka harus memiliki nilai yang kira-kira sama untuk baris dan byte (baris * lebar dari rencana kueri). Jika tidak, lihat solusi Statistik tabel hilang atau kedaluwarsa yang direkomendasikan.
-
Lihat apakah
is_diskbased
bidang memiliki nilait
(true) untuk setiap langkah. Hash, agregat, dan sortir adalah operator yang cenderung menulis data ke disk jika sistem tidak memiliki cukup memori yang dialokasikan untuk pemrosesan kueri.Jika
is_diskbased
benar, lihat Memori tidak cukup dialokasikan untuk kueri solusi yang direkomendasikan. -
Tinjau nilai
label
bidang dan lihat apakah ada AGG-DIST-AGG urutan di mana saja dalam langkah-langkahnya. Kehadirannya menunjukkan agregasi dua langkah, yang mahal. Untuk memperbaikinya, ubah klausa GROUP BY untuk menggunakan kunci distribusi (kunci pertama, jika ada beberapa kunci). -
Tinjau
maxtime
nilai untuk setiap segmen (sama di semua langkah di segmen). Identifikasi segmen denganmaxtime
nilai tertinggi dan tinjau langkah-langkah di segmen ini untuk operator berikut.catatan
maxtime
Nilai tinggi tidak selalu menunjukkan masalah dengan segmen. Meskipun nilainya tinggi, segmen ini mungkin tidak membutuhkan waktu lama untuk diproses. Semua segmen dalam aliran mulai diatur waktunya secara serempak. Namun, beberapa segmen hilir mungkin tidak dapat berjalan sampai mereka mendapatkan data dari segmen hulu. Efek ini mungkin membuat mereka tampak memakan waktu lama karenamaxtime
nilainya mencakup waktu tunggu dan waktu pemrosesan mereka.-
BCASTatau DIST: Dalam kasus ini,
maxtime
nilai tinggi mungkin merupakan hasil dari mendistribusikan kembali sejumlah besar baris. Untuk solusi yang direkomendasikan, lihatDistribusi data suboptimal. -
HJOIN(hash join): Jika langkah yang dimaksud memiliki nilai yang sangat tinggi di
rows
bidang dibandingkan denganrows
nilai pada RETURN langkah terakhir dalam kueri, lihat solusi yang Hash bergabung direkomendasikan. -
SCAN/SORT: Carilah MERGE urutan langkah SCAN SORTSCAN,,, tepat sebelum langkah bergabung. Pola ini menunjukkan bahwa data yang tidak disortir sedang dipindai, diurutkan, dan kemudian digabungkan dengan area tabel yang diurutkan.
Lihat apakah nilai baris untuk SCAN langkah memiliki nilai yang sangat tinggi dibandingkan dengan nilai baris pada RETURN langkah terakhir dalam kueri. Pola ini menunjukkan bahwa mesin eksekusi memindai baris yang kemudian dibuang, yang tidak efisien. Untuk solusi yang direkomendasikan, lihatPredikat yang tidak cukup membatasi.
Jika
maxtime
nilai untuk SCAN langkah tinggi, lihat solusi Klausa WHERE suboptimal yang direkomendasikan.Jika
rows
nilai untuk SORT langkah ini bukan nol, lihat solusi yang Baris yang tidak disortir atau disortir direkomendasikan.
-
-
Tinjau
rows
danbytes
nilai untuk 5-10 langkah yang mendahului RETURN langkah terakhir untuk mendapatkan gambaran tentang jumlah data yang dikembalikan ke klien. Proses ini bisa menjadi sedikit seni.Misalnya, dalam ringkasan kueri contoh berikut, PROJECT langkah ketiga memberikan
rows
nilai, tetapi bukanbytes
nilai. Dengan melihat melalui langkah-langkah sebelumnya untuk satu denganrows
nilai yang sama, Anda menemukan SCAN langkah yang menyediakan informasi baris dan byte.Berikut ini adalah hasil sampel.
Jika Anda mengembalikan volume data yang luar biasa besar, lihat solusi yang Set hasil yang sangat besar direkomendasikan.
-
Lihat apakah
bytes
nilainya relatif tinggi terhadaprows
nilai untuk langkah apa pun, dibandingkan dengan langkah lainnya. Pola ini dapat menunjukkan bahwa Anda memilih banyak kolom. Untuk solusi yang direkomendasikan, lihatSELECTDaftar besar.