Database Autonomy Service (DAS) menyediakan fitur tata kelola kueri. Setiap hari pada pukul 01:00:00, sistem secara otomatis menganalisis semua kueri lambat yang dieksekusi di instance database Anda selama hari sebelumnya dan menambahkan tag ke template SQL berdasarkan tingkat keparahan. Fitur ini membantu mengategorikan serta mengoptimalkan kueri lambat. DAS juga memberikan rekomendasi untuk mengoptimalkan template SQL dan memungkinkan Anda mengekspor data tata kelola kueri.
Prasyarat
Instance database tujuan adalah kluster PolarDB for MySQL.
Instance database diterapkan di wilayah daratan Tiongkok, wilayah Tiongkok (Hong Kong), atau wilayah 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 sehari 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 menganalisis 200 kueri lambat yang paling sering dieksekusi. Ini berarti 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 bilah navigasi sebelah kiri, pilih Intelligent O&M Center > Instance Monitoring.
Di halaman yang muncul, temukan instance database yang ingin Anda kelola dan klik ID instance. Halaman detail instance akan terbuka.
Di bilah navigasi sebelah kiri, pilih
Di tab Query Governance, tinjau hasil tata kelola kueri.
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 Edisi Perusahaan.
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: Menampilkan jumlah kueri lambat yang dieksekusi pada setiap instance.
Instance Berperforma Terbaik: Menampilkan perubahan jumlah kueri lambat yang dieksekusi pada setiap instance. Nilai negatif menunjukkan lebih sedikit kueri lambat dibandingkan hari sebelumnya, sementara nilai positif menunjukkan lebih banyak kueri lambat. Nilai negatif menandakan bahwa optimisasi SQL efektif.
Fokuskan perhatian pada instance dengan jumlah kueri lambat tertinggi dan instance dengan optimisasi SQL paling efektif.
SQL to Be Optimized: Tentukan kondisi filter untuk menyaring pernyataan SQL yang ingin Anda kelola.
CatatanAnda dapat menentukan kondisi filter berikut: nama database, kata kunci SQL, tag aturan, dan nama pengguna akun database. Keempat kondisi tersebut 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.
Temukan pernyataan SQL sampel dan klik Suggestions di kolom Actions untuk melihat saran tentang tata kelola kueri.
Temukan 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 secara bersamaan.
Temukan pernyataan SQL sampel dan klik Sample di kolom Actions untuk melihat log kueri lambat dari pernyataan SQL.
Temukan pernyataan SQL sampel dan klik Trend di kolom Actions untuk melihat detail analisis log kueri lambat. 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 dalam topik ini.
Failed SQL: Tentukan kondisi filter untuk menyaring pernyataan SQL yang ingin Anda lihat.
CatatanUntuk melihat Failed SQL, Anda harus membeli DAS Edisi Perusahaan.
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.
Temukan 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. Gunakan tag untuk menyaring 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 menerapkan 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 semacam 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 di tabel.CROSS_DB
Kueri Antar-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 antar-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 menerapkan metode paging dalam. Kami merekomendasikan agar Anda menulis ulang template SQL dan menggunakan operator JOIN alih-alih 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 nilai 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. Semakin banyak baris yang dipindai, semakin besar jumlah sumber daya database yang dikonsumsi. 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 dieksekusi pada waktu tertentu setiap hari.
Fokuskan perhatian pada 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.
Tentukan kondisi berbeda untuk menyaring template SQL. Sebagai contoh, Anda dapat menyaring template SQL berdasarkan database atau tag aturan, membuat tugas unduhan, dan 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. Gunakan salah satu metode berikut untuk berbagi data:
Pilih template SQL dan klik Batch Sharing di bagian bawah bagian tersebut. Sistem akan menghasilkan URL. Di halaman yang dituju oleh URL tersebut, informasi tentang template SQL yang dipilih akan ditampilkan. Jika Anda memiliki izin di 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 akan menghasilkan URL. Di halaman yang dituju oleh URL tersebut, informasi tentang template SQL yang difilter akan ditampilkan. Jika Anda memiliki izin di DAS, Anda dapat mengunjungi halaman tersebut untuk melihat informasi tentang semua template SQL yang difilter.