问题:
你想要跟踪整个实例或数据库中所有SQL语句的执行。
方法:
使用dbms_monitor.database_trace_enable过程跟踪一个指定的实例或整个数据库。执行以下两个命令开启和停止跟踪一个独立的实例。
SQL> exec dbms_monitor.database_trace_enable(instance_name=>'instance1');
SQL> exec dbms_monitor.database_trace_disable(instance_name=>'instance1');
你可以选择地指定waits和binds属性。以下命令使能和禁止数据库级的SQL跟踪:
SQL> execute dbms_monitor.database_trace_enable();
SQL> execute dbms_monitor.database_trace_disable();
你也可以设置sql_trace初始化参数为true来打开和关闭sql跟踪,但是官方不推荐使用这个参数。官方推荐使用dbms_monitor(或dbms_session)包跟踪SQL。
工作原理:
很明显,实例级和数据库级SQL跟踪会需要更多开销,也可能成为性能问题的另一个来源!你通常不必这么做,使用会话级跟踪识别性能问题就可以了。如果非要跟踪整个实例,因为你不知道一个查询在哪个会话中执行,要尽可能快地关闭跟踪,以减少开销。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/27795363/viewspace-745204/
,如需转载,请注明出处,否则将追究法律责任。