All Products
Search
Document Center

PolarDB:dbms_sql.delete_trace

Last Updated:Mar 29, 2026

dbms_sql.delete_trace menghapus pernyataan SQL dari pelacakan SQL Trace ketika loose_sql_trace_type diatur ke DEMAND.

Sintaksis

dbms_sql.delete_trace('<schema>', '<query>')

Parameter

ParameterDeskripsi
schemaNama skema.
queryPernyataan SQL yang sedang dieksekusi.

Cara kerja

Ketika Anda memanggil dbms_sql.delete_trace, prosedur ini melakukan tindakan berikut:

  1. Mengonversi konstanta literal dalam pernyataan SQL menjadi wildcard (?) untuk menghasilkan templat SQL.

  2. Menghapus semua baris di mysql.sql_sharing yang sesuai dengan templat tersebut.

  3. Menghentikan SQL Trace dari mencatat pernyataan SQL mendatang yang sesuai dengan templat tersebut.

Catatan penggunaan

Node primary vs. node read-only

Prosedur tersimpan ini berperilaku berbeda tergantung pada node tempatnya dijalankan:

  • Node primary: Penghapusan bersifat permanen. Baris yang sesuai dihapus dari mysql.sql_sharing pada node primary, dan perubahannya disinkronkan ke semua node read-only.

  • Node read-only: Penghapusan hanya berlaku untuk node tempat prosedur dijalankan dan tidak dipertahankan secara permanen. Ketika Anda mengakses database melalui titik akhir kluster, pernyataan SQL bertemplat secara otomatis diarahkan ke node primary.

Contoh

Hapus pernyataan SQL dari pelacakan SQL Trace:

CALL dbms_sql.delete_trace('test', 'select * from t where c1 > 1 and c1 < 10');

Jika pemanggilan berhasil, tidak ada output yang dikembalikan.

Prosedur tersimpan ini membuat templat berikut dari pernyataan tersebut dan menghapus semua baris yang sesuai dari mysql.sql_sharing:

SELECT * FROM `t` WHERE `c1` > ? AND `c1` < ?