Halaman ini menjelaskan cara menggunakan dasbor Query Insight untuk mendeteksi dan menganalisis masalah performa.
Pengantar
Insight kueri membantu Anda mendeteksi, mendiagnosis, dan mencegah masalah performa kueri untuk database Cloud SQL. Layanan ini mendukung pemantauan intuitif dan menyediakan informasi diagnostik yang membantu Anda melakukan lebih dari sekadar deteksi untuk mengidentifikasi akar penyebab masalah performa.
Query Insight membantu Anda meningkatkan performa kueri Cloud SQL dengan memandu Anda melalui langkah-langkah berikut:
Insight kueri untuk edisi Cloud SQL Enterprise Plus
Jika menggunakan edisi Cloud SQL Enterprise Plus, Anda dapat mengakses kemampuan tambahan di insight kueri untuk melakukan diagnostik performa kueri lanjutan. Selain kemampuan standar dasbor Insight kueri, insight kueri untuk edisi Cloud SQL Enterprise Plus memungkinkan Anda melakukan hal berikut:
- Menangkap teks kueri yang lebih panjang hingga 20 KB
- Mempertahankan retensi metrik 30 hari yang lebih lama
- Mendapatkan rekomendasi indeks dari penasihat indeks
- Menghentikan sesi dalam kueri aktif
Tabel berikut membandingkan persyaratan dan kemampuan fungsional insight kueri untuk edisi Cloud SQL Enterprise dengan insight kueri untuk edisi Cloud SQL Enterprise Plus.
Area perbandingan | Insight kueri untuk edisi Cloud SQL Enterprise | Insight kueri untuk edisi Cloud SQL Enterprise Plus |
---|---|---|
Versi database yang didukung |
Semua versi instance berikut:
Insight kueri tidak didukung di instance edisi SQL Server Express |
SQL Server Enterprise versi 2019 atau 2022 |
Jenis mesin yang didukung | Didukung di semua jenis mesin | Tidak didukung di instance yang menggunakan jenis mesin dengan inti bersama |
Wilayah yang didukung | Lokasi regional Cloud SQL | Lokasi regional edisi Cloud SQL Enterprise Plus |
Periode retensi metrik | 7 hari | 30 hari |
Batas maksimum panjang kueri | 4.500 byte | 20 KB |
Rekomendasi penasihat indeks | Tidak tersedia | Tersedia |
Menghentikan sesi dalam kueri aktif | Tidak tersedia | Tersedia |
Untuk mengaktifkan insight kueri untuk edisi Cloud SQL Enterprise Plus selama Pratinjau untuk instance edisi Cloud SQL Enterprise Plus, ikuti langkah-langkah di Mengaktifkan insight kueri untuk edisi Cloud SQL Enterprise Plus.
Harga
Tidak ada biaya tambahan untuk insight kueri. Selain itu, tidak ada biaya untuk mengaktifkan insight kueri untuk edisi Cloud SQL Enterprise Plus, yang masih dalam Pratinjau.
Persyaratan penyimpanan
Insight kueri menyimpan data metrik di instance dan mengharuskan Anda tetap mengaktifkan setelan peningkatan penyimpanan otomatis. Biaya penyimpanan yang berlaku akan diterapkan.
Sebelum memulai
Sebelum menggunakan insight kueri, lakukan hal berikut.
- Tambahkan peran dan izin yang diperlukan.
- Pastikan Aktifkan peningkatan penyimpanan otomatis diaktifkan untuk instance.
Peran dan izin yang diperlukan
Untuk menggunakan insight kueri, Anda harus memberikan peran dengan izin Identity and Access Management (IAM) yang diperlukan atau memberikan akun pengguna dengan izin yang diperlukan.
Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses.
Untuk mendapatkan izin yang Anda perlukan guna mengakses data historis eksekusi kueri di dasbor Insight kueri, minta administrator untuk memberi Anda peran IAM berikut pada project yang menghosting instance Cloud SQL:
-
Database Insights Monitoring Viewer (
roles/databaseinsights.monitoringViewer
) -
Cloud SQL Viewer (
roles/cloudsql.viewer
)
Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.
Peran bawaan ini berisi izin yang diperlukan untuk mengakses data historis eksekusi kueri di dasbor Insight kueri. Untuk melihat izin yang benar-benar diperlukan, luaskan bagian Izin yang diperlukan:
Izin yang diperlukan
Izin berikut diperlukan untuk mengakses data historis eksekusi kueri di dasbor Insight kueri:
-
databaseinsights.aggregatedStats.query
-
databaseinsights.timeSeries.query
Anda mungkin juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaan lainnya.
Misalnya, di Database Insights, Anda dapat meminta administrator untuk memberi Anda peran bawaan Database Insights Viewer (roles/databaseinsights.viewer
). Kemudian, di Cloud SQL, Anda dapat meminta administrator untuk memberi Anda salah satu peran bawaan berikut:
- Cloud SQL Editor (
roles/cloudsql.editor
) - Cloud SQL Admin (
roles/cloudsql.admin
)
Aktifkan peningkatan penyimpanan otomatis
Pastikan setelan instance untuk mengaktifkan peningkatan penyimpanan otomatis tetap diaktifkan.Jika sebelumnya Anda menonaktifkan setelan instance ini, aktifkan kembali peningkatan penyimpanan otomatis sebelum mengaktifkan insight kueri.
Mengaktifkan insight kueri
Pengguna yang memiliki akses ke dasbor Cloud SQL dapat mengakses metrik insight kueri. Jika memiliki izin untuk memperbarui instance, Anda dapat mengaktifkan analisis kueri. Untuk daftar izin yang diperlukan untuk instance Cloud SQL, lihat Kontrol akses project Cloud SQL. Jika Anda tidak memiliki izin ini dan ingin mengaktifkan insight kueri di instance, hubungi administrator Anda.
Konsol
Mengaktifkan insight kueri untuk instance
-
Di konsol Google Cloud , buka halaman Instance Cloud SQL.
- Untuk membuka halaman Overview instance, klik nama instance.
- Di kartu Configuration, klik Edit configuration.
- Di bagian Customize your instance, luaskan Query insight.
- Centang kotak Aktifkan Query Insight.
- Opsional. Pilih satu atau beberapa fitur tambahan insight kueri berikut:
- Klik Simpan.
Sesuaikan panjang kueri
Default: 1024
Menetapkan batas panjang kueri ke nilai yang ditentukan dari 256 byte hingga 4.500 byte. Panjang kueri yang lebih tinggi lebih berguna untuk kueri analitis, tetapi juga memerlukan lebih banyak memori. Jika panjang kueri diubah, Anda harus memulai ulang instance.
Mengaktifkan insight kueri untuk beberapa instance
-
Di konsol Google Cloud , buka halaman Instance Cloud SQL.
- Klik menu Tindakan Lainnya di baris mana pun.
- Pilih Aktifkan Query Insight.
- Dalam dialog, centang kotak Aktifkan Query Insight untuk beberapa instance.
- Klik Aktifkan.
- Di dialog berikutnya, pilih instance yang ingin Anda aktifkan insight kuerinya.
- Klik Aktifkan Query Insight.
gcloud
Untuk mengaktifkan insight kueri untuk instance Cloud SQL menggunakan
gcloud
, jalankan gcloud sql instances patch
dengan flag --insights-config-query-insights-enabled
sebagai
berikut setelah mengganti INSTANCE_ID dengan ID instance.
gcloud sql instances patch INSTANCE_ID \ --insights-config-query-insights-enabled
Selain itu, gunakan satu atau beberapa flag opsional berikut:
--insights-config-query-string-length
Menetapkan batas panjang kueri default ke nilai yang ditentukan dari 256 hingga 4.500 byte. Panjang kueri default adalah 1024 byte. Panjang kueri yang lebih tinggi lebih berguna untuk kueri analitis, tetapi juga memerlukan lebih banyak memori. Jika panjang kueri diubah, Anda harus memulai ulang instance.
Ganti kode berikut:
- INSIGHTS_CONFIG_QUERY_STRING_LENGTH: Panjang string kueri yang akan disimpan dalam byte.
- API_TIER_STRING: Konfigurasi instance kustom yang akan digunakan untuk instance.
- REGION: Region untuk instance.
gcloud sql instances patch INSTANCE_ID \ --insights-config-query-insights-enabled \ --insights-config-query-string-length=INSIGHTS_CONFIG_QUERY_STRING_LENGTH \ --tier=API_TIER_STRING \ --region=REGION
REST v1
Untuk mengaktifkan insight kueri untuk instance Cloud SQL dengan menggunakan
REST API, panggil metode instances.patch
dengan setelan insightsConfig
.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- project-id: Project ID.
- instance-id: ID instance.
Metode HTTP dan URL:
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id
Meminta isi JSON:
{ "settings" : { "insightsConfig" : { "queryInsightsEnabled" : true } } }
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan melihat respons JSON yang mirip seperti berikut:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id", "status": "PENDING", "user": "user@example.com", "insertTime": "2021-01-28T22:43:40.009Z", "operationType": "UPDATE", "name": "operation-id", "targetId": "instance-id", "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/operations/operation-id", "targetProject": "project-id" }
Terraform
Agar dapat menggunakan Terraform untuk mengaktifkan insight kueri untuk instance Cloud SQL,
tetapkan flag query_insights_enabled
ke true
.
Selain itu, Anda dapat menggunakan satu atau beberapa flag opsional berikut:
-
query_string_length
: Defaultnya adalah1024
dan Anda dapat mengonfigurasinya ke nilai antara256
dan4500
dalam byte. -
record_application_tags
: Tetapkan nilai ketrue
jika Anda ingin merekam tag aplikasi dari kueri. -
record_client_address
: Tetapkan nilai ketrue
jika Anda ingin mencatat alamat IP klien. -
query_plans_per_minute
: Defaultnya adalah5
dan Anda dapat mengonfigurasinya ke nilai antara5
dan20
.
Berikut contohnya:
Untuk menerapkan konfigurasi Terraform di project Google Cloud , selesaikan langkah-langkah di bagian berikut.
Menyiapkan Cloud Shell
- Luncurkan Cloud Shell.
-
Tetapkan project Google Cloud default tempat Anda ingin menerapkan konfigurasi Terraform.
Anda hanya perlu menjalankan perintah ini sekali per project, dan dapat dijalankan di direktori mana pun.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
Variabel lingkungan akan diganti jika Anda menetapkan nilai eksplisit dalam file konfigurasi Terraform.
Menyiapkan direktori
Setiap file konfigurasi Terraform harus memiliki direktorinya sendiri (juga disebut modul root).
-
Di Cloud Shell, buat direktori dan file baru di dalam direktori tersebut. Nama file harus memiliki
ekstensi
.tf
—misalnyamain.tf
. Dalam tutorial ini, file ini disebut sebagaimain.tf
.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Jika mengikuti tutorial, Anda dapat menyalin kode contoh di setiap bagian atau langkah.
Salin kode contoh ke dalam
main.tf
yang baru dibuat.Atau, salin kode dari GitHub. Tindakan ini direkomendasikan jika cuplikan Terraform adalah bagian dari solusi menyeluruh.
- Tinjau dan ubah contoh parameter untuk diterapkan pada lingkungan Anda.
- Simpan perubahan Anda.
-
Lakukan inisialisasi Terraform. Anda hanya perlu melakukan ini sekali per direktori.
terraform init
Secara opsional, untuk menggunakan versi penyedia Google terbaru, sertakan opsi
-upgrade
:terraform init -upgrade
Menerapkan perubahan
-
Tinjau konfigurasi dan pastikan resource yang akan dibuat atau
diupdate oleh Terraform sesuai yang Anda inginkan:
terraform plan
Koreksi konfigurasi jika diperlukan.
-
Terapkan konfigurasi Terraform dengan menjalankan perintah berikut dan memasukkan
yes
pada prompt:terraform apply
Tunggu hingga Terraform menampilkan pesan "Apply complete!".
- Buka project Google Cloud untuk melihat hasilnya. Di konsol Google Cloud , buka resource Anda di UI untuk memastikan Terraform telah membuat atau mengupdatenya.
Metrik diharapkan akan tersedia di analisis kueri dalam hitungan menit setelah penyelesaian kueri.
Mengaktifkan insight kueri untuk edisi Cloud SQL Enterprise Plus
Anda dapat mengaktifkan insight kueri untuk edisi Cloud SQL Enterprise Plus di instance Cloud SQL hanya dengan menggunakan konsol Google Cloud .
-
Di konsol Google Cloud , buka halaman Instance Cloud SQL.
- Untuk membuka halaman Ringkasan instance, klik nama instance.
- Klik Edit.
- Di bagian Storage, pastikan kotak centang Enable automatic storage increases dicentang.
- Di bagian Customize your instance, luaskan Query insight.
- Centang kotak Aktifkan fitur Enterprise Plus.
Setelah mengaktifkan insight kueri untuk edisi Cloud SQL Enterprise Plus, Anda dapat memperbarui kolom berikut:
Sesuaikan panjang kueri: tentukan batas panjang kueri dalam byte. Anda dapat menentukan angka dari
256
hingga20480
. Setiap string kueri yang melebihi batas yang ditentukan akan terpotong di layar. Batas panjang kueri yang lebih tinggi memerlukan lebih banyak memori. Nilai defaultnya adalah10240
byte (10 KB).
Klik Simpan.
Melihat dasbor Query Insight
Dasbor Query Insight menampilkan pemuatan kueri berdasarkan faktor yang Anda pilih. Pemuatan kueri adalah pengukuran total pekerjaan untuk semua kueri dalam instance dalam rentang waktu yang dipilih. Dasbor ini menyediakan serangkaian filter yang membantu Anda melihat pemuatan kueri.
Untuk membuka dasbor Query Insight, ikuti langkah-langkah berikut:
- Untuk membuka halaman Ringkasan instance, klik nama instance.
- Pilih tab Analisis kueri di panel navigasi sebelah kiri atau klik link Buka Analisis kueri untuk mengetahui info selengkapnya tentang kueri dan performa.
Dasbor Query Insight akan terbuka. Halaman ini menampilkan informasi berikut tentang instance Anda:
- Database: Memfilter pemuatan kueri di database tertentu atau semua database.
- Rentang waktu: Memfilter pemuatan kueri berdasarkan rentang waktu, seperti 1 jam, 6 jam, 1 hari, 7 hari, 30 hari, atau rentang kustom.
- Database load graph: Menampilkan grafik pemuatan kueri, berdasarkan data yang difilter.
- Kueri dan Database: Memfilter pemuatan kueri berdasarkan kueri yang dipilih atau database yang dipilih. Lihat Memfilter beban database.
Melihat muatan database untuk semua kueri
Pemuatan kueri database adalah ukuran pekerjaan (dalam detik CPU) yang dilakukan oleh kueri yang dieksekusi di database yang dipilih dari waktu ke waktu. Setiap kueri yang berjalan menggunakan atau menunggu resource CPU, resource IO, atau resource kunci. Pemuatan kueri database adalah rasio jumlah waktu yang dibutuhkan oleh semua kueri yang diselesaikan dalam jangka waktu tertentu dibandingkan dengan waktu aktual.
Dasbor insight kueri tingkat atas menampilkan grafik Pemuatan database menurut waktu eksekusi. Menu drop-down di dasbor memungkinkan Anda memfilter grafik untuk semua database atau database tertentu.
Garis berwarna dalam grafik menunjukkan pemuatan per database berdasarkan waktu eksekusi. Tinjau grafik tersebut dan gunakan opsi pemfilteran untuk mempelajari pertanyaan-pertanyaan ini:
- Apakah pemuatan kuerinya tinggi? Apakah grafiknya melonjak atau meningkat seiring waktu? Jika Anda tidak melihat beban yang tinggi, berarti masalahnya tidak ada pada kueri.
- Berapa lama muatannya telah tinggi? Apakah baru sekarang atau sudah tinggi sejak lama? Gunakan pemilih rentang untuk memilih berbagai jangka waktu guna mengetahui berapa lama masalah berlangsung. Perbesar untuk melihat periode waktu saat lonjakan muatan kueri diamati. Perkecil untuk melihat rentang waktu hingga satu minggu.
- Database mana yang mengalami pemuatan? Pilih berbagai database dari menu drop-down Databases untuk menemukan database yang memiliki beban tertinggi.
Memfilter muatan database
Anda dapat memfilter pemuatan database berdasarkan kueri. Jika menggunakan insight kueri untuk edisi Cloud SQL Enterprise Plus, Anda dapat menyesuaikan diagram pemuatan database untuk mengelompokkan data yang ditampilkan menggunakan salah satu dimensi berikut:Semua kueri
Database
Untuk menyesuaikan diagram pemuatan database, pilih dimensi dari drop-down Database Load by execution time.
Melihat kontributor utama pemuatan database
Untuk melihat kontributor teratas pemuatan database, Anda dapat menggunakan tabel Dimensi teratas menurut pemuatan database. Tabel Dimensi teratas menurut beban database menampilkan kontributor teratas untuk jangka waktu dan dimensi yang Anda pilih di drop-down diagram Beban Database menurut waktu eksekusi. Anda dapat mengubah jangka waktu atau dimensi untuk melihat kontributor teratas untuk dimensi atau jangka waktu yang berbeda.
Di tabel Dimensi teratas menurut pemuatan data, Anda dapat memilih tab berikut.
Tab | Deskripsi |
---|---|
Kueri | Tabel menampilkan kueri normalisasi teratas berdasarkan total waktu eksekusi.
Untuk setiap kueri, data yang ditampilkan dalam kolom dicantumkan sebagai berikut:
|
Database | Tabel menampilkan daftar database teratas yang berkontribusi pada beban selama jangka waktu yang dipilih di semua kueri yang dijalankan.
|
Memfilter berdasarkan kueri
Tabel Kueri memberikan ringkasan kueri yang menyebabkan pemuatan kueri terbanyak. Tabel ini menampilkan semua kueri yang dinormalkan untuk jangka waktu dan opsi yang dipilih di dasbor Query Insight. Fungsi ini mengurutkan kueri berdasarkan total waktu eksekusi selama periode waktu yang Anda pilih.
Untuk mengurutkan tabel, pilih judul kolom. Tabel menampilkan properti berikut:
- Query: string kueri yang dinormalisasi. Secara default, Insight kueri hanya menampilkan 1.024 karakter dalam string kueri.
- Database: database tempat kueri dijalankan.
- Rata-rata waktu eksekusi (md): Waktu rata-rata kueri untuk dieksekusi.
- Total waktu eksekusi (md): total waktu untuk mengeksekusi kueri.
- Waktu panggilan: frekuensi aplikasi memanggil kueri.
- Rata-rata baris yang ditampilkan: jumlah rata-rata baris yang ditampilkan untuk kueri.
Query Insight hanya menyimpan dan menampilkan kueri yang dinormalkan.
Menonaktifkan insight kueri
Konsol
Untuk menonaktifkan insight kueri untuk instance Cloud SQL menggunakan konsol Google Cloud , ikuti langkah-langkah berikut:
-
Di konsol Google Cloud , buka halaman Instance Cloud SQL.
- Untuk membuka halaman Overview instance, klik nama instance.
- Di kartu Configuration, klik Edit configuration.
- Di bagian Opsi konfigurasi, luaskan Query Insight.
- Hapus centang pada kotak Aktifkan Query Insight.
- Klik Simpan.
gcloud
Untuk menonaktifkan insight kueri untuk instance Cloud SQL menggunakan gcloud
, jalankan gcloud sql instances patch
dengan flag --no-insights-config-query-insights-enabled
sebagai berikut, setelah mengganti INSTANCE_ID dengan ID instance.
gcloud sql instances patch INSTANCE_ID
--no-insights-config-query-insights-enabled
REST
Untuk menonaktifkan insight kueri untuk instance Cloud SQL menggunakan
REST API, panggil metode instances.patch
dengan queryInsightsEnabled
yang ditetapkan ke false
seperti berikut.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- project-id: Project ID.
- instance-id: ID instance.
Metode HTTP dan URL:
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id
Meminta isi JSON:
{ "settings" : { "insightsConfig" : { "queryInsightsEnabled" : false } } }
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan melihat respons JSON seperti berikut:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id", "status": "PENDING", "user": "user@example.com", "insertTime": "2021-01-28T22:43:40.009Z", "operationType": "UPDATE", "name": "operation-id", "targetId": "instance-id", "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/operations/operation-id", "targetProject": "project-id" }
Menonaktifkan insight kueri untuk edisi Cloud SQL Enterprise Plus
Untuk menonaktifkan insight kueri untuk edisi Cloud SQL Enterprise Plus, lakukan tindakan berikut:
-
Di konsol Google Cloud , buka halaman Instance Cloud SQL.
- Untuk membuka halaman Ringkasan instance, klik nama instance.
- Klik Edit.
- Di bagian Customize your instance, luaskan Query insight.
- Hapus centang pada kotak Aktifkan fitur Enterprise Plus.
- Klik Simpan.
Langkah selanjutnya
- Blog peluncuran: Kemampuan observasi database untuk developer: memperkenalkan Cloud SQL Insights
- Blog: Tingkatkan keterampilan pemecahan masalah performa kueri Anda dengan Cloud SQL Insight
- Video: Memperkenalkan Cloud SQL Insight
- Podcast: Cloud SQL Insight
- Codelab Insight