当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语句。