全部产品
Search
文档中心

Database Autonomy Service:Penjelajah SQL

更新时间:Jul 06, 2025

Database Autonomy Service (DAS) menyediakan fitur SQL Explorer. Anda dapat menggunakan SQL Explorer untuk memeriksa status kesehatan pernyataan SQL dan menyelesaikan masalah kinerja. Topik ini menjelaskan cara menggunakan fitur SQL Explorer di modul SQL Explorer and Audit.

Prasyarat

  • Instansi database yang ingin Anda kelola terhubung ke DAS dan berada dalam keadaan Normal Access.

  • Modul SQL Explorer and Audit telah diaktifkan untuk instansi database. Untuk informasi lebih lanjut, lihat bagian Aktifkan SQL Explorer and Audit dari topik "Ikhtisar".

Deskripsi fitur

Fitur SQL Explorer mencatat informasi tentang semua pernyataan DQL, DML, dan DDL yang telah dieksekusi. DAS mendapatkan informasi tersebut dari kernel database, yang hanya mengonsumsi sejumlah kecil sumber daya CPU.

Database yang didukung dan wilayah

Untuk informasi lebih lanjut, lihat Edisi dan Fitur yang Didukung.

Catatan penggunaan

  • Setelah SQL Explorer diaktifkan untuk instansi database, data analitik dan statistik (tidak termasuk detail SQL) yang dihasilkan oleh SQL Explorer dapat disimpan selama 30 hari.

  • Durasi penyimpanan detail SQL yang dihasilkan oleh SQL Explorer sama dengan yang ditentukan saat Anda mengaktifkan DAS Enterprise Edition untuk instansi database.

  • Setelah Anda menonaktifkan modul SQL Explorer and Audit, bisnis Anda tidak akan terpengaruh. Namun, semua data yang dihasilkan oleh SQL Explorer and Audit akan dihapus. Kami menyarankan Anda mengekspor dan menyimpan data tersebut ke komputer Anda sebelum menonaktifkan fitur ini. Untuk informasi lebih lanjut, lihat bagian Nonaktifkan SQL Explorer and Audit dari topik "Ikhtisar".

  • Saat pernyataan SQL dieksekusi pada instansi ApsaraDB RDS for MySQL yang terpasang pada PolarDB-X 1.0, beberapa log SQL dihasilkan pada instansi ApsaraDB RDS for MySQL karena sharding.

  • Koneksi transien mungkin terjadi selama migrasi data instansi database. Selama migrasi data, kehilangan data adalah normal untuk SQL Explorer.

  • Jika beban instansi database tinggi, kehilangan data mungkin terjadi. Oleh karena itu, statistik yang dikumpulkan oleh SQL Explorer pada data inkremental mungkin tidak akurat.

  • Pernyataan SQL yang dicatat dalam log SQL dapat memiliki panjang hingga 8.192 byte. Anda dapat mengonfigurasi parameter untuk menentukan panjang maksimum pernyataan SQL yang dicatat dalam instansi ApsaraDB RDS for MySQL atau kluster PolarDB for MySQL.

    • Jika Anda menentukan panjang maksimum pernyataan SQL menjadi panjang yang kurang dari atau sama dengan 8.192 byte, panjang yang ditentukan digunakan sebagai batas atas dan bagian yang melebihi tidak dicatat. Awalan ditambahkan ke pernyataan SQL selama pengumpulan dan pemrosesan data. Akibatnya, panjang maksimum pernyataan SQL dalam log SQL sedikit lebih kecil dari panjang yang ditentukan.

    • Jika Anda menentukan panjang maksimum pernyataan SQL menjadi panjang yang lebih besar dari 8.192 byte, batas atasnya adalah 8.192 byte secara default. Jika panjang aktual pernyataan SQL melebihi batas atas, bagian yang melebihi tidak dicatat. Awalan ditambahkan ke pernyataan SQL selama pengumpulan dan pemrosesan data. Akibatnya, panjang maksimum pernyataan SQL dalam log SQL sedikit lebih kecil dari 8.192 byte.

    Catatan
    • Untuk instansi ApsaraDB RDS for MySQL dan kluster PolarDB for MySQL yang menjalankan MySQL 5.6 atau 5.7, panjang maksimum pernyataan SQL ditentukan oleh parameter loose_rds_audit_max_sql_size.

    • Untuk instansi ApsaraDB RDS for MySQL dan kluster PolarDB for MySQL yang menjalankan MySQL 8.0, panjang maksimum pernyataan SQL ditentukan oleh parameter loose_rds_audit_log_event_buffer_size.

  • Jika PgBouncer diaktifkan untuk instansi ApsaraDB RDS for PostgreSQL, SQL Explorer tidak mencatat pernyataan SQL yang dieksekusi menggunakan PgBouncer.

Prosedur

  1. Masuk ke Konsol DAS.

  2. Di panel navigasi di sebelah kiri, pilih Intelligent O&M Center > Instance Monitoring.

  3. Di halaman yang muncul, temukan instansi database yang ingin Anda kelola dan klik ID instansi. Halaman detail instansi akan muncul.

  4. Di panel navigasi di sebelah kiri, pilih Request Analysis > SQL Explorer and Audit. Di halaman yang muncul, klik tab SQL Explorer.

  5. Di tab SQL Explorer, gunakan fitur berikut sesuai kebutuhan bisnis Anda.

    Catatan

    Saat memilih rentang waktu, pastikan bahwa waktu akhir lebih lambat dari waktu mulai dan interval antara waktu mulai dan waktu akhir tidak melebihi 24 jam. Rentang waktu untuk menanyakan data harus lebih lambat dari waktu ketika DAS Enterprise Edition diaktifkan dan harus berada dalam durasi penyimpanan data SQL Explorer.

    • Display by Time Range: Pilih rentang waktu pernyataan SQL yang dieksekusi yang hasil SQL Explorer-nya ingin Anda tanyakan. Anda dapat melihat informasi Execution Duration Distribution, Execution Duration, dan Executions tentang semua pernyataan SQL selama rentang waktu tersebut. Anda dapat melihat detail semua pernyataan SQL selama rentang waktu tersebut dan mengekspor detailnya di bagian Full Request Statistics.

      Catatan

      Anda dapat mengekspor hingga 1.000 log SQL. Jika Anda ingin mendapatkan jumlah log SQL yang lebih besar dalam rentang waktu yang lebih besar, Anda dapat menggunakan fitur pencarian (audit).

    • Display by Comparison: Pilih tanggal dan rentang waktu pernyataan SQL yang dieksekusi yang hasil SQL Explorer-nya ingin Anda bandingkan. Anda dapat melihat hasil perbandingan Execution Duration Distribution, Execution Duration, dan Executions dari semua pernyataan SQL selama rentang waktu tersebut. Anda dapat melihat detail hasil perbandingan di bagian Requests by Comparison.

    • Source Statistics: Pilih rentang waktu pernyataan SQL yang dieksekusi yang sumber aksesnya ingin Anda kumpulkan. Kemudian, Anda dapat melihat semua sumber permintaan selama rentang waktu tersebut.

    • SQL Review: Fitur ulasan SQL melakukan analisis beban kerja pada instansi database dalam rentang waktu tertentu dan rentang waktu dasar, serta melakukan analisis mendalam pada kueri SQL yang sedang berjalan di instansi database. Fitur ini menampilkan saran optimasi indeks, saran penulisan ulang SQL, pernyataan SQL yang paling banyak mengonsumsi sumber daya, pernyataan SQL baru, pernyataan SQL yang gagal, analisis fitur SQL, pernyataan SQL dengan variasi eksekusi tinggi, pernyataan SQL dengan kinerja yang menurun, dan tabel teratas yang menghasilkan lalu lintas paling banyak untuk instansi database. Untuk informasi lebih lanjut, lihat Ulasan SQL.

    • Related SQL Identification: Pilih metrik yang ingin Anda lihat dan klik Analysis. Dibutuhkan 1 hingga 5 menit untuk mengidentifikasi pernyataan SQL yang paling sesuai dengan kinerja metrik yang ditentukan.

    Penting
    • Data yang dihasilkan oleh modul SQL Explorer and Audit yang menggunakan kombinasi mode penyimpanan panas dan dingin lebih dari tujuh hari yang lalu disimpan dalam mode penyimpanan dingin. Saat Anda menganalisis detail SQL yang dihasilkan lebih dari tujuh hari yang lalu, DAS membuat tugas untuk perhitungan dan analisis. Anda dapat mengklik Task list untuk melihat kemajuan tugas dan tugas historis.

    • Jika Anda menanyakan data yang dihasilkan oleh modul SQL Explorer and Audit lebih dari tujuh hari yang lalu, Anda akan dikenakan biaya untuk pertanyaan tersebut berdasarkan sistem bayar sesuai pemakaian. Untuk informasi lebih lanjut, lihat Detail Penagihan.

Deskripsi

  • Execution Duration Distribution: Di tab Distribusi Durasi Eksekusi, Anda dapat melihat distribusi durasi eksekusi kueri SQL berdasarkan rentang waktu yang Anda tentukan. Data statistik dikumpulkan setiap menit. Durasi eksekusi dibagi menjadi tujuh rentang:

    • [0,1] ms: menunjukkan bahwa durasi eksekusi berkisar dari 0 ms hingga 1 ms. Grafik menunjukkan persentase kueri SQL yang durasi eksekusinya berada dalam rentang ini.

    • (1,2] ms: menunjukkan bahwa durasi eksekusi lebih besar dari 1 ms dan kurang dari atau sama dengan 2 ms. Grafik menunjukkan persentase kueri SQL yang durasi eksekusinya berada dalam rentang ini.

    • (2,3] ms: menunjukkan bahwa durasi eksekusi lebih besar dari 2 ms dan kurang dari atau sama dengan 3 ms. Grafik menunjukkan persentase kueri SQL yang durasi eksekusinya berada dalam rentang ini.

    • (3,10] ms: menunjukkan bahwa durasi eksekusi lebih besar dari 3 ms dan kurang dari atau sama dengan 10 ms. Grafik menunjukkan persentase kueri SQL yang durasi eksekusinya berada dalam rentang ini.

    • (10,100] ms: menunjukkan bahwa durasi eksekusi lebih besar dari 10 ms dan kurang dari atau sama dengan 100 ms. Grafik menunjukkan persentase kueri SQL yang durasi eksekusinya berada dalam rentang ini.

    • (0.1,1]s: menunjukkan bahwa durasi eksekusi lebih besar dari 0.1 detik dan kurang dari atau sama dengan 1 detik. Grafik menunjukkan persentase kueri SQL yang durasi eksekusinya berada dalam rentang ini.

    • > 1s: menunjukkan bahwa durasi eksekusi lebih besar dari 1 detik. Grafik menunjukkan persentase kueri SQL yang durasi eksekusinya berada dalam rentang ini.

    Catatan

    Bagian pada tab Execution Duration Distribution menunjukkan waktu eksekusi pernyataan SQL pada instansi seiring waktu. Semakin besar area biru pada grafik, semakin sehat instansi ketika pernyataan SQL dieksekusi pada instansi. Semakin besar area oranye dan merah pada grafik, semakin tidak sehat instansi ketika pernyataan SQL dieksekusi pada instansi.

  • Execution Duration: Di tab Durasi Eksekusi, Anda dapat menentukan rentang waktu untuk melihat durasi eksekusi kueri SQL.

  • Full Request Statistics: Anda dapat melihat detail pernyataan SQL berdasarkan rentang waktu yang Anda tentukan. Detail tersebut mencakup teks SQL, persentase durasi eksekusi, durasi eksekusi rata-rata, dan tren eksekusi untuk setiap pernyataan SQL.

    Catatan

    Anda dapat menghitung persentase durasi eksekusi untuk pernyataan SQL yang menggunakan template SQL tertentu berdasarkan rumus berikut: Persentase durasi eksekusi = (Durasi eksekusi pernyataan SQL yang menggunakan template SQL × Jumlah eksekusi pernyataan SQL)/(Total durasi eksekusi semua pernyataan SQL × Total jumlah eksekusi) × 100%. Persentase durasi eksekusi yang lebih tinggi menunjukkan bahwa instansi database menggunakan lebih banyak sumber daya MySQL untuk mengeksekusi pernyataan SQL yang sesuai.

  • SQL ID: Anda dapat mengklik SQL ID untuk melihat tren kinerja dan data sampel pernyataan SQL yang menggunakan template SQL yang sesuai.

  • SQL Sample: Di tab SQL Sample, Anda dapat melihat klien yang memulai setiap permintaan sampel SQL.

    Catatan

    Karakter set UTF-8 digunakan untuk mengkodekan sampel SQL.

Tanya Jawab Umum

T: Apa yang dimaksud dengan pernyataan logout! di bagian Full Request Statistics pada tab SQL Explorer?

A: Pernyataan logout! menunjukkan pemutusan koneksi. Durasi eksekusi pernyataan logout! adalah selisih antara waktuantara interaksi terakhir dan waktu terjadinya pemutusan koneksi. Selama selisih waktu tersebut, koneksi tetap idle. Kode 1158 yang ditampilkan di kolom Status menunjukkan pemutusan jaringan yang mungkin disebabkan oleh alasan berikut:

  • Koneksi klien habis waktu.

  • Server terputus.

  • Koneksi ke server diatur ulang jika durasi koneksi melebihi nilai yang ditentukan oleh parameter interactive_timeout atau wait_timeout.

T: Mengapa tanda persen (%) muncul di kolom Access Source pada tab Source Statistics dari tab SQL Explorer?

A: Saat Anda menggunakan prosedur tersimpan, tanda persen (%) mungkin ditampilkan di kolom Sumber Akses pada tab Statistik Sumber dari tab SQL Explorer. Anda dapat melakukan operasi berikut untuk mereproduksi situasi ini.

Catatan

Dalam contoh ini, instansi database adalah instansi ApsaraDB RDS for MySQL, akun uji adalah test_user, dan database uji adalah testdb.

  1. Di konsol ApsaraDB RDS, buat database dan akun standar serta berikan izin pada database kepada akun standar. Untuk informasi lebih lanjut, lihat Buat akun dan database.

  2. Gunakan akun test_user untuk terhubung ke instansi database menggunakan CLI. Untuk informasi lebih lanjut, lihat Gunakan klien database atau CLI untuk terhubung ke instansi ApsaraDB RDS for MySQL.

  3. Beralih ke database testdb dan jalankan pernyataan berikut untuk membuat prosedur tersimpan:

    -- Beralih ke database testdb.
    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 terhubung ke instansi database. Untuk informasi lebih lanjut, lihat Gunakan klien database atau CLI untuk terhubung ke instansi ApsaraDB RDS for MySQL.

  5. Panggil prosedur tersimpan yang Anda buat.

    -- Beralih ke database testdb.
    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() |
    +--------+-----------+--------+--------+---------+------+-----------+-------------------------------------------------------------------------+

T: Mengapa nama database yang ditampilkan di bagian Logs tidak konsisten dengan yang ada di pernyataan SQL?

A: Nama database yang ditampilkan di bagian Log diperoleh dari sesi, sedangkan nama database dalam pernyataan SQL ditentukan oleh pengguna dan bergantung pada input atau desain kueri pengguna, seperti kueri lintas database dan SQL dinamis. Ini menyebabkan nama database yang tidak konsisten yang ditampilkan dalam pernyataan SQL dan di bagian Logs.

Q: Apakah Penjelajah SQL dan fitur Audit memengaruhi kinerja database? Jika ya, seberapa signifikan dampaknya?

A: Ya, fitur SQL Explorer and Audit memiliki dampak kecil terhadap kinerja database, tetapi dampak tersebut hampir tidak terlihat.

Berikut ini dijelaskan dampak terhadap konsumsi sumber daya:

  • CPU dan Memori: Penggunaan CPU dan memori sangat rendah, hampir tidak terdeteksi.

  • Ruang Penyimpanan: SQL Explorer and Audit tidak memengaruhi ruang penyimpanan instansi database karena data audit disimpan di DAS.

  • Jaringan: SQL Explorer and Audit tidak berpengaruh pada kinerja jaringan.

  • Kinerja Disk: SQL Explorer and Audit tidak memengaruhi kinerja disk karena data audit disimpan di DAS, bukan di disk instansi database.

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

A: Pernyataan SQL yang dieksekusi terlalu panjang. Di SQL Explorer, cari menggunakan ID thread atau ID transaksi yang sesuai untuk melihat detailnya.

Operasi API terkait

Operasi

Deskripsi

GetErrorRequestSample

Menanyakan informasi tentang kueri SQL yang gagal dalam data SQL Explorer instansi database secara asinkron. Anda dapat menanyakan hingga 20 kueri SQL yang gagal dalam rentang waktu tertentu.

GetAsyncErrorRequestStatResult

Menanyakan jumlah eksekusi gagal dari template SQL dalam data SQL Explorer instansi database secara asinkron.

GetAsyncErrorRequestListByCode

Menanyakan ID pernyataan SQL yang menghasilkan kode kesalahan MySQL dalam data SQL Explorer instansi database secara asinkron.

GetAsyncErrorRequestStatByCode

Menanyakan kode kesalahan MySQL dalam data SQL Explorer instansi database dan jumlah kueri SQL yang sesuai dengan setiap kode kesalahan secara asinkron.

GetFullRequestOriginStatByInstanceId

Menanyakan statistik permintaan penuh dalam data SQL Explorer instansi database berdasarkan sumber akses.

GetFullRequestStatResultByInstanceId

Menanyakan statistik permintaan penuh dalam data SQL Explorer instansi database berdasarkan ID SQL secara asinkron.

GetFullRequestSampleByInstanceId

Menanyakan sampel pernyataan SQL dalam data SQL Explorer instansi database berdasarkan ID SQL. Anda dapat menanyakan hingga 20 sampel pernyataan SQL.

GetDasSQLLogHotData

Menanyakan detail data penyimpanan panas yang dihasilkan oleh modul SQL Explorer and Audit untuk instansi database dalam tujuh hari terakhir.

Praktik Terbaik

Memecahkan Masalah Kueri Lambat