Pelacak kueri Jelajah dan panel Performa Jelajah memberikan data performa langkah demi langkah untuk kueri Jelajah. Data ini dapat membantu mengidentifikasi titik entri utama untuk memecahkan masalah dan menyelesaikan masalah performa dengan kueri serta memberikan rekomendasi untuk peningkatan.
Menjelajahi pelacak kueri
Pelacak kueri Jelajah menampilkan progres kueri Jelajah melalui tiga fase kueri saat kueri berjalan.
Jika kueri memerlukan waktu lama untuk dieksekusi, pelacak kueri dapat menunjukkan fase kueri mana yang menyebabkan masalah performa. Hal ini berguna untuk mengidentifikasi tempat terjadinya masalah performa, dan tempat upaya pengoptimalan dapat dilakukan dengan paling efektif.
Pelacak kueri ditampilkan saat Jelajah berjalan, selama panel Visualisasi Jelajah atau panel Data Jelajah terbuka.
Jelajahi panel Performa
Untuk melihat panel Performa Jelajahi, klik link Lihat detail performa, yang tersedia di kueri Jelajahi yang telah dijalankan.
Panel Performa menunjukkan waktu yang dihabiskan kueri di setiap tiga fase kueri dan menyertakan link ke dokumentasi performa serta dasbor Aktivitas Sistem Histori Kueri, yang menampilkan data performa saat ini dan historis untuk kueri dan Jelajah yang digunakan untuk membuat kueri.
Fase kueri
Saat Jelajahi Looker menjalankan kueri database, kueri akan dieksekusi dalam tiga fase, sebagai berikut:
Fase Inisialisasi Kueri
Selama fase Inisialisasi Kueri, Looker melakukan semua tugas yang diperlukan sebelum kueri dikirim ke database Anda. Fase Inisialisasi Kueri mencakup tugas-tugas berikut:
- Mengompilasi model LookML
- Memeriksa apakah tabel turunan persisten (PDT) perlu dibuat
- Membuat SQL kueri
- Mendapatkan koneksi database
Halaman dokumentasi Memahami metrik performa kueri menjelaskan cara menggunakan Jelajah Metrik Performa Kueri di Aktivitas Sistem untuk melihat perincian kueri secara mendetail. Fase Inisialisasi kueri pelacak kueri mencakup peristiwa yang dijelaskan di Fase pekerja asinkron, Fase inisialisasi, dan Fase penanganan koneksi di Jelajahi Metrik Performa Kueri.
Fase Menjalankan Kueri
Fase Running Query adalah saat Looker menghubungi dan membuat kueri pada database Anda serta menampilkan hasil kueri. Masalah performa selama fase ini dapat menunjukkan masalah pada database eksternal, seperti PDT yang memerlukan waktu lama untuk dibuat ulang dan mungkin perlu dioptimalkan, atau tabel database eksternal yang mungkin perlu dioptimalkan. Fase Running Query mencakup tugas-tugas berikut:
- Membuat PDT apa pun di database yang diperlukan untuk kueri Jelajahi
- Menjalankan kueri yang diminta di database
Halaman dokumentasi Memahami metrik performa kueri menjelaskan cara menggunakan Jelajah Metrik Performa Kueri di Aktivitas Sistem untuk melihat perincian kueri secara mendetail. Tahap Menjalankan kueri pelacak kueri mencakup peristiwa yang dijelaskan di Fase kueri utama di Jelajahi Metrik Performa Kueri.
Kemungkinan langkah yang dapat dilakukan jika Anda mengalami masalah performa selama fase ini meliputi hal berikut:
- Buat Jelajah menggunakan join
many_to_one
jika memungkinkan. Menggabungkan tampilan dari tingkat yang paling terperinci ke tingkat detail tertinggi (many_to_one
) biasanya memberikan performa kueri terbaik. - Maksimalkan penyimpanan dalam cache untuk disinkronkan dengan kebijakan ETL Anda jika memungkinkan untuk mengurangi traffic kueri database. Secara default, Looker menyimpan kueri dalam cache selama satu jam. Anda dapat mengontrol kebijakan penyimpanan dalam cache dan menyinkronkan pembaruan data Looker dengan proses ETL dengan menerapkan datagroup
dalam Eksplorasi menggunakan parameter
persist_with
. Dengan memaksimalkan penyimpanan dalam cache, Looker dapat berintegrasi lebih erat dengan pipeline data backend, sehingga penggunaan cache dapat dimaksimalkan tanpa risiko menganalisis data yang sudah tidak berlaku. Kebijakan penyimpanan dalam cache yang dinamai dapat diterapkan ke seluruh model atau ke setiap Jelajah dan tabel turunan persisten (PDT). - Gunakan fitur pengetahuan agregat Looker untuk membuat tabel ringkasan atau gabungan yang dapat digunakan Looker untuk kueri jika memungkinkan, terutama untuk kueri umum dari database besar. Anda juga dapat menggunakan kesadaran gabungan untuk meningkatkan performa seluruh dasbor secara drastis. Lihat Tutorial kesadaran gabungan untuk informasi tambahan.
- Gunakan PDT untuk kueri yang lebih cepat. Konversi Jelajah dengan banyak join yang rumit atau tidak berperforma baik, atau dimensi dengan subkueri atau subseleksi, menjadi PDT sehingga tampilan telah disambungkan sebelumnya dan siap sebelum runtime.
- Jika dialek database Anda mendukung PDT inkremental, konfigurasikan PDT inkremental untuk mengurangi waktu yang dihabiskan Looker untuk mem-build ulang tabel PDT.
- Hindari menggabungkan tampilan ke Jelajah pada kunci utama yang digabungkan dan ditentukan di Looker. Sebagai gantinya, gabungkan kolom dasar yang membentuk kunci utama yang digabungkan dari tampilan. Atau, buat ulang tampilan sebagai PDT dengan kunci utama yang digabungkan yang telah ditentukan sebelumnya dalam definisi SQL tabel, bukan dalam LookML tampilan.
- Gunakan alat Explain in SQL Runner untuk benchmark.
EXPLAIN
menghasilkan ringkasan rencana eksekusi kueri database untuk kueri SQL tertentu, sehingga Anda dapat mendeteksi komponen kueri yang dapat dioptimalkan. Pelajari lebih lanjut di Postingan komunitas Cara mengoptimalkan SQL denganEXPLAIN
. - Mendeklarasikan indeks. Anda dapat melihat indeks setiap tabel langsung di Looker dari SQL Runner dengan mengklik ikon roda gigi di tabel, lalu memilih Show Indexes.
Kolom yang paling umum yang dapat memanfaatkan indeks adalah tanggal penting dan kunci asing. Menambahkan indeks ke kolom ini akan meningkatkan performa untuk hampir semua kueri. Hal ini juga berlaku untuk PDT. Parameter LookML, seperti
indexes
,sort keys
, dandistribution
, dapat diterapkan dengan tepat.
Tahap Pemrosesan Hasil
Selama fase Processing Results, Looker memproses dan merender hasil kueri. Fase Memproses Hasil mencakup tugas-tugas berikut:
- Menstreaming hasil kueri ke cache
- Menyelesaikan kalkulasi tabel
- Memformat hasil bahasa template Liquid
- Menggabungkan kueri
- Menghitung total dan subtotal
Halaman dokumentasi Memahami metrik performa kueri menjelaskan cara menggunakan Jelajah Metrik Performa Kueri di Aktivitas Sistem untuk melihat perincian kueri secara mendetail. Tahap Memproses Hasil pelacak kueri mencakup peristiwa yang dijelaskan di Tahap pasca-kueri di Jelajahi Metrik Performa Kueri.
Kemungkinan langkah yang dapat dilakukan jika Anda mengalami masalah performa selama fase ini meliputi:
- Gunakan fitur seperti menggabungkan hasil, kolom kustom, dan penghitungan tabel seperlunya. Fitur ini dimaksudkan untuk digunakan sebagai bukti konsep untuk membantu mendesain model Anda. Praktik terbaiknya adalah melakukan hardcode pada penghitungan dan fungsi yang sering digunakan di LookML, yang akan menghasilkan SQL untuk diproses di database Anda. Penghitungan yang berlebihan dapat bersaing untuk mendapatkan memori Java di instance Looker, sehingga menyebabkan instance Looker merespons lebih lambat.
- Batasi jumlah tampilan yang Anda sertakan dalam model jika ada banyak file tampilan. Menyertakan semua tampilan dalam satu model dapat memperlambat performa. Jika ada banyak tampilan dalam project, sebaiknya sertakan hanya file tampilan yang diperlukan dalam setiap model. Pertimbangkan untuk menggunakan konvensi penamaan strategis untuk nama file tampilan guna memungkinkan penyertaan grup tampilan dalam model. Contohnya diuraikan dalam dokumentasi parameter
includes
. - Hindari menampilkan titik data dalam jumlah besar secara default dalam kartu dasbor dan Tampilan. Kueri yang menampilkan ribuan titik data akan menggunakan lebih banyak memori. Pastikan data dibatasi jika memungkinkan dengan menerapkan
filter frontend ke dasbor, Look, dan Jelajah, serta di tingkat LookML dengan parameter
required filters
,conditionally_filter
, dansql_always_where
. - Download atau kirim kueri menggunakan opsi Semua Hasil seperlunya, karena beberapa kueri dapat berukuran sangat besar dan membebani server Looker saat diproses.