loose_sql_trace_type
パラメーターがDEMANDに設定されている場合、dbms_sql.delete_trace
ストアドプロシージャを使用して、SQLトレース機能で追跡する必要のないSQL文を削除できます。
構文
dbms_sql.delete_trace('<schema>', '<query>')
ストアドプロシージャが実行されると、実行中のSQL文の定数が自動的にテンプレート化されてテンプレートが形成され、テンプレート化されたSQL文と一致するSQL文はmysql.sql_sharing
テーブルから削除され、テンプレートと一致する後続のSQL文はSQLトレース機能によって追跡されません。
Parameters
パラメーター | 説明 |
schema | スキーマの名前。 |
query | 実行中のSQLステートメント。 |
注意事項
ストアドプロシージャがプライマリノードで実行されると、ストアドプロシージャの実行はプライマリノードに永続的に保存され、mysql.sql_sharingテーブルの関連する実行レコードは削除され、読み取り専用ノードに同期されます。
ストアドプロシージャが読み取り専用ノードで実行される場合、ストアドプロシージャの実行はノードに永続的に格納されません。 ストアドプロシージャはノードでのみ実行できます。 クラスターエンドポイントを使用してデータベースにアクセスすると、テンプレート化されたSQL文は自動的にプライマリノードにルーティングされます。
例
次のステートメントを実行して、SQLトレース機能で追跡する必要のないSQLステートメントを削除できます。
dbms_sql.delete_trace('test', 'select * from t where c1 > 1 and c1 < 10 ') を呼び出します。
出力が返されない場合、必要なSQL文は削除されます。
このストアドプロシージャの実行後、テーブル内の指定されたステートメントと一致するテンプレート化SQLステートメントは削除されます。 指定されたステートメントを含むテーブルの名前はmysql.sql_sharing.
削除するSQL文がSELECT * FROM 't'WHERE 'c1' > ? そして 'c1' < ?