All Products
Search
Document Center

Database Autonomy Service:Tata kelola kueri

Last Updated:Aug 28, 2026

Database Autonomy Service (DAS) menggunakan analisis data offline untuk menganalisis dan secara otomatis memberi tag kueri SQL lambat dari semua instans Anda pada hari sebelumnya. Proses ini dijalankan setiap hari pukul 01.00. DAS secara otomatis mengklasifikasikan kueri SQL lambat, memprioritaskannya untuk optimasi, serta memberikan saran tata kelola dan ekspor data.

Prasyarat

  • Instansiasi basis data target adalah PolarDB for MySQL.

  • Fitur ini mendukung instansiasi basis data di wilayah Tiongkok daratan, China (Hong Kong), dan Singapura.

    Catatan

    Mulai 1 April 2023, tata kelola kueri mendukung instansiasi basis data di wilayah China (Hong Kong) dan Singapura.

Batasan

  • Tata kelola kueri menggunakan analisis offline T+1. Jika Anda memberi tag kueri SQL sebagai Optimization Not Required, perubahan jumlah kueri Optimizable SQL akan muncul pada hari berikutnya.

  • Tag SQL bawaan dari DAS tidak dapat dinonaktifkan.

  • Untuk setiap instansiasi basis data, DAS hanya menganalisis 200 kueri SQL lambat teratas berdasarkan jumlah eksekusi. Oleh karena itu, jumlah maksimum Slow SQL Templates untuk setiap instans adalah 200.

Konsep utama

Term

Description

Optimizable SQL

Setelah mengecualikan SQL statements that do not require optimization dari semua pernyataan SQL lambat, pernyataan yang tersisa adalah Optimizable SQL.

SQL Not Requiring Optimization

Mencakup kueri yang secara otomatis diberi tag oleh DAS sebagai Ignored dan kueri yang diberi tag manual oleh pengguna sebagai Optimization Not Required.

Ignored

DAS secara otomatis memberi tag pernyataan SQL sebagai Optimization Not Required, seperti yang diawali dengan show, create, xa, commit, rollback, select sleep, atau explain.

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, pilih Request Analysis > Slow Logs > Query Governance.

  5. Di halaman Query Governance, lihat hasil analisis.

    • Overview of query governance results: Lihat data statistik kueri yang diberi tag dan diklasifikasikan secara otomatis.

      Catatan

      DAS hanya menghitung Failed SQL Executions untuk instans yang telah mengaktifkan DAS Enterprise Edition.

    • Query governance trend: Lihat tren hasil tata kelola kueri dalam rentang waktu yang dipilih.

    • Top Rankings: Lihat daftar Best-performing Instances dan Worst-performing Instances.

      • Worst-performing Instances: Lihat jumlah eksekusi kueri lambat untuk setiap instansiasi basis data.

      • Best-performing Instances: Lihat perubahan jumlah eksekusi kueri lambat untuk setiap instansiasi basis data. Angka negatif menunjukkan penurunan jumlah eksekusi kueri lambat, yang mengindikasikan optimasi berhasil. Angka positif menunjukkan peningkatan.

      DAS merekomendasikan agar Anda fokus pada daftar peringkat teratas untuk Optimizable SQL.

    • SQL to Be Optimized: Tetapkan kondisi filter untuk mengidentifikasi pernyataan SQL yang ingin Anda optimalkan.

      Catatan

      Anda dapat memfilter pernyataan SQL berdasarkan nama DB, kata kunci SQL, tag aturan, dan username database. Kondisi-kondisi ini digabungkan dengan operator logika AND.

      • Untuk menentukan beberapa nama DB, pisahkan dengan koma (,). Operator logika di antara mereka adalah OR.

      • Untuk menentukan beberapa kata kunci SQL, pisahkan dengan spasi. Operator logika di antara mereka adalah AND.

      • Untuk menentukan beberapa username database, pisahkan dengan koma (,). Operator logika di antara mereka adalah OR.

      • Anda dapat memilih beberapa tag aturan. Operator logika di antara tag aturan tersebut adalah OR.

      • Di kolom Actions sampel SQL tertentu, klik Suggestions untuk melihat saran optimasi terperinci.

      • Di kolom Actions sampel SQL tertentu, klik Add Tag untuk memberi tag manual pernyataan SQL tersebut. Untuk informasi lebih lanjut tentang makna tag, lihat Manually added SQL tags.

        Anda juga dapat menambahkan tag ke beberapa pernyataan SQL sekaligus.

      • Di kolom Actions sampel SQL tertentu, klik Samples untuk melihat detail sampel log lambat untuk pernyataan SQL tersebut.

      • Di kolom Actions sampel SQL tertentu, klik Trend untuk melihat detail analisis log lambat pernyataan SQL tersebut. Untuk informasi lebih lanjut tentang analisis log lambat, lihat Slow Logs.

      Anda dapat mengekspor dan berbagi data untuk pernyataan SQL yang perlu dioptimalkan. Untuk informasi lebih lanjut, lihat Best practices.

    • Failed SQL: Tetapkan kondisi filter untuk mengidentifikasi pernyataan SQL yang ingin Anda lihat.

      Catatan
      • DAS hanya menghitung templat Failed SQL untuk instans yang telah mengaktifkan DAS Enterprise Edition.

      • Anda dapat memfilter pernyataan SQL berdasarkan nama DB dan kata kunci SQL. Kondisi-kondisi ini digabungkan dengan operator logika AND.

        • Untuk menentukan beberapa nama DB, pisahkan dengan koma (,). Operator logika di antara mereka adalah OR.

        • Untuk menentukan beberapa kata kunci SQL, pisahkan dengan spasi. Operator logika di antara mereka adalah AND.

      Di kolom Actions sampel SQL tertentu, klik Samples untuk melihat detail sampel SQL tersebut.

Praktik terbaik

  • Gunakan tag untuk menentukan apakah suatu pernyataan SQL perlu dioptimalkan:

    Logika inti tata kelola kueri adalah membagi semua slow queries menjadi dua kategori: Optimization Not Required dan Optimizable SQL. Anda dapat menggunakan tag SQL berikut untuk memfilter kueri secara cepat dan mengoptimalkannya berdasarkan prioritas.

    ID

    Tag name

    Level

    Recommendation

    Description

    NEW_SQL

    New slow SQL

    Critical

    ✔️

    Kueri SQL lambat yang belum pernah muncul dalam tujuh hari terakhir.

    DAS_IGNORE

    DAS ignored

    Notice

    DAS secara otomatis memberi tag kueri sebagai tidak memerlukan optimasi. Contohnya termasuk pernyataan SQL yang diawali dengan show, create, xa, commit, rollback, select sleep, atau explain.

    FUZZY_LIKE

    Fuzzy LIKE query

    Notice

    Klausa like digunakan untuk pencocokan kabur, yang mencegah penggunaan indeks.

    HAS_EXPR

    Contains expression

    Notice

    Kueri berisi ekspresi. Kolom yang terlibat dalam perhitungan tidak dapat menggunakan indeks.

    LARGE_IN_LIST

    Large IN list

    Notice

    Klausa IN berisi lebih dari 200 elemen, yang kemungkinan besar dihasilkan oleh program. Indeks tidak dapat digunakan pada kolom yang terlibat.

    SELECT_STAR

    SELECT full column

    Notice

    Saat menggunakan SELECT, tentukan hanya bidang yang diperlukan untuk menghindari masalah performa dan pemborosan resource akibat pengembalian kolom yang tidak perlu.

    INDEX_ADVISOR

    Index suggestion

    Notice

    ✔️

    Saran untuk membuat indeks guna mempercepat eksekusi SQL.

    COMPLEX_JOIN

    Complex JOIN

    Notice

    Jangan join lebih dari tiga tabel. Bidang yang Anda join harus memiliki tipe data yang identik. Untuk join multi-tabel, pastikan bidang join telah diindeks.

    CROSS_DB

    Cross-database query

    Notice

    Saat melakukan migrasi database dan tabel lintas instans, kueri lintas database mungkin menjadi tidak tersedia.

    SUBQUERY

    Contains subquery

    Notice

    Kueri berisi subkueri. Pertimbangkan untuk menulis ulang dengan JOIN untuk performa yang lebih baik.

    DEEP_PAGING

    Deep paging

    Critical

    Kueri menggunakan klausa LIMIT untuk halaman dalam. Kami merekomendasikan menulis ulang kueri dengan join.

    WITHOUT_PREDICATE

    No predicate

    Critical

    ✔️

    Pernyataan tidak berisi predikat. Periksa apakah melibatkan pemindaian tabel penuh.

    NULL_COMPARE

    NULL match error

    Critical

    Gunakan IS NULL atau IS NOT NULL untuk memeriksa nilai NULL, karena perbandingan langsung antara nilai dan NULL selalu menghasilkan NULL.

    COUNT_NOT_STAR

    Improper COUNT syntax

    Critical

    Gunakan COUNT(*) alih-alih count(column_name) atau count(constant). count(*) adalah sintaks standar untuk menghitung baris menurut definisi SQL92. Sintaks ini independen terhadap database dan tidak terpengaruh oleh nilai NULL atau non-NULL. count(column_name) tidak menghitung baris di mana kolom memiliki nilai NULL.

    LARGE_ROWS_EXAMINED

    Excessive rows scanned

    Notice

    Kueri memindai lebih dari 50.000 baris rata-rata. Pemindaian berlebihan mengonsumsi lebih banyak resource, yang memperlambat kueri dan dapat memengaruhi performa database secara keseluruhan.

    Catatan

    Pertimbangkan untuk menggunakan kondisi filter yang lebih selektif.

    LARGE_ROWS_SENT

    Excessive rows returned

    Notice

    Kueri mengembalikan lebih dari 5.000 baris rata-rata. Pertimbangkan untuk mengurangi jumlah baris yang dikembalikan.

    NO_ADVICE

    No suggestion

    Notice

    Tidak tersedia saran analisis.

    PERIOD_SQL

    Periodic SQL

    Notice

    Dijalankan pada waktu tetap setiap hari.

    DAS merekomendasikan agar Anda fokus pada Optimizable SQL. Anda dapat memberi tag kueri sebagai Optimization Not Required, seperti yang dijelaskan dalam tabel di bawah, untuk terus mengurangi jumlah kueri dalam kategori Optimizable SQL. Tag SQL berikut dapat ditambahkan secara manual.

    ID

    Tag name

    Level

    Description

    USER_IGNORE

    No need to optimize

    Notice

    Setelah Anda menambahkan tag ini, DAS mengecualikan kueri tersebut dari statistik Optimizable SQL pada hari berikutnya.

    DAS_IMPORTANT

    Important SQL

    Notice

    Menandai kueri SQL sebagai penting.

    DAS_NOT_IMPORTANT

    Not important SQL

    Notice

    Menandai kueri SQL sebagai tidak penting.

    DAS_IN_PLAN

    Optimization planned

    Notice

    Menandai kueri SQL sebagai dijadwalkan untuk optimasi.

  • Ekspor data:

    • Anda dapat mengklik Create Export Task untuk mengunduh semua data yang saat ini ditampilkan di tab SQL Details.

      Catatan

      Data yang diekspor tersedia untuk diunduh selama tiga hari.

    • Buat tugas unduh dengan kondisi filter berbeda, seperti instans atau aturan, dan tetapkan kepada pemilik berbeda untuk optimasi.

    • Atau, pilih beberapa catatan SQL untuk hanya mengekspor item-item tersebut.

  • Berbagi data:

    Berbagi kueri SQL lambat yang telah difilter dengan anggota tim melalui dua cara:

    • Anda dapat memilih beberapa catatan SQL dan mengklik Batch Sharing. Sistem akan menghasilkan tautan pendek. Ketika pengguna yang memiliki izin mengakses Konsol DAS mengklik tautan tersebut, mereka hanya akan melihat catatan SQL yang Anda pilih.

    • Atau, klik Share (di samping Export) untuk menghasilkan URL yang menangkap tampilan Anda saat ini, termasuk semua filter. Pengguna dengan izin Konsol DAS dapat membuka URL tersebut untuk melihat data yang sama tanpa perlu mengonfigurasi ulang filter.