Halaman ini menjelaskan cara menggunakan dasbor Insight Kueri untuk mendeteksi dan menganalisis masalah performa. Untuk ringkasan fitur ini, lihat Ringkasan Insight Kueri.
Anda dapat menggunakan bantuan Gemini di Database untuk membantu memantau dan memecahkan masalah resource AlloyDB. Untuk mengetahui informasi selengkapnya, lihat Memantau dan memecahkan masalah dengan bantuan Gemini.
Sebelum memulai
Jika Anda atau pengguna lain perlu melihat rencana kueri atau melakukan pelacakan menyeluruh, Anda memerlukan izin Identity and Access Management (IAM) tertentu untuk melakukannya. Anda dapat membuat peran kustom dan menambahkan izin IAM yang diperlukan ke peran tersebut. Kemudian, Anda dapat menambahkan peran ini ke setiap akun pengguna yang akan menggunakan Insight Kueri untuk memecahkan masalah. Lihat Membuat peran kustom.
Peran kustom harus memiliki izin IAM berikut: cloudtrace.traces.get
.
Membuka dasbor Insight Kueri
Untuk membuka dasbor Insight Kueri, lakukan langkah-langkah berikut:
- Dari daftar cluster dan instance, klik instance.
- Klik Buka Insight Kueri untuk mengetahui info selengkapnya tentang kueri dan performa di bawah grafik metrik di halaman Ringkasan cluster atau pilih tab Insight Kueri di panel navigasi sebelah kiri.
Di halaman berikutnya, Anda dapat menggunakan opsi berikut untuk memfilter hasil:
- Pemilih instance. Memungkinkan Anda memilih instance utama atau instance kumpulan baca di cluster. Secara default, instance utama dipilih. Detail yang ditampilkan digabungkan untuk semua instance kumpulan operasi baca yang terhubung dan node-nya.
- Database. Memfilter pemuatan kueri di database tertentu atau semua database.
- Pengguna. Memfilter pemuatan kueri dari akun pengguna tertentu.
- Alamat klien. Memfilter pemuatan kueri dari alamat IP tertentu.
- Rentang waktu. Memfilter pemuatan kueri berdasarkan rentang waktu, seperti jam, hari, minggu, atau rentang kustom.
Mengedit konfigurasi Insight Kueri
Insight Kueri diaktifkan secara default di instance AlloyDB. Anda dapat mengedit konfigurasi Insight Kueri default.
Untuk mengedit konfigurasi Insight Kueri untuk instance AlloyDB, ikuti langkah-langkah berikut:
Konsol
Di konsol Google Cloud, buka halaman Clusters.
Klik cluster di kolom Resource Name.
Klik Insight Kueri di panel navigasi sebelah kiri.
Pilih Primary atau Read pool dari daftar Query Insights, lalu klik Edit.
Edit kolom Insight Kueri:
Untuk mengubah batas default 1024 byte pada panjang kueri yang akan dianalisis AlloyDB, di kolom Sesuaikan panjang kueri, masukkan angka dari 256 hingga 4500.
Instance akan dimulai ulang setelah Anda mengedit kolom ini.
Catatan: Batas panjang kueri yang lebih tinggi memerlukan lebih banyak memori.
Untuk menyesuaikan kumpulan fitur Insight Kueri, sesuaikan opsi berikut:
- Aktifkan paket kueri. Centang kotak ini untuk mengetahui operasi yang digunakan
untuk menjalankan sampel kueri.
Di kolom Maximum sampling rate, masukkan angka dari 1 hingga 20. Secara default, frekuensi sampling ditetapkan ke 5. Untuk menonaktifkan sampling, hapus centang pada kotak Enable query plans.
Rasio sampling menentukan jumlah maksimum kueri yang dapat diambil sampelnya oleh AlloyDB per menit untuk instance per node. - Menyimpan alamat IP klien. Setel kotak centang ini untuk mengetahui tempat asal kueri Anda, dan untuk mengelompokkan informasi tersebut guna menjalankan metrik.
- Simpan tag aplikasi. Setel kotak centang ini untuk mengetahui aplikasi yang diberi tag mana yang membuat permintaan, dan untuk mengelompokkan informasi tersebut guna menjalankan metrik. Untuk mengetahui informasi selengkapnya tentang tag aplikasi, lihat spesifikasi .
- Aktifkan paket kueri. Centang kotak ini untuk mengetahui operasi yang digunakan
untuk menjalankan sampel kueri.
Klik Update instance.
gcloud
gcloud alloydb instances update INSTANCE \
--cluster=CLUSTER \
--project=PROJECT \
--region=REGION \
--insights-config-query-string-length=QUERY_LENGTH \
--insights-config-query-plans-per-minute=QUERY_PLANS} \
--insights-config-record-application-tags \
--insights-config-record-client-address
Ganti kode berikut:
- CLUSTER: ID instance yang akan diupdate
- CLUSTER: ID cluster instance
- PROJECT: ID project cluster
- REGION: region cluster—misalnya,
us-central1
- QUERY_LENGTH: panjang kueri yang berkisar antara 256 hingga 4500
- QUERY_PLANS: jumlah rencana kueri yang akan dikonfigurasi per menit
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. Anda masih dapat menambahkan tag ke kueri yang melebihi batas panjang.--insights-config-query-plans-per-minute
: Secara default, maksimum lima sampel paket kueri yang dijalankan diambil per menit di semua database pada instance. Ubah nilai ini menjadi angka dari 1 hingga 20. Untuk menonaktifkan sampling, masukkan 0. Meningkatkan frekuensi sampling kemungkinan akan memberi Anda lebih banyak titik data, tetapi dapat menambahkan overhead performa.--insights-config-record-client-address
: Menyimpan alamat IP klien tempat kueri berasal dan membantu Anda mengelompokkan data tersebut untuk menjalankan metrik pada kueri tersebut. Kueri berasal dari lebih dari satu host. Meninjau grafik kueri dari alamat IP klien dapat membantu mengidentifikasi sumber masalah. Jika Anda tidak ingin menyimpan alamat IP klien, gunakan--no-insights-config-record-client-address
.--insights-config-record-application-tags
: Menyimpan tag aplikasi yang membantu Anda menentukan API dan rute pengontrol tampilan model (MVC) yang membuat permintaan dan mengelompokkan data untuk menjalankan metrik pada tag tersebut. Opsi ini mengharuskan Anda mengomentari kueri dengan kumpulan tag tertentu. Jika Anda tidak ingin menyimpan tag aplikasi, gunakan--no-insights-config-record-application-tags
.
Langkah-langkah untuk meningkatkan performa kueri
Query Insights memecahkan masalah kueri AlloyDB untuk mencari masalah performa. Dasbor Insight Kueri menampilkan pemuatan kueri berdasarkan faktor yang Anda pilih. Pemuatan kueri adalah pengukuran total pekerjaan untuk semua kueri dalam instance dalam rentang waktu yang dipilih.
Insight Kueri membantu Anda mendeteksi dan menganalisis masalah performa kueri. Anda menggunakan Query Insights untuk memecahkan masalah kueri dalam empat langkah:
- Lihat pemuatan database untuk semua kueri.
- Identifikasi kueri atau tag yang berpotensi bermasalah.
- Periksa kueri atau tag untuk mengidentifikasi masalah.
- Lacak sumber masalahnya.
Melihat muatan database untuk semua kueri
Dasbor Insight Kueri tingkat atas menampilkan grafik Pemuatan database — semua kueri tingkat atas menggunakan data yang difilter. 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.
Garis berwarna dalam grafik menunjukkan pemuatan kueri, yang dibagi menjadi empat kategori:
- Kapasitas CPU: Jumlah CPU yang tersedia pada instance.
Waktu Tunggu CPU dan CPU: Rasio waktu yang dibutuhkan oleh kueri dalam status aktif terhadap waktu dinding. Waktu tunggu IO dan Kunci tidak memblokir kueri yang dalam status aktif. Metrik ini dapat berarti bahwa kueri menggunakan CPU atau menunggu penjadwal Linux untuk menjadwalkan proses server yang menjalankan kueri saat proses lain sedang menggunakan CPU.
Catatan: Beban CPU memperhitungkan runtime dan waktu menunggu penjadwal Linux menjadwalkan proses server yang sedang berjalan. Akibatnya, muatan CPU dapat melampaui garis inti maksimum.
Waktu Tunggu IO: Rasio waktu yang dibutuhkan oleh kueri yang menunggu IO dibandingkan waktu aktual. Waktu Tunggu IO mencakup Waktu Tunggu IO Baca dan Waktu Tunggu IO Tulis. Lihat tabel peristiwa PostgreSQL. Jika Anda ingin perincian informasi untuk waktu tunggu IO, Anda dapat melihatnya di Cloud Monitoring. Untuk mengetahui informasi selengkapnya, lihat diagram metrik.
Waktu Tunggu Kunci: Rasio waktu yang dibutuhkan oleh kueri yang menunggu kunci dibandingkan waktu aktual. Waktu Tunggu ini mencakup Waktu tunggu Kunci, LwLock, dan Buffer Pin Lock. Jika Anda ingin perincian informasi untuk waktu tunggu kunci, Anda dapat melihatnya di Cloud Monitoring. Untuk mengetahui informasi selengkapnya, lihat diagram metrik.
Selanjutnya, tinjau grafik dan gunakan opsi pemfilteran untuk menjawab pertanyaan berikut:
- 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 sekarang hanya tingginya? Atau sudah tinggi sejak lama? Gunakan pilihan rentang untuk memilih berbagai jangka waktu guna mengetahui berapa lama masalah terjadi. Atau, Anda dapat memperbesar untuk melihat periode waktu saat lonjakan muatan kueri diamati. Anda dapat memperkecil untuk melihat rentang waktu hingga satu minggu.
- Apa yang menyebabkan bebannya tinggi? Anda dapat memilih opsi untuk melihat kapasitas CPU, waktu tunggu CPU dan CPU, waktu tunggu kunci, atau waktu tunggu IO. Grafik untuk setiap opsi ini memiliki warna yang berbeda, sehingga Anda dapat melihat opsi mana yang memiliki muatan tertinggi. Garis biru tua pada grafik menunjukkan kapasitas CPU maksimum sistem. Hal ini memungkinkan Anda membandingkan beban kueri dengan kapasitas sistem CPU maksimum. Perbandingan ini membantu Anda mengetahui apakah instance kehabisan resource CPU.
- Database mana yang mengalami pemuatan? Pilih berbagai database dari menu drop-down Databases untuk menemukan database yang memiliki muatan tertinggi.
- Apakah pengguna atau alamat IP tertentu menyebabkan pemuatan yang lebih tinggi? Pilih pengguna dan alamat yang berbeda dari menu drop-down untuk membandingkan manakah yang menyebabkan pemuatan yang lebih tinggi.
Memfilter muatan database
Bagian Kueri dan tag memungkinkan Anda memfilter atau mengurutkan pemuatan kueri untuk kueri yang dipilih atau tag kueri SQL.
Memfilter berdasarkan kueri
Tabel KUERI memberikan ringkasan kueri yang menyebabkan pemuatan kueri terbanyak. Tabel ini menampilkan semua kueri yang dinormalisasi untuk jangka waktu dan opsi yang dipilih di dasbor Insight Kueri.
Secara default, tabel mengurutkan kueri berdasarkan total waktu eksekusi dalam periode waktu yang Anda pilih.
Untuk memfilter tabel, pilih properti dari Filter kueri. Untuk mengurutkan tabel, pilih judul kolom. Tabel menampilkan properti berikut:
String kueri. String kueri yang dinormalisasi. Insight Kueri hanya menampilkan 1.024 karakter dalam string kueri secara default.
Kueri berlabel
UTILITY COMMAND
biasanya menyertakan perintahBEGIN
,COMMIT
, danEXPLAIN
atau perintah wrapper.Database. Database tempat kueri dijalankan.
Load by total time/Load by CPU/Load by IO wait/Load by lock wait. Opsi ini memungkinkan Anda memfilter kueri tertentu untuk menemukan beban terbesar untuk setiap opsi.
Rata-rata waktu eksekusi (md). Total waktu yang diperlukan semua subtugas di semua pekerja paralel untuk menyelesaikan kueri. Untuk informasi selengkapnya, lihat Rata-rata waktu dan durasi eksekusi.
Frekuensi pemanggilan. Frekuensi kueri dipanggil oleh aplikasi.
Rata-rata baris yang diambil. Jumlah rata-rata baris yang diambil untuk kueri.
Query Insight menampilkan kueri yang dinormalisasi, yaitu, $1, $2, dan seterusnya menggantikan nilai konstanta literal. Contoh:
UPDATE
"demo_customer"
SET
"customer_id" = $1::uuid,
"name" = $2,
"address" = $3,
"rating" = $4,
"balance" = $5,
"current_city" = $6,
"current_location" = $7
WHERE
"demo_customer"."id" = $8
Nilai konstanta diabaikan sehingga Insight Kueri dapat menggabungkan kueri serupa dan menghapus informasi PII yang mungkin ditampilkan konstanta tersebut.
Memfilter berdasarkan tag kueri
Untuk memecahkan masalah aplikasi, Anda harus menambahkan tag ke kueri SQL terlebih dahulu.
Insight Kueri menyediakan pemantauan yang berfokus pada aplikasi untuk mendiagnosis masalah performa untuk aplikasi yang di-build menggunakan ORM.
Jika Anda bertanggung jawab atas seluruh stack aplikasi, Insight Kueri menyediakan pemantauan kueri dari tampilan aplikasi. Pemberian tag kueri membantu Anda menemukan masalah pada konstruksi tingkat yang lebih tinggi, seperti menggunakan logika bisnis, microservice, atau beberapa konstruksi lainnya. Anda dapat memberi tag pada kueri berdasarkan logika bisnis, misalnya, menggunakan tag pembayaran, inventaris, analisis bisnis, atau pengiriman. Kemudian, Anda dapat menemukan pemuatan kueri yang dibuat oleh berbagai jenis logika bisnis. Misalnya, Anda mungkin menemukan peristiwa tak terduga, seperti lonjakan tag analisis bisnis pada pukul 13.00. Atau, Anda mungkin melihat pertumbuhan yang tidak terduga untuk layanan pembayaran yang menjadi tren selama seminggu sebelumnya.
Tag pemuatan kueri memberikan rincian pemuatan kueri untuk tag yang dipilih dari waktu ke waktu.
Untuk menghitung Pemuatan Database untuk Tag, Insight Kueri menggunakan jumlah waktu yang dibutuhkan oleh setiap kueri yang menggunakan tag yang Anda pilih. Insight Kueri menghitung waktu penyelesaian pada batas menit menggunakan waktu dinding.
Di dasbor Query Insight, pilih TAG untuk melihat tabel tag. Tabel TAGS mengurutkan tag berdasarkan total pemuatannya berdasarkan total waktu.
Anda dapat mengurutkan tabel dengan memilih properti dari Filter kueri, atau dengan mengklik judul kolom. Tabel menampilkan properti berikut:
- Action, Controller, Framework, Route, Application, DB Driver. Setiap properti yang Anda tambahkan ke kueri akan ditampilkan sebagai kolom. Setidaknya salah satu dari properti ini harus ditambahkan jika Anda ingin memfilter menurut tag.
- Load by total time/Load by CPU/Load by IO wait/Load by lock wait. Opsi ini memungkinkan Anda memfilter kueri tertentu untuk menemukan beban terbesar untuk setiap opsi.
- Rata-rata waktu eksekusi (md). Total waktu yang diperlukan semua subtugas di semua pekerja paralel untuk menyelesaikan kueri. Untuk informasi selengkapnya, lihat Rata-rata waktu dan durasi eksekusi.
- Frekuensi pemanggilan. Frekuensi kueri dipanggil oleh aplikasi.
- Rata-rata baris yang diambil. Jumlah rata-rata baris yang diambil untuk kueri.
- Database. Database tempat kueri dijalankan.
Memeriksa kueri atau tag tertentu
Untuk menentukan apakah kueri atau tag adalah akar penyebab masalah, lakukan hal berikut dari tab Kueri atau tab Tag:
- Klik header Muat menurut total waktu untuk mengurutkan daftar dalam urutan menurun.
- Klik kueri atau tag yang terlihat memiliki beban tertinggi dan memerlukan waktu lebih lama daripada yang lain.
Dasbor akan terbuka dan menampilkan detail kueri atau tag yang dipilih.
Jika Anda memilih kueri, ringkasan kueri yang dipilih akan ditampilkan:
Jika Anda memilih tag, ringkasan tag yang dipilih akan ditampilkan.
Memeriksa pemuatan untuk kueri atau tag tertentu
Grafik Pemuatan database — kueri spesifik menunjukkan ukuran pekerjaan (dalam detik CPU) yang telah dilakukan kueri yang dinormalkan dalam kueri yang dipilih dari waktu ke waktu. Untuk menghitung muatan, metode ini menggunakan jumlah waktu yang dibutuhkan oleh kueri yang dinormalisasi dan diselesaikan pada batas menit hingga waktu dinding. Di bagian atas tabel, 1024 karakter pertama dari kueri yang dinormalisasi (dengan literal dihapus karena alasan agregasi dan PII) akan ditampilkan. Seperti grafik kueri total, Anda dapat memfilter pemuatan untuk kueri tertentu berdasarkan Database, User, dan Client Address. Muatan kueri dibagi menjadi kapasitas CPU, Waktu Tunggu CPU dan CPU, Waktu Tunggu IO, dan Waktu Tunggu Kunci.
Grafik Pemuatan database — tag spesifik menunjukkan ukuran kerja (dalam detik CPU) yang dilakukan kueri yang cocok dengan tag yang dipilih di database yang Anda pilih dari waktu ke waktu. Seperti grafik kueri total, Anda dapat memfilter pemuatan untuk tag tertentu menurut Database, Pengguna, dan Alamat Klien.
Memeriksa latensi
Anda menggunakan grafik Latensi untuk memeriksa latensi pada kueri atau tag. Latensi adalah waktu yang dibutuhkan oleh kueri yang dinormalisasi untuk menyelesaikan proses dalam waktu aktual. Dasbor latensi menampilkan latensi persentil ke-50, ke-95, dan ke-99 untuk menemukan perilaku pencilan.
Latensi kueri Paralel diukur dalam waktu aktual meskipun beban kueri bisa lebih tinggi untuk kueri tersebut karena beberapa inti digunakan untuk menjalankan bagian dari kueri.
Coba sederhanakan masalahnya dengan melihat hal-hal berikut:
- Apa yang menyebabkan bebannya tinggi? Pilih opsi untuk melihat kapasitas CPU, waktu tunggu CPU dan CPU, waktu tunggu kunci, atau waktu tunggu IO.
- Berapa lama muatannya telah tinggi? Apakah sekarang hanya tingginya? Atau sudah tinggi sejak lama? Ubah rentang waktu untuk menemukan tanggal dan waktu saat muatannya mulai berperforma buruk.
- Apakah ada lonjakan latensi? Anda dapat mengubah periode waktu guna mempelajari latensi historis untuk kueri yang dinormalisasi.
Saat menemukan area dan waktu untuk beban tertinggi, Anda dapat melihat perincian lebih lanjut.
Memeriksa latensi di seluruh cluster
Anda menggunakan grafik Latensi P99 pada kueri yang sama di seluruh cluster untuk memeriksa latensi P99 pada kueri atau tag di seluruh instance dalam cluster.
Memeriksa operasi dalam contoh paket kueri
Paket kueri mengambil sampel kueri Anda dan menguraikannya menjadi operasi individual. Argumen ini menjelaskan dan menganalisis setiap operasi dalam kueri. Grafik Contoh paket kueri menampilkan semua paket kueri yang berjalan pada waktu tertentu dan jumlah waktu yang diperlukan untuk menjalankan setiap rencana.
Untuk melihat detail contoh paket kueri, klik titik pada grafik Contoh paket kueri. Ada tampilan sampel paket kueri yang dijalankan untuk sebagian besar, tetapi tidak semua, kueri. Detail yang diperluas menampilkan model dari semua operasi di paket kueri. Setiap operasi menunjukkan latensi, baris yang ditampilkan, dan biaya untuk operasi tersebut. Saat memilih operasi, Anda dapat melihat detail lebih lanjut, seperti blok hit bersama, jenis skema, loop sebenarnya, baris rencana, dan lainnya.
Coba sederhanakan masalahnya dengan melihat pertanyaan-pertanyaan berikut:
- Berapa konsumsi resource?
- Bagaimana kaitannya dengan kueri lain?
- Apakah konsumsi berubah dari waktu ke waktu?
Melacak sumber masalah
Untuk membantu Anda mengidentifikasi sumber masalah tertentu, seperti model, tampilan, pengontrol, rute, host, atau pengguna tertentu, Query Insight menyediakan tampilan rekaman aktivitas aplikasi menyeluruh yang sesuai konteks untuk memahami apa yang terjadi di lapisan database untuk permintaan tertentu dan menemukan sumber kueri yang bermasalah berdasarkan model, tampilan, pengontrol, dan rute. Jika Anda mengaktifkan OpenCensus atau OpenTelemetry, informasi opencensus span akan dikirim ke database bersama dengan informasi tag di dalam komentar SQL singkat ini. Setiap trace dari aplikasi ke Cloud Logging ditautkan dengan trace paket kueri database untuk mengidentifikasi sumber masalah. Anda dapat mengklik tab END to END di layar Sample Query untuk melihat rekaman aktivitas dalam konteks.
Untuk mengetahui klien dan pengguna yang menyebabkan masalah, gunakan tabel Alamat Klien Teratas dan Pengguna Teratas untuk menemukan pemuatan yang paling tinggi. Anda dapat menambahkan pengguna atau alamat IP ke filter untuk menganalisis alamat pengguna atau klien tertentu lebih lanjut.
Untuk kueri, Anda dapat menggunakan Cloud Trace untuk melihat pelacakan menyeluruh untuk setiap langkah dalam paket kueri. Di dasbor Insight Kueri, klik link View in trace untuk membuka alat Cloud Trace.
Untuk mengetahui detail tentang cara menggunakan alat di Cloud Trace, lihat Menemukan dan melihat trace.
Menambahkan tag ke kueri SQL
Pemberian tag pada kueri SQL menyederhanakan pemecahan masalah aplikasi. Anda dapat menggunakan sqlcommenter untuk menambahkan tag ke kueri SQL secara otomatis menggunakan Pemetaan relasional objek (ORM) atau secara manual.
Menggunakan sqlcommenter dengan ORM
Jika ORM digunakan, bukan menulis kueri SQL secara langsung, Anda mungkin tidak menemukan kode aplikasi yang menyebabkan tantangan performa. Anda mungkin juga mengalami kesulitan dalam menganalisis pengaruh kode aplikasi terhadap performa kueri. Untuk mengatasi masalah tersebut, Insight Kueri menyediakan library open source yang disebut sqlcommenter, library instrumentasi ORM. Library ini berguna bagi developer yang menggunakan ORM dan administrator untuk mendeteksi kode aplikasi yang menyebabkan masalah performa.
Jika Anda menggunakan ORM dan sqlcommenter secara bersamaan, tag akan dibuat secara otomatis tanpa memerlukan Anda untuk mengubah atau menambahkan kode kustom ke aplikasi.
Anda dapat menginstal sqlcommenter di server aplikasi. Dengan library instrumentasi, informasi aplikasi yang terkait dengan framework MVC Anda dapat disebarkan ke database bersama dengan kueri sebagai komentar SQL. Database akan mengambil tag ini dan mulai mencatat serta menggabungkan statistik berdasarkan tag, yang bersifat ortogonal dengan statistik yang digabungkan oleh kueri yang dinormalisasi. Insight Kueri menampilkan tag agar Anda mengetahui aplikasi mana yang menyebabkan pemuatan kueri. Informasi ini membantu Anda menemukan kode aplikasi yang menyebabkan masalah performa.
Ketika Anda memeriksa hasil dalam log database SQL, hasil tersebut akan muncul sebagai berikut:
SELECT * from USERS /*action='run+this',
controller='foo%3',
traceparent='00-01',
tracestate='rojo%2'*/
Tag yang didukung mencakup nama, rute, framework, dan tindakan pengontrol.
Kumpulan ORM di sqlcommenter didukung untuk berbagai bahasa pemrograman:
Python |
|
Java |
|
Ruby |
|
Node.js |
|
Untuk mengetahui informasi selengkapnya tentang sqlcommenter dan cara menggunakannya dalam framework ORM, lihat dokumentasi sqlcommenter di GitHub.
Menggunakan sqlcommenter untuk menambahkan tag secara manual
Jika tidak menggunakan ORM, Anda harus menambahkan tag sqlcommenter secara manual ke kueri SQL. Dalam kueri, Anda harus meningkatkan setiap pernyataan SQL dengan komentar yang berisi pasangan nilai kunci serial. Gunakan minimal salah satu kunci berikut:
action=''
controller=''
framework=''
route=''
application=''
db driver=''
Insight Kueri akan menghapus semua kunci lainnya. Lihat dokumentasi sqlcommenter untuk mengetahui format komentar SQL yang benar.
Waktu dan durasi eksekusi
Insight Kueri menyediakan metrik Rata2 waktu eksekusi (ms), yang melaporkan total waktu yang diperlukan semua subtugas di semua pekerja paralel untuk menyelesaikan kueri. Metrik ini dapat membantu Anda mengoptimalkan penggunaan resource agregat database dengan menemukan dan mengoptimalkan kueri yang menghasilkan overhead CPU tertinggi.
Untuk melihat waktu yang berlalu, Anda dapat mengukur durasi kueri dengan menjalankan
perintah \timing
di klien psql
. Metrik ini mengukur waktu yang berlalu antara saat menerima kueri dan server PostgreSQL mengirim respons. Metrik ini dapat
membantu Anda menganalisis alasan kueri tertentu memerlukan waktu terlalu lama, dan memutuskan apakah akan
mengoptimalkannya agar berjalan lebih cepat.
Jika kueri diselesaikan dengan thread tunggal oleh satu tugas, durasi dan waktu eksekusi rata-rata tetap sama.
Langkah Berikutnya
- Ringkasan Insight Kueri
- Meningkatkan performa kueri menggunakan Query Insights yang Ditingkatkan untuk AlloyDB
- Metrik AlloyDB
- Blog SQL Commenter: Memperkenalkan Sqlcommenter: Library instrumentasi otomatis ORM open source
- Blog cara: Mengaktifkan pemberian tag kueri dengan Sqlcommenter