`

Oracle 10g的新特性 DBMS_MONITOR(原创)

 
阅读更多

概述
在 具有连接池或共享服务器的多层环境中,一个会话可以跨越多个进程,甚至跨越多个实例。DBMS_MONITOR是在Oracle 10g中引入的内置的程序包,通过该程序包可以跟踪从客户机到中间层、再到后端数据库的任何用户的会话。由于每个会话都会产生独立的trace文件,因而 可以较为容易地标识创建大量工作量的特定用户。DBMS_MONITOR取代了传统的跟踪工具,例如DBMS_ SUPPORT。需要具有DBA角色才可以使用DBMS_MONITOR。
端对端的应用程序跟踪可以基于如下:
会话:基于会话ID(SID)和序列号。
客户端标识符:允许跨越多个会话设置跟踪。基于登录ID指定终端用户。使用DBMS_SESSION.SET_IDENTIFIER过程设置该值。
实例:基于实例名指定给定的实例。
服务名:指定一组相关的应用程序。使用DBMS_SERVICE.CREATE_SERVICE过程设置该值。
模块名:开发人员在其应用程序代码中使用DBMS_ APPLICATION _INFO.SET _MODULE过程设置该值。使用该名称表示执行的模块或代码。
操作名:开发人员在其应用程序代码中使用DBMS_ APPLICATION _INFO.SET _ACTION过程设置该值。使用该名称表示模块执行的操作。
最后3个跟踪选项在层次上关联;不可以在没有指定模块名和服务名的情况下就指定操作名,但是可以只指定服务名,或者只指定服务名和模块名。
基于会话ID和序列号设置跟踪
为了基于会话ID和序列号设置跟踪,首先确定需要跟踪的会话的SID和序列号:
Select     sid,serial#,username
from       v$session;
SID       SERIAL# USERNAME
----------  ---------- ------------------------------
156          3588  SCOTT
142          1054 SYS
为了启用跟踪,可执行如下语句:
SQL> exec dbms_monitor.session_trace_enable(156,3588,TRUE,FALSE);
第三个参数用于等待(默认为TRUE),第四个参数用于绑定变量(默认为FALSE)。
为了关闭跟踪,可执行如下语句:
SQL> exec dbms_monitor.session_trace_disable(156,3588);
为了跟踪当前的会话,可设置SID和SERIAL#为空:
SQL> exec dbms_monitor.session_trace_enable(null,null);
基于客户端标识符设置跟踪
为了基于表示用户的客户端标识符设置跟踪,可运行如下语句:
SQL> exec dbms_session.set_identifier('bryan id');
为了验证客户端标识符,可执行如下语句:
select     sid,serial#,username, client_identifier
from        v$session
where      client_identifier is not null;
SID     SERIAL#  USERNAME                      CLIENT_IDENTIFIER
---------- ----------  ------------------------   ------------------
156         3588   SCOTT                         bryan id
现在就可以为这个客户端标识符设置跟踪:
SQL> exec dbms_monitor.client_id_trace_enable('bryan id',true,false);
第二个参数用于等待(默认为TRUE),第三个参数用于绑定变量(默认为FALSE)。
为了禁用这个客户端标识符跟踪,可执行如下语句:
SQL> exec dbms_monitor.client_id_trace_disable('bryan id');
设置服务名/模块名/操作名的跟踪
为了使用操作名,必须有对应的模块名和服务名。为了使用模块名,必须有服务名。对全局范围内针对某个数据库的服务名、模块名和操作名的给定组合启用跟踪,除非为过程指定了实例名。服务名由用于连接到服务的连接字符串确定。
Oracle 数据库表示为作为服务的客户端;也就是说,数据库代表客户端执行相应的操作。数据库可以有一个或多个与其关联的服务。例如,可以有一个数据库,该数据库带 有两个用于Web客户端的不同服务:用于购买书籍的客户端的book.us.acme.com,以及用于购买软件的客户端的 soft.us.acme.com。在该示例中,数据库名是sales.acme.com,因此服务名并不基于数据库名。服务名由初始参数文件中的 SERVICE_NAMES参数指定。服务名默认为由数据库名(DB_NAME参数)和域名(DB_DOMAIN参数)组成的全局数据库名。
为了启用服务名的跟踪,可执行如下语句:
SQL> exec dbms_monitor.serv_mod_act_trace_enable(service_name=>'ebk2');
这将跟踪服务名为ebk2的所有会话。
为了启用服务名、模块名和操作名组合的跟踪,可执行如下语句:
SQL> exec dbms_monitor.serv_mod_act_trace_enable(service_name=>'ebk2', module_name=>'salary_update', action_name=>'insert_item');
为了禁用前面代码中的跟踪,可使用过程SERV_MOD_ACT_TRACE_DISABLE,如下说是:
SQL> exec dbms_monitor.serv_mod_act_trace_disable(service_name=>'ebk2', module_name=>'salary_update', action_name=>'insert_item');
为了跟踪整个数据库或实例,可执行如下语句(不推荐这样操作):
execute DBMS_MONITOR.DATABASE_TRACE_ENABLE(waits => TRUE, binds => FALSE, instance_name => 'ebk1');
技巧:
使用DBMS_MONITOR时,请确保在完成操作时禁用跟踪;否则,将会跟踪满足指定条件的每个会话。

Statistic Gathering for Service, Module, and Action
The procedure SERV_MOD_ACT_STAT_ENABLE enables statistic gathering for a combination of service, module, and action. For example:
EXECUTE DBMS_MONITOR.SERV_MOD_ACT_STAT_ENABLE(service_name => 'ACCTG',        module_name => 'PAYROLL');
EXECUTE DBMS_MONITOR.SERV_MOD_ACT_STAT_ENABLE(service_name => 'ACCTG',
        module_name => 'GLEDGER', action_name => 'INSERT ITEM');
If both of the previous commands are executed, then statistics are gathered as follows:

  •     For the ACCTG service, because accumulation for each service name is the default
  •     For all actions in the PAYROLL module
  •     For the INSERT ITEM action within the GLEDGER module

The procedure SERV_MOD_ACT_STAT_DISABLE disables statistic gathering for a combination of service, module, and action. For example:
EXECUTE DBMS_MONITOR.SERV_MOD_ACT_STAT_DISABLE(service_name => 'ACCTG', module_name => 'GLEDGER', action_name => 'INSERT ITEM');
Regarding statistics gathering, when you change the module or action using these procedures, the change takes effect when the next user call is executed in the session. For example, if a module is set to module1 in a session, and if the module is reset to module2 in a user call in the session, then the module remains module1 during this user call. The module is changed to module2 in the next user call in the session.
启用跟踪视图
查看DBA_ENABLED_TRACES,DBA_ENABLED_AGGREGATIONS和V$SERV_MOD_ACT_STATS视图,可以看到启用的跟踪和收集的统计信息。可以使用这些视图确保已经禁用的所有跟踪选项。

 

参考至:http://blog.csdn.net/sopost/article/details/4710948
            http://docs.oracle.com/cd/E11882_01/server.112/e41573/sqltrace.htm#PFGRF94970

如有错误,欢迎指正

邮箱:czmcj@163.com

0
0
分享到:
评论

相关推荐

    DBMS_STATS.GATHER_TABLE_STATS详解.pdf

    `DBMS_STATS.GATHER_TABLE_STATS` 是 Oracle 数据库中的一个重要过程,主要用于收集表、列和索引的统计信息,这些统计信息对于优化器选择合适的执行计划至关重要。该过程允许数据库管理员通过一系列参数来灵活控制...

    如何在Oracle数据库10g中跟踪SQL

    总之,Oracle数据库10g通过DBMS_MONITOR软件包和trcsess工具提供了强大的SQL跟踪功能,使得在复杂环境中监控SQL行为变得更加高效和精确。这有助于定位性能瓶颈,优化SQL查询,确保数据库系统的稳定和高效运行。

    性能调优分析之:Oracle SQL执行计划报告生成器

    Oracle SQL执行计划分析器功能的创建3步曲: 1 首先,编译XYG_ALD_SESS_PKG的Package头。 (XYG_ALD_SESS_PKG.sql) 2 接着要建立好下面的4个视图对象。因为XYG_ALD_SESS_PKG包体会用到。(View Create Script v...

    ORACLE11G新特性

    ### ORACLE 11G 新特性详解 #### 一、安装与配置 在 Oracle 11G 中,安装过程变得更加简化且易于管理。通过 Oracle Universal Installer (OUI) 安装 Oracle 11g 时,可以选择 OraInventory 目录进行安装。此外,在...

    DB_monitor.rar

    10g: 注意大小写 CREATE DIRECTORY utl AS 'd:\temp'; GRANT EXECUTE ON UTL_FILE_DIR TO a; 生成字典文件(新建表后要刷新) EXECUTE dbms_logmnr_d.build(dictionary_filename => 'orcldict.ora', ...

    Oracle_Database_10g_SQL_Tuning

    根据提供的文件信息,我们可以深入探讨Oracle Database 10g中的SQL调优技术及相关知识点。这份文档作为一本关于Oracle管理的参考书,对于那些希望深入了解如何优化数据库性能的专业人士来说非常有价值。 ### Oracle...

    Oralce11g数据库常见内置程序包

    2. **Flashback Technologies**:自Oracle 10g开始,利用`DBMS_FLASHBACK`等程序包支持数据库的闪回查询和恢复。 3. **Automatic Diagnostic Repository (ADR)**:自Oracle 11g开始,使用`DBMS_SQLDIAG`等程序包进行...

    Oracle运维最佳实践-下.pdf 带书签

    - 使用`DBMS_MONITOR.SESSION_MONITOR`来启用会话监控。 - 查询`v$mystat`和`v$statname`视图获取会话的实时统计数据。 - **2.1.4 Query Optimizer(查询优化器)** - 查询优化器负责选择最优的执行计划,对SQL...

    Oracle10g DBA培训PPT

    Oracle10g数据库管理员(DBA)培训是一个深入学习数据库管理、优化和故障排查的关键领域。这份Oracle10g DBA培训PPT包含了丰富的知识内容,旨在帮助学习者快速掌握Oracle数据库系统的管理技能,提高工作效率。 一、...

    Sybex OCP Oracle 10g New Features For Administrators

    ### Sybex OCP Oracle 10g 新特性对于管理员的重要性 #### 一、概述 随着信息技术的不断发展,数据库管理领域也在不断进步。《Sybex OCP Oracle 10g New Features For Administrators》是一本针对Oracle 10g新特性...

    Oracle Database 10g性能调整与优化ch06.pdf

    Oracle 10g引入了一些新特性,以进一步增强性能调整和优化的能力: 1. **DBMS_MONITOR** 该程序包扩展了SQL TRACE的功能,提供了更强大的监控和调试能力。 2. **TRCSESS** TRCSESS是一个命令行工具,可以将多...

    Oracle插入随机数

    其中`id + 288 * 22`用于生成新的`id`值,`26`是固定值,`monitortime`可能是当前时间或其他固定时间值。 - `F_Random_ZeroOrOne(DBMS_RANDOM.VALUE())`:调用前面定义的函数`F_Random_ZeroOrOne`生成0或1的随机数。...

    最新Oracle 1z0-040题库及答案

    Oracle 1z0-040 考试主要针对的是 Oracle Database 10g 的新特性对于数据库管理员的重要性和应用。此考试旨在评估考生对于 Oracle 10g 数据库中新特性的掌握程度,包括但不限于 Automatic Database Diagnostic ...

    oracle 10g DBA两日速成教程

    1. **Oracle 10g概述**:Oracle 10g是Oracle公司推出的数据库管理系统版本,它提供了许多增强功能,如自动存储管理(ASM)、数据仓库优化、实时应用集群(RAC)以及高级安全特性。了解这些核心特性对于理解Oracle 10...

    SQL Tuning Advisor使用总结

    - **AWR** (Automatic Database Diagnostic Monitor): AWR提供了关于数据库性能的综合信息,包括高负载SQL语句的统计信息。通过AWR报告,我们可以识别出消耗资源最多的SQL语句。 - **游标缓存**: 存储在共享池中的...

    ORACLE 10G Administration Workshop OCA

    Oracle 10G Administration Workshop OCA 是一个针对Oracle数据库管理员(OCA)的培训课程,旨在帮助学习者掌握Oracle 10G数据库系统的管理和维护技能。Oracle 10G是Oracle公司推出的数据库版本,其中"G"代表"Grid...

    Oracle10gDBA两日速成经典教程完整版

    Oracle 10g DBA(数据库管理员)是Oracle数据库系统管理的重要角色,它涉及数据库的安装、配置、性能优化、安全管理和故障排查等多方面工作。本教程“Oracle10g DBA两日速成经典教程完整版”显然是为了帮助初学者在...

    sqlmonitor

    sqlmonitor 1. 找出sid和serial# ... 例: D:\Oracle\product\10.1.0\admin\test10g\udump 6. 找最新的trace文件 7. 使用tkprof文件解析trace文件 例: tkprof sqltrace文件.trc a.out 8. 打开a.out

    oracle 11g dba handbook

    Oracle 11g是Oracle公司推出的数据库管理系统的一个重要版本,提供了许多新特性和增强功能,旨在提高数据库性能、可用性和安全性。 在本书中,读者将深入学习如何有效地管理和维护Oracle 11g数据库。以下是一些关键...

    Oracle Database 10g Administration Workshop I中文版

    Oracle Database 10g Administration Workshop I 是一套专为学习Oracle数据库管理基础的教程,适合初学者和准备OCP(Oracle Certified Professional)认证的人员。这个中文版提供了全面的指南,帮助用户理解并掌握...

Global site tag (gtag.js) - Google Analytics