Database Autonomy Service (DAS) menyediakan fitur tata kelola kueri. Setiap hari pada pukul 01:00:00, sistem secara otomatis menganalisis semua kueri lambat yang dijalankan pada instance database Anda selama hari sebelumnya dan menambahkan tag ke template SQL berdasarkan tingkat keparahan. Hal ini membantu mengkategorikan dan mengoptimalkan kueri lambat. DAS juga memberikan saran untuk mengoptimalkan template SQL serta memungkinkan Anda mengekspor data tata kelola kueri.
Prasyarat
Instance database yang ingin dikelola harus termasuk salah satu jenis berikut:
ApsaraDB RDS for MySQL
PolarDB for MySQL
ApsaraDB MyBase for MySQL
ApsaraDB RDS for PostgreSQL
Instance database harus berada di wilayah Tiongkok Daratan, Tiongkok (Hong Kong), atau Singapura.
CatatanMulai 1 April 2023, fitur tata kelola kueri didukung untuk instance database di wilayah Tiongkok (Hong Kong) dan Singapura.
Batasan
Fitur tata kelola kueri diimplementasikan dengan menganalisis data luring pada hari setelah transaksi (T+1). Sebagai contoh, jika Anda menambahkan tag Optimization Not Required ke template SQL, template tersebut akan dihapus dari daftar template SQL yang perlu dioptimalkan pada hari berikutnya.
Tag yang ditambahkan oleh sistem tidak dapat diubah atau dihapus.
Untuk setiap instance database, DAS hanya menghitung dan menganalisis 200 kueri lambat yang paling sering dijalankan. Ini menunjukkan bahwa jumlah maksimum template SQL lambat dari sebuah instance database adalah 200.
Istilah
Istilah | Deskripsi |
Optimizable SQL | Template SQL yang menyebabkan kueri lambat dan perlu dioptimalkan. |
SQL templates that do not need to be optimized | Template SQL yang menyebabkan kueri lambat dan kepada mana DAS secara otomatis menambahkan tag Ignored atau kepada mana Anda menambahkan tag Optimization Not Required. |
Ignored | Template SQL yang menyebabkan kueri lambat dan kepada mana DAS secara otomatis menambahkan tag Optimization Not Required. Template SQL ini mencakup template SQL yang dimulai dengan pernyataan |
Prosedur
- Masuk ke Konsol DAS.
Di panel navigasi sebelah kiri, pilih Intelligent O&M Center > Query Governance.
Di halaman Query Governance, lihat hasil tata kelola kueri.
Anda dapat menentukan waktu, wilayah, dan mesin database, serta memasukkan satu atau lebih ID instance untuk melihat hasil tata kelola kueri dari instance database tertentu yang ditampilkan di bagian berikut:
Overview: Bagian ini menampilkan hasil tata kelola kueri setelah template SQL dikategorikan dan tag ditambahkan ke template SQL.
CatatanUntuk melihat Failed SQL Executions, Anda harus membeli DAS Enterprise Edition.
Trend chart: Bagian ini menampilkan tren perubahan dalam hasil tata kelola kueri dalam rentang waktu tertentu.
Top Rankings: Bagian ini menampilkan grafik Best-performing Instances dan Worst-performing Instances.
Instance Berperforma Terburuk: Instance database ditampilkan dalam urutan menurun berdasarkan jumlah kueri lambat yang dijalankan pada setiap instance. Ini membantu mengidentifikasi instance dengan jumlah kueri lambat terbesar.
Instance Berperforma Terbaik: Instance database ditampilkan dalam urutan menaik berdasarkan perubahan jumlah kueri lambat yang dijalankan pada setiap instance. Nilai negatif menunjukkan penurunan jumlah kueri lambat dibandingkan hari sebelumnya, sedangkan nilai positif menunjukkan peningkatan. Ini membantu mengidentifikasi instance di mana optimasi SQL paling efektif.
Disarankan untuk segera memperhatikan instance dengan jumlah kueri lambat terbesar dan instance di mana optimasi SQL paling efektif.
SQL to Be Optimized: Anda dapat menentukan kondisi filter untuk menyaring pernyataan SQL yang ingin dikelola.
CatatanAnda dapat menentukan kondisi filter berikut: nama database, kata kunci SQL, tag aturan, dan nama pengguna akun database. Keempat kondisi filter dievaluasi menggunakan operator AND.
Pisahkan beberapa nama database dengan koma (,). Nama database dievaluasi menggunakan operator OR.
Pisahkan beberapa kata kunci SQL dengan spasi. Kata kunci SQL dievaluasi menggunakan operator AND.
Pisahkan nama pengguna dari beberapa akun database dengan koma (,). Nama pengguna dievaluasi menggunakan operator OR.
Anda dapat memilih beberapa tag aturan. Aturan yang dipilih dievaluasi menggunakan operator OR.
Anda dapat menemukan pernyataan SQL sampel dan klik Suggestions di kolom Actions untuk melihat saran tentang tata kelola kueri.
Anda dapat menemukan pernyataan SQL sampel dan klik Add Tag di kolom Actions untuk menambahkan tag ke pernyataan SQL. Untuk informasi lebih lanjut tentang tag, lihat deskripsi tag dalam topik ini.
Anda juga dapat memilih beberapa pernyataan SQL sampel untuk menambahkan tag ke pernyataan SQL tersebut sekaligus.
Anda dapat menemukan pernyataan SQL sampel dan klik Sample di kolom Actions untuk melihat log kueri lambat dari pernyataan SQL.
Anda dapat menemukan pernyataan SQL sampel dan klik Trend di kolom Actions untuk melihat detail analisis log kueri lambat dari pernyataan SQL. Untuk informasi lebih lanjut tentang cara menganalisis dan mengelola kueri lambat, lihat Log kueri lambat.
Anda dapat mengekspor dan berbagi data template SQL yang perlu dioptimalkan sesuai kebutuhan bisnis Anda. Untuk informasi lebih lanjut, lihat bagian Praktik Terbaik dari topik ini.
Failed SQL: Anda dapat menentukan kondisi filter untuk menyaring pernyataan SQL yang ingin dilihat.
CatatanUntuk melihat Failed SQL, Anda harus membeli DAS Enterprise Edition.
Anda dapat menentukan nama database dan kata kunci SQL untuk menyaring pernyataan SQL. Kondisi filter dievaluasi menggunakan operator AND.
Pisahkan beberapa nama database dengan koma (,). Nama database dievaluasi menggunakan operator OR.
Pisahkan beberapa kata kunci SQL dengan spasi. Kata kunci SQL dievaluasi menggunakan operator AND.
Anda dapat menemukan pernyataan SQL sampel dan klik Sample di kolom Actions untuk melihat detail pernyataan SQL.
Praktik terbaik
Gunakan tag untuk mengidentifikasi template SQL yang perlu dioptimalkan.
Fitur tata kelola kueri mengklasifikasikan SQL templates that cause slow queries menjadi dua kategori: template SQL yang tidak perlu dioptimalkan dan template SQL yang perlu dioptimalkan. Anda dapat menggunakan tag untuk menyaring template SQL dan mengoptimalkan template SQL berdasarkan tingkat keparahan yang ditunjukkan oleh tag. Tabel berikut menjelaskan tag yang didukung oleh DAS.
ID
Nama
Tingkat keparahan
Perhatian segera diperlukan
Deskripsi
NEW_SQL
SQL Lambat Baru
Kritis
✔️
Template SQL yang menyebabkan kueri lambat dalam tujuh hari terakhir.
DAS_IGNORE
Diabaikan
Normal
➖
Template SQL kepada mana DAS secara otomatis menambahkan tag Optimization Not Required. Template SQL ini mencakup template SQL yang dimulai dengan pernyataan
SHOW,CREATE,XA,COMMIT,ROLLBACK,SELECT SLEEP, atauEXPLAIN.FUZZY_LIKE
Kueri LIKE
Normal
➖
Template SQL di mana operator
LIKEdigunakan untuk implementasi pencocokan fuzzy. Indeks tidak dapat digunakan dalam kueri yang mengandung operator LIKE.HAS_EXPR
Ekspresi Termuat
Normal
➖
Template SQL yang mengandung ekspresi perhitungan. Indeks tidak dapat digunakan pada kolom yang terlibat.
LARGE_IN_LIST
Kueri Daftar Besar
Normal
➖
Template SQL di mana lebih dari 200 elemen ditentukan untuk operator
IN. Template SQL seperti itu mungkin dihasilkan secara otomatis oleh program. Indeks tidak dapat digunakan pada kolom yang terlibat.SELECT_STAR
Kueri Kolom Penuh
Normal
➖
Template SQL di mana satu atau lebih bidang ditentukan dalam klausa
SELECT, tetapi tidak ada kondisi yang ditentukan. Jika Anda tidak menentukan kondisi, sumber daya terbuang untuk menanyakan data yang tidak perlu. Ini mengurangi performa kueri.INDEX_ADVISOR
Saran Indeks
Normal
✔️
Template SQL yang digunakan untuk menanyakan data dari tabel yang tidak diindeks. Kami merekomendasikan agar Anda membuat dan menggunakan indeks untuk mempercepat kueri SQL.
COMPLEX_JOIN
Kueri JOIN Kompleks
Normal
➖
Template SQL di mana operator JOIN digunakan untuk menggabungkan lebih dari tiga tabel. Anda tidak dapat menggunakan operator
JOINuntuk menggabungkan lebih dari tiga tabel. Tipe data dari bidang yang ditentukan dalam tabel yang ingin Anda gabungkan harus sama. Sebelum Anda menggabungkan beberapa tabel, pastikan Anda membuat indeks untuk bidang yang ingin Anda tanyakan dalam tabel.CROSS_DB
Kueri Lintas Database
Normal
➖
Template SQL yang digunakan untuk menanyakan data di database yang berbeda. Setelah database atau tabel dipindahkan dari instance database asli ke instance database lain, kueri lintas database mungkin gagal.
SUBQUERY
Subkueri Termuat
Normal
➖
Template SQL yang mengandung pernyataan SQL untuk subkueri. Kami merekomendasikan agar Anda menulis ulang template SQL dan menggunakan operator
JOINuntuk membuat kueri lebih efisien.DEEP_PAGING
Paging Dalam
Kritis
➖
Template SQL di mana operator
LIMITdigunakan untuk mengimplementasikan metode paging dalam. Kami merekomendasikan agar Anda menulis ulang template SQL dan menggunakan operator JOIN sebagai ganti operator LIMIT.WITHOUT_PREDICATE
Tidak Ada Predikat
Kritis
✔️
Template SQL yang tidak mengandung predikat. Periksa apakah bisnis Anda memerlukan pemindaian tabel penuh. Jika bisnis Anda tidak memerlukan pemindaian tabel penuh, tulis ulang template SQL.
NULL_COMPARE
Kesalahan Pencocokan Null
Kritis
➖
Template SQL di mana fungsi
ISNULL()digunakan untuk memeriksa nilaiNULL. Anda tidak dapat menggunakan fungsi ISNULL() untuk menemukan nilai NULL karenaNULLdikembalikan jika salah satu nilainya adalah NULL.COUNT_NOT_STAR
Sintaks COUNT Tidak Valid
Kritis
➖
Template SQL yang mengandung sintaks COUNT tidak valid. Gunakan
COUNT(*)untuk menanyakan jumlah catatan data. Jangan gunakan sintaksCOUNT (Nama kolom)atauCOUNT (Konstanta).COUNT(*)adalah sintaks standar yang didefinisikan dalam SQL92 untuk menanyakan jumlah baris. Sintaks COUNT(*) menghitung jumlah catatan data yang mencakup nilaiNULLdan dapat dieksekusi pada semua jenis database. SintaksCOUNT (Nama kolom)tidak menghitung nilaiNULL.LARGE_ROWS_EXAMINED
Baris Diperiksa Berlebihan
Normal
➖
Template SQL yang digunakan untuk memindai lebih dari 50.000 baris secara rata-rata. Jumlah baris yang lebih besar mengonsumsi jumlah sumber daya database yang lebih besar. Hal ini menyebabkan kueri SQL berjalan lambat dan memengaruhi kueri SQL lainnya.
CatatanKami merekomendasikan agar Anda menggunakan kondisi filter yang lebih spesifik dalam pernyataan SQL.
LARGE_ROWS_SENT
Baris Dikembalikan Berlebihan
Normal
➖
Template SQL yang digunakan dalam kueri di mana lebih dari 5.000 baris data secara rata-rata dikembalikan. Kami merekomendasikan agar Anda memodifikasi template SQL untuk mengurangi jumlah baris yang dikembalikan.
NO_ADVICE
Tidak ada saran
Normal
➖
Tidak ada saran yang diberikan.
PERIOD_SQL
Periodik
Normal
➖
Template SQL yang dijalankan pada waktu tertentu setiap hari.
Disarankan untuk segera memperhatikan template SQL yang perlu dioptimalkan. Sebelum sistem menganalisis kueri lambat setiap hari, Anda dapat secara manual menambahkan salah satu tag yang dijelaskan dalam tabel berikut ke template SQL. Ini dapat mengurangi jumlah template SQL yang perlu dioptimalkan.
ID
Nama
Tingkat Keparahan
Deskripsi
USER_IGNORE
Tidak Perlu Dioptimalkan
Normal
Setelah Anda menambahkan tag ini ke template SQL, template SQL tersebut tidak akan dihitung dalam template SQL yang perlu dioptimalkan pada hari berikutnya.
DAS_IMPORTANT
SQL Prioritas Tinggi
Normal
Tambahkan tag ini ke template SQL yang memiliki prioritas tinggi.
DAS_NOT_IMPORTANT
SQL Prioritas Rendah
Normal
Tambahkan tag ini ke template SQL yang memiliki prioritas rendah.
DAS_IN_PLAN
Optimalkan Nanti
Normal
Tambahkan tag ini ke template SQL yang akan dioptimalkan nanti.
Ekspor data.
Klik Export di pojok kanan atas bagian SQL Details untuk mengekspor data dari template SQL yang difilter.
CatatanData yang diekspor tersedia untuk diunduh selama tiga hari.
Anda dapat menentukan kondisi berbeda untuk menyaring template SQL. Misalnya, Anda dapat menyaring template SQL berdasarkan database atau tag aturan, membuat tugas unduhan, dan kemudian menetapkan pemilik berbeda untuk mengoptimalkan template SQL berdasarkan database atau tag aturan.
Anda juga dapat memilih beberapa template SQL dan mengekspor data dari template SQL yang dipilih.
Berbagi data.
Anda dapat menyaring template SQL dan membagikan template SQL yang difilter kepada pemilik dari template SQL terkait. Anda dapat menggunakan salah satu metode berikut untuk berbagi data:
Pilih template SQL dan klik Batch Sharing di bagian bawah. Sistem menghasilkan URL. Di halaman yang dituju oleh URL tersebut, informasi tentang template SQL yang dipilih ditampilkan. Jika Anda diberi izin pada DAS, Anda dapat mengunjungi halaman tersebut untuk melihat informasi tentang template SQL yang dipilih.
Tentukan kondisi untuk menyaring template SQL dan klik Share di sebelah kanan Export. Sistem menghasilkan URL. Di halaman yang dituju oleh URL tersebut, informasi tentang template SQL yang difilter ditampilkan. Jika Anda diberi izin pada DAS, Anda dapat mengunjungi halaman tersebut untuk melihat informasi tentang semua template SQL yang difilter.
Operasi API Terkait
Operasi | Deskripsi |
Menambahkan satu atau lebih tag ke template SQL. | |
Mengkueri template SQL yang gagal dijalankan. | |
Mengkueri pernyataan SQL gagal dalam sebuah template SQL. | |
Mengkueri saran yang diberikan oleh fitur tata kelola kueri untuk mengoptimalkan sebuah template SQL. | |
Mengkueri daftar tag yang ditambahkan oleh fitur tata kelola kueri ke kueri lambat pada instance database. | |
Mengkueri data tren dari fitur tata kelola kueri. | |
Mengkueri informasi tentang instance database berperforma terbaik dan terburuk berdasarkan data tata kelola kueri. | |
Mengkueri informasi tentang template SQL berdasarkan data tata kelola kueri. | |
Mengkueri tag dari sebuah template SQL. | |
Mengkueri URL berbagi dari fitur tata kelola kueri. |