WEB开发网
开发学院数据库Oracle 使用扩展SQL跟踪数据 阅读

使用扩展SQL跟踪数据

 2007-05-10 12:18:41 来源:WEB开发网   
核心提示: 跟踪别人的代码,如果你想跟踪没有读/写权限的代码,使用扩展SQL跟踪数据(4),则激活扩展SQL跟踪就有点麻烦了,但也不会难很多, DBMS_MONITOR包的引入解决了许多复杂诊断数据收集问题,这些问题是由连接共享和多线程操作所引起的,你首先要获得你想跟踪的会话的V$SESSION.SI

跟踪别人的代码。如果你想跟踪没有读/写权限的代码,则激活扩展SQL跟踪就有点麻烦了。但也不会难很多。你首先要获得你想跟踪的会话的V$SESSION.SID和V$SESSION.SERIAL#值。然后使用下面的过程调用,可以设置所选会话的TIMED_STATISTICS和MAX_DUMP_FILE_SIZE参数:

CODE:

dbms_system.set_bool_param_in_session(

sid => 42,

serial# => 1215,

parnam => 'timed_statistics',

bval => true)

dbms_system.set_int_param_in_session(

sid => 42,

serial# => 1215,

parnam => 'max_dump_file_size',

intval => 2147483647)

(对于Oracle8 8.1.6以前的版本,你可以用ALTER SYSTEM命令处理这些参数。)

接下来要激活跟踪。有几种方法可以采用,包括下面两个:

方法一是使用DBMS_SUPPORT:

CODE:

dbms_support.start_trace_in_session(

sid => 42,

serial# => 1215,

waits => true,

binds => true)

/* code to be traced executes during this time window */

dbms_support.stop_trace_in_session(

sid => 42,

serial => 1215)

若想激活扩展SQL跟踪,请不要使用名为SET_SQL_TRACE_IN_SESSION的DBMS_SUPPORT过程。该过程不允许在跟踪文件中指定等待和绑定的数据。

第二种方法更为精致,但在Oracle数据库10g之前的版本中并不支持这种方法。 DBMS_MONITOR包的引入解决了许多复杂诊断数据收集问题,这些问题是由连接共享和多线程操作所引起的。你可以在Oracle数据库10g中指定要跟踪的服务、模块或行动,而不指定要跟踪的Oracle数据库会话:

上一页  1 2 3 4 5 6  下一页

Tags:使用 扩展 SQL

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接