All Products
Search
Document Center

Database Autonomy Service:SQL Explorer

Last Updated:May 15, 2026

Anda dapat menggunakan ️SQL Explorer untuk mendiagnosis kesehatan SQL dan memecahkan masalah performa. Topik ini menjelaskan cara menggunakan ️SQL Explorer dalam SQL Explorer and Audit.

Prasyarat

  • Instans database telah ditambahkan ke DAS dan status koneksi-nya adalah Normal Connection.

  • SQL Explorer and Audit telah diaktifkan untuk instans tersebut. Untuk informasi selengkapnya, lihat Enable SQL Explorer and Audit.

Cara kerja

Saat diaktifkan, SQL Explorer mencatat semua operasi DQL, DML, dan DDL. Informasi ini diambil langsung dari kernel database dengan dampak yang dapat diabaikan terhadap penggunaan CPU.

Database dan wilayah yang didukung

Untuk informasi tentang database dan wilayah yang didukung oleh setiap versi DAS Enterprise Edition, lihat Product editions.

Catatan penggunaan

  • Data analitis dan statistik di SQL Explorer, kecuali detail SQL, disimpan selama 30 hari.

  • Periode retensi untuk data detail SQL di SQL Explorer sama dengan periode retensi yang dikonfigurasi untuk DAS Enterprise Edition.

  • Menonaktifkan SQL Explorer and Audit tidak memengaruhi layanan Anda, tetapi tindakan ini akan menghapus semua data yang tersimpan untuk fitur ini. Sebelum menonaktifkan fitur tersebut, ekspor dan simpan data yang diperlukan ke mesin lokal. Untuk informasi selengkapnya, lihat Disable SQL Explorer and Audit.

  • Ketika sebuah pernyataan SQL dieksekusi pada instans ApsaraDB RDS for MySQL yang terhubung ke PolarDB-X 1.0, beberapa log SQL dihasilkan pada instans ApsaraDB RDS for MySQL karena sharding.

  • Migrasi data dapat menyebabkan pemutusan koneksi sementara, yang berpotensi menyebabkan kehilangan data di SQL Explorer selama proses migrasi.

  • Ketika instans database mengalami beban sangat tinggi, sejumlah kecil catatan mungkin hilang. Akibatnya, statistik untuk data inkremental dari SQL Explorer mungkin tidak akurat.

  • Sebuah parameter menentukan panjang maksimum pernyataan SQL yang direkam. SQL Explorer tidak merekam bagian mana pun dari pernyataan yang melebihi batas ini. Karena awalan ditambahkan selama pengumpulan data, panjang aktual yang direkam sedikit lebih pendek daripada nilai parameter yang dikonfigurasi.

    Catatan
    • Untuk versi 5.6 dan 5.7 ApsaraDB RDS for MySQL dan PolarDB for MySQL, panjang yang direkam dikontrol oleh parameter loose_rds_audit_max_sql_size.

    • Untuk versi 8.0 ApsaraDB RDS for MySQL dan PolarDB for MySQL, panjang yang direkam dikontrol oleh parameter loose_rds_audit_log_event_buffer_size.

  • Untuk instans ApsaraDB RDS for PostgreSQL, jika kolam koneksi PgBouncer diaktifkan, pernyataan SQL yang dieksekusi melalui PgBouncer tidak direkam oleh SQL Explorer.

Prosedur

  1. Masuk ke Konsol DAS.

  2. Di panel navigasi kiri, klik Intelligent O&M Center > Instance Monitoring.

  3. Temukan instans target dan klik ID instans untuk membuka halaman detail instans.

  4. Di panel navigasi kiri, klik Request Analysis > SQL Explorer and Audit, lalu klik tab SQL Explorer.

  5. Pilih fitur sesuai kebutuhan Anda:

    Catatan

    Saat Anda memilih rentang waktu, waktu akhir harus lebih baru daripada waktu mulai, dan intervalnya tidak boleh melebihi satu hari. Setelah Anda mengaktifkan DAS Enterprise Edition untuk instans tersebut, Anda dapat mengkueri data dari hari apa pun dalam durasi penyimpanan SQL Explorer.

    • Display by Time Range: Pilih rentang waktu untuk melihat hasil SQL Explorer. Anda dapat melihat Execution Duration Distribution, Execution Duration, dan Executions semua pernyataan SQL dalam rentang waktu yang dipilih. Anda juga dapat melihat detail semua pernyataan SQL di bagian Full Request Statistics dan mengekspor hasilnya.

      Catatan

      Anda dapat mengekspor hingga 1.000 log SQL. Untuk mendapatkan lebih banyak log SQL atau mencakup rentang waktu yang lebih panjang, gunakan fitur Audit.

    • Display by Comparison: Pilih titik waktu yang ingin Anda bandingkan hasil SQL Explorer-nya. Anda dapat melihat perbandingan Execution Duration Distribution, Execution Duration, dan Executions untuk semua pernyataan SQL. Anda juga dapat melihat hasil perbandingan detail di bagian Requests by Comparison.

    • Source Statistics: Pilih rentang waktu untuk melihat statistik tentang sumber SQL. Anda dapat melihat informasi sumber untuk semua pernyataan SQL dalam rentang waktu yang dipilih.

    • SQL Review: Melakukan analisis workload pada instans database untuk rentang waktu yang dipilih dan rentang waktu garis dasar. Fitur ini juga melakukan analisis mendalam terhadap pernyataan SQL yang berjalan pada instans dan memberikan saran optimasi indeks, saran penulisan ulang SQL, TOP SQL, SQL baru, SQL gagal, analisis fitur SQL, SQL dengan perubahan eksekusi, SQL dengan degradasi performa, serta tabel dengan trafik tertinggi. Untuk informasi selengkapnya, lihat SQL Review.

    • Related SQL Identification: Pilih metrik yang ingin Anda lihat dan klik Analysis. Setelah 1 hingga 5 menit, sistem akan mengidentifikasi dan menampilkan pernyataan SQL yang tren-nya paling sesuai dengan metrik yang dipilih dalam rentang waktu tertentu.

    Penting
    • Untuk SQL Explorer and Audit yang menggunakan penyimpanan dingin dan panas, sistem memindahkan data yang berusia lebih dari tujuh hari ke penyimpanan dingin. Saat Anda menganalisis data detail SQL yang berusia lebih dari tujuh hari, sistem membuat tugas untuk menghitung ulang dan menganalisis data tersebut. Anda dapat melihat progres dan riwayat tugas di halaman Task list.

    • Kueri terhadap data SQL Explorer and Audit yang berusia lebih dari tujuh hari dikenai biaya berdasarkan model pay-as-you-go. Untuk informasi selengkapnya, lihat billing details.

Hasil

  • Execution Duration Distribution: Menampilkan distribusi durasi eksekusi semua pernyataan SQL dalam rentang waktu yang dipilih. Durasi eksekusi dibagi menjadi tujuh interval, dihitung sekali per menit:

    • [0,1]ms menunjukkan persentase eksekusi SQL dengan durasi dari 0 ms hingga 1 ms (inklusif).

    • (1,2]ms menunjukkan persentase eksekusi SQL dengan durasi lebih dari 1 ms hingga 2 ms.

    • (2,3]ms menunjukkan persentase eksekusi SQL dengan durasi lebih dari 2 ms hingga 3 ms.

    • (3,10]ms menunjukkan persentase eksekusi SQL dengan durasi lebih dari 3 ms hingga 10 ms.

    • (10,100]ms menunjukkan persentase eksekusi SQL dengan durasi lebih dari 10 ms hingga 100 ms.

    • (0,1;1]s menunjukkan persentase eksekusi SQL dengan durasi lebih dari 0,1 detik dan hingga 1 detik.

    • >1s menunjukkan persentase eksekusi SQL dengan durasi lebih dari 1 detik.

    Catatan

    Semakin dekat Execution Duration Distribution suatu instans ke warna biru, semakin sehat performa SQL-nya. Semakin dekat ke oranye dan merah, semakin buruk performa SQL-nya.

  • Execution Duration (SQL RT): Menampilkan durasi eksekusi pernyataan SQL dalam rentang waktu yang dipilih.

  • Full Request Statistics: Menampilkan teks SQL, persentase durasi, durasi eksekusi rata-rata, dan tren eksekusi untuk setiap jenis pernyataan SQL dalam rentang waktu yang dipilih.

    Catatan

    Persentase durasi adalah total durasi eksekusi jenis SQL tertentu sebagai persentase dari total durasi eksekusi semua jenis SQL. Jenis SQL dengan persentase durasi lebih tinggi mengonsumsi lebih banyak resource pada instans MySQL.

  • SQL ID: Klik SQL ID untuk melihat tren performa dan contoh SQL untuk pernyataan tersebut.

  • SQL Sample: Gunakan SQL Sample untuk mengidentifikasi aplikasi klien mana yang memulai pernyataan SQL tersebut.

    Catatan

    Contoh SQL menggunakan encoding UTF-8.

FAQ

Q: ️SQL Explorerlogout! berarti apa di bagian Full Request Statistics pada ️SQL Explorer?

A: logout! menunjukkan pemutusan koneksi. Durasi kejadian logout! adalah selisih waktu antara interaksi terakhir dan saat logout! terjadi. Durasi ini dapat diartikan sebagai waktu idle koneksi. Status 1158 di kolom Status menunjukkan pemutusan jaringan, yang dapat disebabkan oleh hal berikut:

  • Koneksi klien mengalami timeout.

  • Server memutus koneksi secara tak terduga.

  • Server mengatur ulang koneksi karena durasi interactive_timeout atau wait_timeout telah terlampaui.

Q: ️SQL ExplorerSource Statistics pada ️SQL Explorer, mengapa tanda persen (%) muncul sebagai Access Source?

A: Hal ini dapat terjadi saat Anda menggunakan prosedur tersimpan. Anda dapat mereproduksi perilaku ini dengan mengikuti contoh berikut:

Catatan

Contoh ini menggunakan instans ApsaraDB RDS for MySQL, akun uji bernama test_user, dan database uji bernama testdb.

  1. Di Konsol ApsaraDB RDS, buat akun standar dan berikan otorisasi untuk mengakses database. Untuk informasi selengkapnya, lihat (Deprecated, redirected to "Step 1") Create a database and an account.

  2. Gunakan akun uji untuk menghubungkan ke instans database dari command line. Untuk informasi selengkapnya, lihat (Deprecated, redirected to "Step 2") Connect to an ApsaraDB RDS for MySQL instance by using a client or the CLI.

  3. Beralih ke database uji dan buat prosedur tersimpan berikut.

    -- Beralih ke database uji
    USE testdb;
    
    -- Buat prosedur tersimpan
    DELIMITER $$
    DROP PROCEDURE IF EXISTS `das` $$
    CREATE DEFINER=`test_user`@`%` PROCEDURE `das`()
    BEGIN
    SELECT * FROM information_schema.processlist WHERE Id = CONNECTION_ID();
    END $$
    DELIMITER;
  4. Gunakan akun istimewa untuk menghubungkan ke instans database. Untuk informasi selengkapnya, lihat (Deprecated, redirected to "Step 2") Connect to an ApsaraDB RDS for MySQL instance by using a client or the CLI.

  5. Panggil prosedur tersimpan tersebut.

    -- Beralih ke database uji
    USE testdb;
    
    -- Panggil prosedur tersimpan
    CALL das();
    
    +--------+-----------+--------+--------+---------+------+-----------+-------------------------------------------------------------------------+
    | ID     | USER      | HOST   | DB     | COMMAND | TIME | STATE     | INFO                                                                    |
    +--------+-----------+--------+--------+---------+------+-----------+-------------------------------------------------------------------------+
    | 487818 | test_user | %:2065 | testdb | Query   |    0 | executing | SELECT * FROM information_schema.processlist WHERE Id = CONNECTION_ID() |
    +--------+-----------+--------+--------+---------+------+-----------+-------------------------------------------------------------------------+

Q: Mengapa nama database dalam daftar log berbeda dengan yang ada di pernyataan SQL?

A: Nama database dalam daftar log diambil dari session. Nama database dalam pernyataan SQL ditentukan oleh pengguna dan bergantung pada input atau desain kueri pengguna, seperti dalam kueri lintas database atau SQL dinamis. Oleh karena itu, keduanya mungkin tidak konsisten.

Q: Apakah mengaktifkan SQL Explorer and Audit memengaruhi performa database? Jika ya, seberapa besar dampaknya?

A: Ya, tetapi dampaknya minimal dan hampir tidak terasa.

Konsumsi resource adalah sebagai berikut:

  • CPU dan memory: Konsumsinya sangat rendah dan dapat diabaikan.

  • Storage space: Terutama digunakan untuk menyimpan informasi audit. Namun, fitur SQL Explorer and Audit di DAS Enterprise Edition menggunakan storage space di sisi DAS dan tidak menghabiskan storage space instans database Anda.

  • Network: Tidak ada dampak terhadap performa jaringan.

  • Disk performance: Tidak ada dampak terhadap performa disk karena data audit disimpan di sisi DAS, bukan di disk instans database.

Q: Mengapa pernyataan SQL yang ditangkap tidak lengkap? Bagaimana cara melihat pernyataan lengkapnya?

A: Hal ini terjadi jika pernyataan SQL yang dieksekusi terlalu panjang. Di SQL Explorer, cari thread ID atau transaction ID yang sesuai untuk melihat pernyataan lengkapnya.

Q: Dalam log audit instans ApsaraDB RDS for PostgreSQL, mengapa beberapa pernyataan SQL ditampilkan sebagai -?

A: Ketika parameter log_statement instans ApsaraDB RDS for PostgreSQL diatur ke all, pernyataan kosong yang dikirim oleh klien juga dicatat dalam log audit. Pernyataan kosong ini muncul sebagai - di kolom pernyataan SQL log audit, yang merupakan perilaku yang diharapkan. Kami menyarankan Anda meninjau kode sumber di sisi klien untuk mengoptimalkan logika pengiriman pernyataan kosong.

API terkait

API

Deskripsi

GetErrorRequestSample

Mengkueri secara asinkron hingga 20 sampel kueri SQL gagal dari hasil SQL Explorer instans database dalam rentang waktu tertentu.

GetAsyncErrorRequestStatResult

Mengambil secara asinkron jumlah eksekusi gagal untuk pernyataan SQL tertentu dari hasil SQL Explorer instans database.

GetAsyncErrorRequestListByCode

Mengkueri secara asinkron ID SQL dari pernyataan yang menghasilkan kode kesalahan MySQL tertentu dari hasil SQL Explorer instans database.

GetAsyncErrorRequestStatByCode

Mengkueri secara asinkron kode kesalahan MySQL dan jumlah kueri SQL yang sesuai dengan setiap kode kesalahan dari hasil SQL Explorer instans database.

GetFullRequestOriginStatByInstanceId

Mengumpulkan statistik data permintaan lengkap dari hasil SQL Explorer instans database, dikelompokkan berdasarkan sumber akses.

GetFullRequestStatResultByInstanceId

Mengumpulkan secara asinkron statistik data permintaan lengkap dari hasil SQL Explorer instans database, dikelompokkan berdasarkan SQL ID.

GetFullRequestSampleByInstanceId

Mengkueri hingga 20 sampel SQL berdasarkan SQL ID dari hasil SQL Explorer instans database.

GetDasSQLLogHotData

Mengkueri detail data dalam penyimpanan panas dari tujuh hari terakhir untuk SQL Explorer and Audit instans database.

Praktik terbaik

Troubleshoot slow SQL queries