All Products
Search
Document Center

ApsaraDB for OceanBase (Deprecated):Informasi Dasar SQL

Last Updated:Jun 28, 2025

Topik ini memperkenalkan informasi dasar tentang halaman SQL Insights, termasuk statistik SQL, pemantauan kinerja, analisis permintaan tingkat penyewa, dan daftar SQL.

Statistik Kluster

Di tab Statistics, Anda dapat melihat jumlah SQL mencurigakan dan SlowSQL di kluster saat ini, serta jumlah yang sesuai untuk setiap penyewa. Klik nama penyewa untuk menampilkan detail diagnostiknya di bagian bawah halaman SQL Insights.

image

Pemantauan Kinerja Kluster

Di tab Performance Monitoring, Anda dapat melihat kinerja SQL dari kluster.

image

Analisis Permintaan Penyewa

Klik tombol View Request Analysis di bagian tengah halaman untuk melihat Distribution of Elapsed Time dan Request Statistics List.image

Pemantauan Kinerja Penyewa

Klik View Performance Monitoring di bagian tengah halaman untuk melihat data pemantauan kinerja penyewa.image

Penyewa informasi diagnostik

Anda dapat memilih penyewa dari daftar drop-down Tenant dan melihat informasi diagnostik tentang TopSQL, SlowSQL, SQL Mencurigakan, SQL Berisiko Tinggi, dan SQL Baru untuk penyewa tersebut. Anda juga dapat melakukan operasi berikut:

Catatan

Saat ini, sistem memiliki batasan berikut pada instans kluster Edisi Standar (Key-Value):

  • Untuk instans kluster KV dengan nomor versi lebih besar atau sama dengan 4.2.4 tetapi kurang dari 4.3.0, informasi diagnostik TopSQL dan SlowSQL dapat ditampilkan.

  • Untuk instans kluster KV versi lainnya, hanya informasi diagnostik SlowSQL yang dapat ditampilkan.

  • Filter informasi diagnostik SQL berdasarkan Database, Node, Duration, SQL ID, SQL Text, atau Quick Filter.

    • Opsi Duration memungkinkan Anda melihat data untuk 5 menit terakhir, 15 menit terakhir, 30 menit terakhir, satu jam terakhir, 3 jam terakhir, dan 6 jam terakhir. Anda juga dapat menyesuaikan durasi, tetapi perhatikan batasan berikut:

      • Batas Rentang Maksimum: Rentang waktu yang dipilih tidak boleh melebihi 24 jam.

      • Batas Rentang Minimum:

        • Untuk data dalam 3 hari: Rentang waktu yang dipilih harus minimal 1 menit.

        • Untuk data dari 3 hingga 7 hari: Rentang waktu yang dipilih harus minimal 5 menit.

        • Untuk data lebih dari 7 hari: Rentang waktu yang dipilih harus minimal 20 menit.

    • Opsi Quick Filter mendukung Full Table Scan, Multi-partition Scan, Multiple Remote Executions, Hard Parsing, Error Executions, dan Retry Executions.

    • Jika filter default tidak memenuhi kebutuhan Anda, klik Add untuk menambahkan kondisi tambahan.

  • Klik ikon image.png di kolom untuk mengurutkan daftar berdasarkan kolom tersebut.

  • Klik image untuk memilih kolom yang akan ditampilkan dalam daftar.

  • Klik image untuk mengunduh daftar.

  • Klik pernyataan SQL untuk masuk ke halaman detailnya. Di halaman Overview, Anda dapat melihat teks SQL, rencana eksekusi fisik, riwayat eksekusi SQL, informasi tabel, dan pengaturan lanjutan dari pernyataan SQL.

  • Aggregate in merujuk pada mengabaikan jumlah parameter konstan dalam klausa IN dari pernyataan SQL dan memperlakukan setiap klausa IN seolah-olah hanya memiliki satu parameter konstan. Mengikuti aturan ini, pernyataan SQL diparameterisasi, dan ID SQL dihitung; SQL dengan ID SQL yang sama dianggap sebagai kategori yang sama dan digabungkan. Jika kotak centang dipilih, SQL akan ditampilkan sesuai dengan Agregasi IN, tetapi ini tidak mempengaruhi data statistik.

TopSQL

TopSQL merujuk pada pernyataan SQL dengan waktu respons keseluruhan terlama dalam rentang waktu yang dipilih. Anda dapat melakukan operasi berikut terkait TopSQL:

  • Filter TopSQL menggunakan filter cepat, seperti Full Table Scan, Multi-partition Scan, dan Multiple Remote Executions untuk dengan cepat menemukan pernyataan SQL yang perlu dioptimalkan.

  • Klik View Samples di kolom Operation untuk melihat pernyataan SQL.

  • Di kolom Operation dari SQL tertentu, klik pada image dan pilih Set Throttling. Anda dapat memeriksa beberapa SQL untuk mengatur pembatasan secara batch.

  • Klik tanda plus (+) di depan teks SQL untuk melihat kesalahan terakhir dan ringkasan kesalahan selama periode statistik.

  • Cek Aggregate in di sudut kanan atas daftar untuk menampilkan SQL sesuai dengan Agregasi IN, tetapi ini tidak akan mempengaruhi data statistik. Anda dapat memilih beberapa SQL (termasuk yang dengan Agregasi IN) untuk mengatur pembatasan secara batch.

  • Klik View Optimization Recommendation di sudut kanan atas daftar untuk masuk ke pusat optimasi dan melihat saran optimasi.

  • Klik TopSQL Comparison di sudut kanan atas daftar untuk membandingkan eksekusi pernyataan SQL yang sama selama periode berbeda pada node yang sama atau selama periode yang sama di berbagai node, serta eksekusi pernyataan SQL tunggal selama periode berbeda atau di berbagai node.

    • Perbandingan periode berbeda: Tentukan periode baseline dan periode perbandingan. Klik Comparative Analysis untuk melihat Comparison of Details dan Comparison of Performance Trends.

    • Perbandingan node berbeda: Tentukan node baseline dan node perbandingan. Klik Comparative Analysis untuk melihat Comparison of Details dan Comparison of Response Time Trends.

    • Perbandingan SQL Tunggal Periode Berbeda: Bandingkan dan analisis eksekusi SQL individu atau SQL agregat selama periode baseline dan perbandingan, lalu periksa Total Database Time Consumption dan Total Executions.

    • Perbandingan SQL Tunggal Node Berbeda: Bandingkan dan analisis eksekusi SQL individu atau SQL agregat di berbagai node analisis, lalu periksa Total Database Time Consumption dan Total Executions.

      Catatan
      • Dua pernyataan SQL dengan ID SQL yang sama di database yang sama dianggap sama.

      • Perbandingan node berbeda hanya dilakukan ketika pernyataan SQL yang sama dieksekusi di node berbeda. Jika tidak, hasil perbandingan tidak akan ditampilkan.

      • Untuk melakukan analisis komparatif SQL tunggal di berbagai periode atau di berbagai node, Anda juga dapat memasukkan ID SQL terlebih dahulu lalu pilih ... > Single SQL Comparison di kolom Operation untuk SQL yang sesuai.

  • Klik Customize Column di sudut kanan atas daftar untuk menyesuaikan metrik lain yang Anda butuhkan.

    1. Di jendela pop-up, atur Column Expression, seperti (@avgCpuTime * @avgDiskReads) / 2.

    2. Masukkan Column Name.

    3. Klik OK.

  • Anda dapat mendiagnosis TopSQL penyewa tertentu atau semua penyewa dalam sebuah kluster.image

  • Ketika utilitas CPU host terlalu tinggi, Anda dapat memfilter TopSQL berdasarkan database dan node, lalu mengurutkan pernyataan SQL ini berdasarkan waktu CPU secara menurun untuk menemukan pernyataan SQL yang paling perlu dioptimalkan.

    image

SlowSQL

SlowSQL merujuk pada pernyataan SQL yang waktu eksekusinya melebihi 500 ms. Anda dapat melakukan operasi berikut terkait SlowSQL:

  • Filter SlowSQL menggunakan filter cepat, seperti Full Table Scan, Multi-partition scan, dan Multiple Remote Executions.

  • Klik View Samples di kolom Operation untuk melihat pernyataan SQL.

  • Di kolom Operation dari SQL tertentu, klik pada image dan pilih Set Throttling. Anda dapat memeriksa beberapa SQL untuk mengatur pembatasan secara batch.

  • Cek Aggregate in di sudut kanan atas daftar untuk menampilkan SQL sesuai dengan Agregasi IN, tetapi ini tidak akan mempengaruhi data statistik. Anda dapat memilih beberapa SQL (termasuk yang dengan Agregasi IN) untuk mengatur pembatasan secara batch.

  • Untuk menyesuaikan ambang batas Slow SQL, pilih ... > Modify Slow SQL Threshold di sudut kanan atas daftar. Di jendela pop-up, sesuaikan ambang batas Slow SQL lalu klik OK.

SQL Mencurigakan

Tab Suspicious SQL menampilkan SQL Text, SQL ID, Database, Diagnostic Results, dan sebagainya. SQL Mencurigakan merujuk pada pernyataan SQL yang mungkin menyebabkan masalah kinerja dan disaring berdasarkan aturan dan algoritma. Tabel berikut mencantumkan hasil diagnostik umum dan saran pemecahan masalah.

Hasil diagnostik

Saran pemecahan masalah

Hints tanpa efek

Ini menunjukkan pernyataan SQL abnormal yang memerlukan administrator basis data (DBA) untuk menentukan apakah akan memperbaiki rencana eksekusi menggunakan outline.

Pemindaian tabel penuh dengan kinerja buruk

Analisis rencana eksekusi dan struktur tabel untuk memastikan bahwa SQL memiliki indeks yang sesuai yang tersedia.

Kinerja buruk meskipun menggunakan indeks

Periksa apakah kinerja dapat diterima dalam skenario bisnis Anda. Jika tidak, tingkatkan logika bisnis atau optimalkan indeks.

Penurunan kinerja

Periksa perubahan distribusi data, lonjakan permintaan, dan perubahan rencana eksekusi.

Perubahan rencana disertai dengan penurunan kinerja

Periksa dengan DBA. Anda dapat menggunakan outline untuk memperbaiki rencana eksekusi untuk memverifikasi apakah pernyataan SQL abnormal.

Lonjakan eksekusi

Periksa volume bisnis. Lonjakan jumlah eksekusi pernyataan SQL dapat menyebabkan penurunan kinerja keseluruhan.

Beban CPU terlalu tinggi

Periksa skenario bisnis Anda, perubahan distribusi data, peningkatan permintaan, dan perubahan rencana eksekusi.

Konflik kunci dicurigai

SQL sedang diulang, yang mungkin disebabkan oleh konflik kunci. Silakan selidiki logika bisnis untuk menentukan apakah ada skenario konflik kunci.

Terlalu banyak partisi diakses oleh pernyataan DML

Tulis ulang pernyataan SQL sehingga mendukung pemangkasan partisi.

Tabel buffer dicurigai

Periksa apakah tabel terkait sering diperbarui.

Mungkin ada akun besar dan kecil

Periksa apakah ada masalah skew data.

Ketidakstabilan rencana eksekusi

Periksa apakah ada masalah dengan regresi rencana.

Waktu pembuatan rencana terlalu lama

Periksa apakah ada masalah seperti rendahnya tingkat hit rencana.

SQL Berisiko Tinggi

Tab High-risk SQL menampilkan SQL Text, Database, Cause of Risk, dan sebagainya. SQL Berisiko Tinggi merujuk pada pernyataan SQL yang dapat menyebabkan kerusakan pada kinerja sistem, keamanan, dan data.

Tabel berikut menjelaskan jenis-jenis SQL Berisiko Tinggi yang dapat diidentifikasi.

Operasi

Contoh

Jenis risiko

Deskripsi

Tambah atau hapus kolom

  • alter table test drop column id

  • alter table test add new_id int not null comment 'New ID'

Perubahan Skema - Kolom ditambahkan atau dihapus

-

Hapus tabel atau database

  • drop table test

  • drop database test

Tabel atau database dihapus

-

Kosongkan tabel

truncate table test

Tabel data dikosongkan

-

Update tanpa kondisi

update test set new_id =1

Update tanpa kondisi

-

Update dengan kondisi selalu benar

update test set new_id =1 where 1 = 1

Update dengan kondisi selalu benar

-

Delete tanpa kondisi

delete from test

Delete tanpa kondisi

-

Delete dengan kondisi selalu benar

delete from test where 1=1

Delete dengan kondisi selalu benar

-

Terlalu banyak baris dikembalikan

max_return_rows >= 50000

Terlalu banyak baris dikembalikan

Parameter max_return_rows menentukan jumlah maksimum baris yang diizinkan untuk pernyataan SQL. Jika jumlah baris yang dikembalikan melebihi nilai ini, pernyataan SQL dianggap berisiko tinggi.

Terlalu banyak baris terpengaruh

max_affected_rows >= 50000

Terlalu banyak baris terpengaruh

Parameter max_affected_rows menentukan jumlah maksimum baris yang terpengaruh yang diizinkan untuk pernyataan SQL. Jika jumlah baris yang terpengaruh melebihi nilai ini, pernyataan SQL dianggap berisiko tinggi.

Terlalu banyak partisi terlibat

max_partition_cnt >2000

Terlalu banyak partisi terlibat

Parameter max_partition_cnt menentukan jumlah maksimum partisi yang diizinkan dalam pernyataan SQL. Jika jumlah partisi yang terlibat melebihi nilai ini, pernyataan SQL dianggap berisiko tinggi.

Terlalu banyak kondisi IN

where id in (1,2,3,4,5.....)

Terlalu banyak kondisi IN

-

Perubahan indeks

drop index idx2 on test_high_risk2

Perubahan berisiko tinggi - Perubahan indeks

-

SQL Baru

SQL Baru merujuk pada pernyataan SQL yang tidak dieksekusi selama periode waktu tertentu (7 hari secara default) sebelum interval kueri, tetapi memiliki catatan eksekusi dalam interval kueri.

Tab Add SQL menampilkan SQL Text, SQL ID, Database, Total Executions, dan sebagainya.