Halaman ini menjelaskan komponen utama visualizer rencana kueri.
Visualizer rencana kueri di konsol Google Cloud membantu Anda memahami struktur rencana eksekusi yang dipilih Spanner untuk mengevaluasi kueri.
Visualizer menampilkan rencana sebagai grafik visual, sehingga memudahkan Anda menganalisis cara Spanner mengeksekusi kueri dan mengidentifikasi potensi bottleneck performa. Anda dapat menggunakan visualizer rencana kueri untuk melakukan salah satu hal berikut:
- Men-debug kueri lambat: menentukan bagian mana dari rencana kueri yang memerlukan paling banyak waktu atau resource.
- Memvalidasi pengoptimalan: bandingkan rencana kueri sebelum dan setelah melakukan perubahan (seperti menambahkan indeks atau menulis ulang gabungan) untuk memverifikasi peningkatan.
- Memahami perilaku kueri: pelajari cara Spanner memproses pernyataan SQL yang kompleks, termasuk join, agregasi, dan operasi terdistribusi.
Manfaat menggunakan visualizer rencana kueri
Rencana kueri bisa rumit. Visualizer menyederhanakan analisis rencana dengan menyediakan fitur berikut:
- Representasi grafis: menampilkan aliran data dari tabel dan indeks melalui berbagai operator ke hasil akhir.
- Insight performa: mengidentifikasi operator yang mahal dengan petunjuk visual untuk latensi dan konsumsi CPU yang tinggi.
- Visualisasi jumlah baris: menampilkan volume data di setiap langkah dengan indikator ketebalan garis.
- Statistik mendetail: memberikan statistik runtime spesifik untuk setiap operator.
Mengakses visualizer rencana kueri
Anda dapat mengakses visualizer rencana kueri di konsol Google Cloud melalui salah satu metode berikut:
- Spanner Studio: membuat rencana kueri on-demand live saat menulis dan menguji kueri.
- Query insights: melihat rencana kueri historis yang diambil sampelnya, yang diambil dari workload produksi dari waktu ke waktu.
Melihat paket on-demand di Spanner Studio
Untuk melihat rencana kueri sesuai permintaan untuk kueri di Spanner Studio:
Di konsol Google Cloud , buka halaman Instances Spanner.
Klik nama instance yang berisi database yang ingin Anda kueri.
Dalam daftar Databases, klik nama database Anda.
Di menu navigasi, klik Spanner Studio.
Di panel editor, masukkan kueri SQL Anda.
Klik Run.
Klik tab Explanation.
Melihat contoh paket di Query Insights
Untuk melihat rencana kueri historis yang diambil sampelnya di Query Insights:
Di konsol Google Cloud , buka halaman Instances Spanner.
Klik nama instance yang berisi database yang ingin Anda selidiki.
Di menu navigasi, klik Query Insights.
Pilih database dan rentang waktu yang ingin Anda analisis.
Di tabel TopN queries, klik kueri atau tag permintaan yang ingin Anda periksa.
Di grafik Query plans samples, klik titik sampel yang mewakili eksekusi kueri.
Di bagian Query plan visualizer, lihat rencana eksekusi visual.
Menjelajahi visualizer
Visualizer menampilkan rencana kueri sebagai directed acyclic graph (DAG).

Visualisasi rencana kueri mungkin berukuran besar, bergantung pada kueri yang Anda jalankan. Untuk menyembunyikan atau menampilkan detail, klik pemilih tampilan Expanded/Compact. Untuk memperbesar atau memperkecil, gunakan kontrol zoom.
Antarmuka visualizer menyediakan panel informasi berikut:
Untuk mendownload rencana kueri yang divisualisasikan, klik Download JSON. Untuk melihat rencana kueri di lain waktu, Anda dapat mengimpor profil JSON yang didownload kembali ke Spanner Studio. Jika Anda perlu memecahkan masalah performa, bagikan file JSON kepada tim dukungan Spanner.
Grafik asiklik rencana kueri
Logika yang digunakan Spanner untuk menjalankan kueri akan muncul sebagai DAG. Grafik menampilkan aliran data dari bawah ke atas. Tabel dan indeks muncul di bagian bawah, dan output kueri akhir muncul di bagian atas.
Setiap node dalam grafik diwakili oleh kartu. Setiap kartu mewakili iterator yang menggunakan baris dari inputnya dan menghasilkan baris untuk induknya.
Garis yang menghubungkan kartu mewakili alur baris di antara iterator. Ketebalan garis menunjukkan jumlah relatif baris yang diteruskan. Garis yang lebih tebal menunjukkan lebih banyak baris.
Setiap kartu pada grafik berisi informasi berikut:
- Nama iterator: nama iterator.
- Statistik runtime: jumlah baris yang ditampilkan, latensi, dan penggunaan CPU.
Klik kartu untuk melihat informasi selengkapnya tentang latensi, penggunaan CPU, baris yang ditampilkan, jumlah eksekusi, dan jumlah grup mesin.
Untuk mengetahui informasi selengkapnya tentang operator, lihat Operator eksekusi kueri.
Kueri Spanner sering kali mengambil data dari beberapa pemisahan database. Grup mesin mewakili serangkaian operator eksekusi kueri yang berdekatan yang dijalankan bersama untuk serangkaian pemisahan. Dalam satu grup mesin, operator dijalankan secara berurutan dari bawah ke atas, sedangkan grup mesin yang berbeda dijalankan secara paralel. Saat data berpindah di antara pemisahan di seluruh batas grup mesin, data tersebut akan melewati remote procedure call (RPC).
Untuk mengetahui informasi selengkapnya tentang pemisahan, lihat Pemisahan database.
Visualizer membantu Anda membedakan antara distribusi logis dan fisik:
- Batas logis: Kartu berlabel Distributed menunjukkan tempat perencana kueri membagi logika kueri.
- Distribusi fisik: Warna grup mesin pada grafik mewakili eksekusi fisik aktual yang berasal dari statistik runtime.
Batas fisik sering kali selaras dengan operator terdistribusi logis, tetapi dapat berbeda bergantung pada cara penempatan pemisahan di seluruh server.
Ringkasan kueri
Panel Query summary menyediakan metrik eksekusi tingkat tinggi berikut dan menyoroti potensi bottleneck dalam kueri:
- Total elapsed time: total waktu yang diperlukan untuk menjalankan kueri dari awal hingga akhir.
- Waktu CPU: waktu CPU kumulatif yang digunakan di semua thread dan server yang memproses kueri.
- Waktu pembuatan rencana: waktu yang dihabiskan compiler dan pengoptimal kueri untuk membuat rencana eksekusi.
- Penundaan antrean server: durasi kueri menunggu dalam antrean server sebelum pemrosesan dimulai.
- Baris yang ditampilkan: jumlah total baris yang ditampilkan dalam hasil kueri akhir.
- Baris yang dipindai: jumlah total baris yang dibaca dari penyimpanan di semua tabel dan indeks yang dipindai.
- Panggilan jarak jauh: jumlah total RPC yang dibuat antara pemisahan atau grup mesin.
- Query optimizer version: versi pengoptimal kueri Spanner yang digunakan untuk mengompilasi paket.
- Paket statistik: paket statistik pengoptimal yang digunakan untuk pengoptimalan berbasis biaya.
Operator terkemuka
Bagian Prominent operators menandai iterator yang paling banyak menggunakan resource dalam rencana kueri:
- Latensi tertinggi: operator dengan durasi eksekusi terlama.
- Highest CPU time: operator yang menggunakan waktu CPU terbanyak.
- Jumlah baris tertinggi: operator yang memproses atau menampilkan baris terbanyak.
Linimasa eksekusi kueri
Tab Query execution timeline menampilkan grafik berbasis waktu yang menunjukkan durasi setiap grup mesin menjalankan bagian kuerinya. Grup mesin mungkin tidak berjalan selama seluruh durasi kueri, atau mungkin berjalan beberapa kali. Namun, linimasa hanya menampilkan waktu mulai eksekusi awal dan waktu akhir eksekusi akhir.
Petunjuk visual untuk performa
Visualizer menggunakan warna dan ikon berikut untuk membantu Anda menemukan masalah:
- Batang merah: menunjukkan persentase latensi atau waktu CPU yang digunakan oleh operator tersebut dibandingkan dengan total kueri.
- Segitiga peringatan: menunjukkan bahwa pemindaian tabel lengkap telah terjadi. Pemindaian semacam itu sering kali menunjukkan peluang untuk mengoptimalkan kueri, misalnya, dengan menambahkan indeks sekunder.
- Warna grup mesin: membedakan grup mesin dan menandai transisi antar-grup. Transisi ini memerlukan eksekusi jarak jauh di berbagai mesin, yang menimbulkan overhead serialisasi dan jaringan. Linimasa eksekusi kueri juga menampilkan warna grup mesin ini.
Langkah berikutnya
- Pelajari cara menyesuaikan kueri menggunakan visualizer rencana kueri.
- Baca tentang Operator eksekusi kueri tertentu.
- Pahami Rencana eksekusi kueri secara mendalam.