如何在Oracle 10g中跟踪SQL
2007-05-06 12:08:39 来源:WEB开发网核心提示: alter session settracefile_identifier ="kfloss_test";通过该命令生成的跟踪文件带有您设置的附加在文件名后的字符串值,尽管这些改变会话命令都不是必要的,如何在Oracle 10g中跟踪SQL(2),但是它们都会使查找跟踪
alter session set
tracefile_identifier ="kfloss_test";
通过该命令生成的跟踪文件带有您设置的附加在文件名后的字符串值。尽管这些改变会话命令都不是必要的,但是它们都会使查找跟踪会话的结果更容易。
现在,我们已经设置了这些参数,那么让我们看看新的跟踪软件包和Oracle企业管理器的界面。让我们使用新的DBMS_MONITOR软件包通过模块名称和客户机名称来建立一个跟踪。
用DBMS_MONITOR建立跟踪
DBMS_MONITOR包具有多个例程,用于启用和禁用统计数据集合,以及用于根据会话ID进行跟踪、或者基于服务名称、模块名称和动作名称的组合进行跟踪。(它们三者从层次结构上是关联的:您不能在不指定模块和服务名称的情况下指定一个动作,但是您可以只指定服务名称,或者只指定服务名称和模块名称)。 模块名称和动作名称(如果有的话)都来自于应用程序代码内部。例如,Oracle电子商务套件应用程序在代码中提供了模块名称和动作名称,这样您就可以在任何Oralce企业管理器页面中通过名称来识别它们。 (PL/SQL开发人员可以通过使用DBMS_APPLICATION_INFO包设置模块名称和动作名称,把一些调用嵌入到他们的应用程序中)。
请注意,设置模块、动作及其他参数(如client_id)将不造成对数据库的往返操作--这些例程携带来自应用程序的所有调用。
服务名称由用于连接该服务的连接字符串来确定。未与特定服务关联的用户会话将由sys$users处理(sys$background是后台进程的默认服务)。由于我们具有一个服务和一个模块名称,因而我们可以启动对该模块的跟踪,如下所示:
SQL> exec dbms_monitor.serv_mod_act_trace_enable
(service_name=>'testenv', module_name=>'product_update');
更多精彩
赞助商链接