(1)select * from v$sqlarea;
可以跟踪sql语句的执行过程,如果想跟踪某个时间点前后的语句,可以通过first_load_time时间进行控制。
select * from v$sqlarea where first_load_time>'2010-11-27/09:30:00';
这个方法查询结果每条记录显示一条查询语句,且只能查询sql_text小于1000字符的,多余的会被截断。
(2)select * from v$sqltext;
跟踪时,将把整个查询语句都记录到数据库中,记录中包括地址、分片等,可以通过结合(1),获取到要跟踪的sql语句的起始部分,然后通过这条语句,获取到整个地址中的完整的sql语句。
select * from v$sqltext where sqltext like '%单元名称%';
获取到包含的所有记录,找到自己想跟踪的那条sql语句的起点,记录下address字段的值,以备下面使用。
select * from v$sqltext where address = '上面查记录的地址字段';
这样就获得了整条sql语句在v$sqltext中的片段,拼接一下就可以得到跟踪的完整的sql语句了。