Jika parameter loose_sql_trace_type diatur ke DEMAND, Anda dapat menggunakan prosedur tersimpan dbms_sql.delete_trace untuk menghapus pernyataan SQL yang tidak perlu dilacak oleh fitur Jejak SQL.
Sintaksis
dbms_sql.delete_trace('<schema>', '<query>')Setelah prosedur tersimpan dijalankan, konstanta dalam pernyataan SQL yang sedang dieksekusi secara otomatis dibuat menjadi templat dan membentuk sebuah templat. Pernyataan SQL yang sesuai dengan templat tersebut akan dihapus dari tabel mysql.sql_sharing, dan pernyataan SQL berikutnya yang sesuai dengan templat tersebut tidak dilacak oleh fitur Jejak SQL.
Parameter
Parameter | Deskripsi |
schema | Nama skema. |
query | Pernyataan SQL yang sedang dieksekusi. |
Peringatan
Ketika prosedur tersimpan dijalankan pada node utama, eksekusi prosedur tersimpan disimpan secara permanen pada node utama, dan catatan eksekusi terkait dalam tabel mysql.sql_sharing dihapus dan disinkronkan ke node baca-saja.
Ketika prosedur tersimpan dijalankan pada node baca-saja, eksekusi prosedur tersimpan tidak disimpan secara permanen pada node tersebut. Prosedur tersimpan hanya dapat dijalankan pada node tersebut. Saat Anda menggunakan titik akhir kluster untuk mengakses database, pernyataan SQL yang telah dijadikan templat secara otomatis dirutekan ke node utama.
Contoh
Anda dapat mengeksekusi pernyataan berikut untuk menghapus pernyataan SQL yang tidak perlu dilacak oleh fitur Jejak SQL:
call dbms_sql.delete_trace('test', 'select * from t where c1 > 1 and c1 < 10');Jika tidak ada keluaran yang dikembalikan, pernyataan SQL yang diminta telah dihapus.
Setelah prosedur tersimpan ini dijalankan, pernyataan SQL yang telah dijadikan templat yang sesuai dengan pernyataan tertentu dalam sebuah tabel dihapus. Tabel yang berisi pernyataan tertentu tersebut bernama mysql.sql_sharing. Pernyataan yang cocok dengan pernyataan SQL yang akan dihapus adalah SELECT * FROM `t` WHERE `c1` > ? AND `c1` < ?