O procedimento armazenado dbms_sql.delete_trace remove uma instrução SQL do rastreamento do SQL Trace quando o parâmetro loose_sql_trace_type está definido como DEMAND.
Sintaxe
dbms_sql.delete_trace('<schema>', '<query>')
Parâmetros
|
Parâmetro |
Descrição |
|
|
Nome do schema. |
|
|
Instrução SQL em execução. |
Funcionamento
Ao chamar dbms_sql.delete_trace, o sistema executa as seguintes ações:
Converte as constantes literais da instrução SQL em curingas (
?) e gera um modelo de SQL.Exclui todas as linhas correspondentes ao modelo em
mysql.sql_sharing.Impede que o SQL Trace registre futuras instruções SQL correspondentes ao modelo.
Observações de uso
Nó primário versus nós somente leitura
O comportamento do procedimento armazenado varia conforme o nó de execução:
Nó primário: A exclusão é permanente. O sistema remove as linhas correspondentes de mysql.sql_sharing no nó primário e sincroniza a alteração com todos os nós somente leitura.
Nós somente leitura: A exclusão aplica-se apenas ao nó de execução e não persiste. Ao acessar um banco de dados por meio de um endpoint de cluster, o sistema roteia automaticamente as instruções SQL modeladas para o nó primário.
Exemplo
Remova uma instrução SQL do rastreamento do SQL Trace:
CALL dbms_sql.delete_trace('test', 'select * from t where c1 > 1 and c1 < 10');
Se a chamada for bem-sucedida, nenhum resultado será retornado.
O procedimento armazenado cria o seguinte modelo a partir da instrução e remove todas as linhas correspondentes de mysql.sql_sharing:
SELECT * FROM `t` WHERE `c1` > ? AND `c1` < ?