當loose_sql_trace_type
參數設定為DEMAND時,您可以使用dbms_sql.delete_trace
預存程序來刪除不需要SQL Trace跟蹤的SQL語句。
文法
dbms_sql.delete_trace('<schema>', '<query>')
說明
執行該預存程序後,SQL語句中的常量會被自動模板化,並刪除mysql.sql_sharing
表中與其模板化後的SQL語句匹配的模板化SQL語句,且後續與該模板匹配的SQL語句不會被SQL Trace功能跟蹤。
參數說明
參數 | 說明 |
schema | Schema名稱。 |
query | 具體的SQL語句。 |
注意事項
當在主節點執行該預存程序時,該操作會被持久化,mysql.sql_sharing表中對應的記錄會被刪除,並同步至唯讀節點。
當在唯讀節點執行該預存程序時,該操作不會被持久化,且僅在該唯讀節點生效。通過叢集地址訪問資料庫時,模板化後的SQL語句會自動路由至主節點。
樣本
刪除不需要SQL Trace功能跟蹤的SQL語句。樣本如下:
call dbms_sql.delete_trace('test', 'select * from t where c1 > 1 and c1 < 10');
無資訊返回,則表示執行成功。
執行該預存程序後,會同步刪除mysql.sql_sharing
表中與SELECT * FROM `t` WHERE `c1` > ? AND `c1` < ?
匹配的模板化SQL語句。