动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > Oracle教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ Oracle教程 ]的信息

本月文章推荐
.复杂应用环境监控ORACLE数据库性.
.甲骨文推出新的多核定价及许可证.
.Oracle DBA 常用 Script 第二部分.
.优化Oracle停机时间及数据库恢复.
.在Java中调用Oracle的过程和函数.
.优化Oracle网络设置.
.如何使得sendmail不出现帮助信息.
.ORACLE SQL性能优化系列(七) .
.Oracle DBA 回滚段管理试题选.
.调整Oracle应用系统性能的原则和.
.oracle数据库备份与恢复 a piece.
.Weblogic8配置Oracle数据库连接池.
.ORACLE在HP_UX下的系列问题处理(.
.Oracle数据库联机日志文件丢失处.
.Oracle Database 10 g : 为 DBA .
.Oracle9i在RedHat7.1/7.2上的安装.
.关于 SELECT N 问题.
.Oracle:一条SQL实现将多行数据并.
.C中设置oracle环境变量.
..

在Oracle数据库10g中跟踪SQL

发表日期:2008-2-9 |



  在具有许多活跃用户的繁忙生产环境中,跟踪SQL会话是费时且十分复杂的,因为在任何使用连接池的多层系统中处理SQL语句可能要涉及多个进程,或者甚至是不同的实例。

  利用Oracle数据库10g,Oralce通过一个新的内置软件包DBMS_MONITOR合理化了SQL的跟踪,这个软件包中包含以前无书面记载的跟踪工具(如DBMS_SUPPORT软件包)的功能。现在,您可以轻松地从头到尾--从客户机到中间层再到后端--跟踪任何用户的会话,并且基于特定的客户ID、模块或动作生成跟踪文件。

  此外,Oracle数据库10g包含一种新的实用程序trcsess,它可以让您基于会话ID或模块名称之类的条件,有选择地从大量跟踪文件中抽取出跟踪数据,并将它们保存到一个文件中。该实用程序在共享服务器配置中非凡有用,因为调度程序可能把每一个用户请求传递给不同的共享服务器进程,从而为任何给定的会话产生多个跟踪文件。与通过大量跟踪文件发掘信息不同,Oracle数据库10g的trcsess可以让您获得关于单一用户会话的整合后的跟踪信息。

  开始

  和Oracle数据库的以前版本一样,跟踪文件将被输出到由服务器的初始化文件(或spfile)的user_dump_dest参数指定的目录中。默认的位置取决于操作系统;例如,对于使用DBCA的Microsoft Windows平台,默认位置是$ORACLE_BASE\instance_name\admin\udump,其中instance_ name是Oracle实例的名称。您可以通过使用以下改变会话命令来动态地更改该参数:

alter session set user_dump_dest="c:\kflosstrace";
  您还可以把您自己的标记添加到跟踪文件名中,以便您能够更轻易地找到生成的文件。为此,可以在启动跟踪之前设置tracefile_identifier初始化参数:

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');
  PL/SQL过程已成功完成。

  我们可以启动对客户机的跟踪:

SQL> exec dbms_monitor.client_id_trace_enable
(client_id=>'kimberly');
  PL/SQL过程已成功完成。

  请注重,所有这些设置都是永久性的--所有与该服务和模块关联的会话都会被跟踪,而不仅仅是跟踪当前会话。

  为了基于会话ID跟踪SQL,可以查看Oracle企业治理器的Top Sessions页面,或者像您当前做的那样查询V$SESSION视图。

SQL> select sid, serial#, username
from v$session;
SID SERIAL# USERNAME
------ ------- ------------
133 4152 SYS
137 2418 SYSMAN
139 53 KIMBERLY
140 561 DBSNMP
141 4 DBSNMP
. . .
168 1
169 1
170 1
28 rows selected.
  通过会话ID(SID)和序号,您可以使用DBMS_MONITOR只对下面的会话启用跟踪:

SQL> exec dbms_monitor.session_trace_enable(139);

  PL/SQL过程已成功完成。

  该序号默认为该SID的当前序号(除非另外指定),因此假如那就是您想跟踪的会话和序号,那么您就不必查看更多的内容了。还有,默认情况下,WAITS设置为true而BINDS设置为false,因此上面的语法实际上与下面的语法效果相同:


SQL> exec dbms_monitor.session_trace_enable
(session_id=>139, serial_num=>53, waits=>true, binds=>false);
  请注重,WAITS和BINDS是相同的参数,您在过去可能已经使用DBMS_SUPPORT和10046事件对它们进行了设置。

  假如您正在一个生产环境中工作,那么此时您最好重新运行出错的SQL或应用程序,并且相应地创建跟踪文件。

  用企业治理器建立跟踪

  通过Oracle企业治理器建立跟踪从Top Consumers页面(可以通过Additional Monitoring Links区域中的Performance页面得到,如图1所示)开始。该页面显示服务、模块、客户和动作对系统资源的当前使用情况。

在Oracle数据库10g中跟踪SQL
图1:Oracle企业治理器的Top Consumers页面

  您可以单击Top Services、Top Modules、Top Actions、Top Clients或Top Sessions选项卡,来查看这些类别的顶级消费者中每一种的具体信息,随后您可以通过这些页面中的每一个页面轻松启用(或禁用)SQL跟踪。从页面上的列表中简单地选择项目,然后单击启用SQL跟踪(Enable SQL Trace)开始跟踪(当您完成跟踪时,单击禁用按钮)。

  您还可以启用(或禁用)这些页面上列出的任何项目的统计数据集合。(DBMS_MONITOR还提供了用于启用和禁用数据集合的例程)。

  分析跟踪结果

  获取关于Kimberly Floss的图书的信息

  无论您是使用DBMS_MONITOR或者是使用Oracle企业治理器建立跟踪,您都将使用trcsess 命令行工具来整合跟踪文件。单击Oracle企业治理器中的查看SQL跟踪(View SQL Trace)按钮显示一个页面,其中显示了您将用于整合所有跟踪文件的语法。

  要确保用双引号括住字符串,并在文件名后添加一个".trc"扩展名;否则,TKPROF将不会把它作为一个文件名来接受。在执行该命令之前,找到在user_dump_dest(或者,假如您没有更改该参数名,则在\udump)中指定的目录。

C:\...\udump> trcsess output="kfloss.trc" service="testenv"
module="product update"
action="batch insert"
  随后,您可以对整合的跟踪文件运行TKPROF,以生成一份报告。

C:\...\udump> tkprof kfloss.trc
output=kfloss_trace_report SORT=(EXEELA, PRSELA, FCHELA)
  假如您不终止跟踪,那么运行该服务和模块的每一个会话都会被跟踪。因此,当您完成跟踪时,要确保通过使用Oralce企业治理器或DBMS_MONITOR包来终止跟踪。
上一篇:在Linux机器上安装运行Oracle 人气:464
下一篇:手工安装Oracle全文检索工具 人气:494
浏览全部Oracle教程的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-9-7 站长中国企业(公司)网站系统 v4.2
2008-9-7 PBDigg v2.0 Build 20080821
2008-9-7 玩玩小游戏FLASH系统 v2.1
2008-9-7 522QQ在线电视直播程序 v1.1
2008-9-7 Pcook cms 文章管理系统 (老Y CM
2008-9-7 仿代码小说小偷系统 v1.0
2008-9-7 百度一搜集成搜索管理系统
2008-9-7 小贤统计器 v1.0
2008-9-7 UCenter Home-中秋搏饼插件 v1.2
2008-9-7 iBlacklist通话黑名单汉化破解补
2008-9-7 EndlessWalls无尽壁纸 v1.0.4破解
2008-9-7 Dynolicious车载测量仪v1.1破解版
2008-9-7 iVoodoo巫毒娃娃1.0.1破解版
2008-9-7 iWallpape精品墙纸1.2破解版
2008-9-7 iChillout自然音效工具1.1破解版
2008-9-7 Todo计划提醒1.2破解版
2008-9-7 allRadio电台集合1.01破解版
2008-9-7 My Money个人理财1.0破解版
  发表评论
姓 名: 验证码:
内 容:
站长工具:网站收录查询 | Google PR查询 | ALEXA排名查询 | CSS在线编辑器 | 广告代码 | Html转换js | js/vbs加密 | md5加密 | 进制转换
实用工具:汉字翻译拼音 | 符号对照表 | 个税计算 | 经典小工具 | 汉字简繁转换 | 普通单位换算 | 公制单位换算 | 生辰老黄历 | 国内电话区号 国家代码与域名缩写 | 文字加密解密 | 健康查询 | 万年历 | 汉字横竖排版 | 手机号码查询 | 计算器 | ip搜索
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号