Eu estava trabalhando com bancos de dados sql server há anos e estou acostumado a ferramentas como o sql server profiler para rastrear todas as consultas em um banco de dados específico.
Minha pergunta é - como fazer a mesma coisa com o banco de dados oracle. Estou usando o sql oracle developer versão 19.2 e não vejo nenhuma opção para rastrear o banco de dados.
Eu também verifiquei esta questão e tentei várias ferramentas lá (a questão é bastante antiga) sem sucesso. Eu realmente preciso do Oracle Enterprise Manager para fazer uma coisa tão básica? (isso é sugestão de uma das respostas).
Meu aplicativo está escrito em .NET - por que é tão difícil no oracle rastrear consultas que esse aplicativo está acionando?
O rastreamento é difícil no Oracle Database por vários motivos:
Se você precisar ter apenas instruções SQL sem plano de execução e horários detalhados, poderá modificar seu código para habilitar o rastreamento SQL com "ALTER SESSION SET SQL_TRACE=TRUE" (arquivo de rastreamento bruto gerado no lado do servidor db).
Se você tiver sua instância de banco de dados dedicada (como Oracle XE), basta habilitar o rastreamento SQL no nível do banco de dados (ALTER SYSTEM SET SQL_TRACE=TRUE) e obter todos os arquivos de rastreamento.
Aqui está um dos melhores resumos das opções de rastreamento SQL no Oracle: https://oracle-base.com/articles/misc/sql-trace-10046-trcsess-and-tkprof
Você não precisa de OEM para habilitar o rastreamento, mas precisa de privilégios de DBA ou trabalhar com seu DBA para usar o rastreamento de SQL.
alter session set sql_trace=true
é suficiente para obter apenas o texto da consulta SQL para a sessão atual.Exportar/importar para um sistema local também é bom para obter apenas o texto da consulta SQL.