`

Oracle性能监控和性能调优

阅读更多

-- Oracle性能监控和性能调优 ---
By LXM. 2009-07-17

1. 使用StatsPack: 性能监控和统计工具包。
     a. 安装:
        - 用oracle帐号进入$ORACLE_HOME/rdbms/admin目录,然后运行sqlplus "/ as sysdba" (用SYSDBA权限登录)
        - SQL> @spcreate
        这个脚本会创建perfstat账户,生成监控和统计相关的表。提示输入默认表空间和默认临时表空间,可以使用TOOLS和TEMP。输入perfstat用户的秘密并记住这个密码。
     b. 使用
       之后可以运行应用程序访问数据库。然后可以在TOAD或SQLPLus下生成监控快照(SNAP),并根据各个快照输出统计结果。

       注意,使用之前,确保timed_statistics参数为true。
       SQL> alter system set timed_statistics=true;

       - 在TOAD下,用perfstat用户登录:
        选择“DataBase"-"Monitor"-"StatsPack Browser",在左下角“Charts & Data Grids”中选中复选框中的"Built-in"所有组件,然后点击左上角"New Snap Shot",以生成快照。每隔几分钟生成一次。结果会显示在右边的图形中。
      
     - SQLPLus,先进入到$ORACLE_HOME/rdbms/admin目录,然后登录到Oracle服务器(不是客户端):
       - 用perfstat用户登录,执行生成快照的过程语句:
       SQL> connect perfstat/perfstat
       SQL> execute STATSPACK.SNAP
       - 多执行几次。然后使用以下命令查看报表(注意先进入rdms/admin目录):
       - 查看SNAP表,以确定snap_id:
         SQL> select snap_id,TO_CHAR(snap_time,'yyyymmddhhmmss') from STATS$SNAPSHOT;
   SNAP_ID TO_CHAR(SNAP_T
   ---------- --------------
        21 20090722040736
         22 20090722050748
    
        SQL>@spreport

       注意,使用@spreport需要输入起始snap_id。即使在TOAD中生成的快照,也可以使用这个语句进行查看。

      Report中,以下是要关注的:
     - Instance Activity Stats(实例活动):
       -sorts (disk): 磁盘排序,这个值应该低。否则应提高sort_area_size值。
       -sorts (memory) :内存排序,这个值应该高。
       -table scans (long tables) : 大表扫描,这个值应该低。否则应查看是否未使用索引,是否有聚合语句(Group by, sum,count等)
      
     - Library Cache Activity for DB (库缓存)
       SQL_Area,Index等Pct Miss要低!
  
    
     注意,对于上线产品,监控完成后,应该将timed_statistics设成false.
       SQL> alter system set timed_statistics=false;

 


2. TOAD的"DataBase"-"Monitor"-"Top Session Finder"工具
   使用Toad的Top Session Finder,可以找到最耗资源的Session,然后查看此Session所在的机器/进程、执行的SQL语句等信息。
   从而判断哪个进程的哪个SQL语句比较耗数据库资源。
  
   进入"Top Session Finder"后,点击左上角绿色的“三角”运行按钮(List Sessions),列出所有的Sessions.
   然后点击右边的"Weighted sum"进行排序,也就是按权重的从高到低排序(这个权重按照CPU占用率、磁盘访问率等参数综合计算,越高表示资源耗用越大)。
  
   然后选中排在前面的一些SID(SessionID), 单击右键,选择“Find Selected session in session browser":
   双击相应的SID,在右侧会列出各项具体参数,例如:
   -”Current Statements"会列出这个Session当前的SQL语句。可以判断哪个SQL语句比较耗资源。
   -"Open Cursors"会列出游标情况,点中"Sql txt",则下侧的"Explain Plan"中,会给出执行计划。执行计划可以看到是否有全表扫描、是否按索引操作等关键信息。
  
  
3. ORACLE Enterprise Manager Console 自带的Top SQL 工具
   进入Tools-"Diagnostic Pack"-"Top Sql“.
  
   利用这个工具,也可以找到最耗资源的SQL语句情况。
  
  

4. 执行计划:使用Explain Plan确定SQL访问路径。
     - 安装. 先进入oracle服务器的rdbms/admin目录,然后在SQLPlus下运行:
       SQL> connect emsp_v3/emsp
          Connected.
       SQL> @utlxplan
       此脚本会创建PLAN_TABLE,创建在emsp_v3用户下。这样,可以在这个用户下执行计划。

    - 用上述用户登录后,执行计划,如下:
      explain plan
      set Statement_Id = 'TEST'
      for
      select * from smshistory where submittime>'20090717' and rownum<2;
      commit;

      for后面是需要解释查询的语句。这个语句不会实际执行,而是解释查询的执行计划。
       
    - 查看结果:
     select ID, Parent_ID,operation,options,cost,cardinality,io_cost,bytes,filter_predicates from plan_table;
    (在TOAD中看方便一些)

    如果出现TABLE ACCESS FULL,表示进行了全表或Partition扫描。

SQL> connect username/userpass@dbservicename

    另一种查看执行计划的方法是自动跟踪:
    - 第一步:登入sql/plus 执行命令(无先后顺序)
      SQL> set   time   on; (说明:打开时间显示)    
      SQL> set   autotrace   on; (说明:打开自动分析统计,并显示SQL语句的运行结果)   
      SQL> set   autotrace   traceonly; (说明:打开自动分析统计,不显示SQL语句的运行结果)二者选一个
     第二步: 输入你要查看的sql 语句。

分享到:
评论

相关推荐

    Tomcat和MySql和Jvm和Oracle性能监控和调优

    四、Oracle性能监控与调优 Oracle数据库系统的性能优化涵盖: 1. **物理结构优化**:合理设计表空间、段、区,避免全表扫描,使用索引。 2. **SQL优化**:使用`EXPLAIN PLAN`分析查询执行计划,调整SQL语句,避免全...

    Oracle 性能调优最佳攻略(OCP版)

    《Oracle性能调优最佳攻略(OCP版)》详细阐述了Oracle性能调优的策略与实践,包括调优方法论、基本调优工具和DB时间模型等关键知识点。 首先,调优方法论提出了性能调优的主体——谁来调优。数据库管理员(DBA)、...

    oracle数据库性能调优和监控

    总之,Oracle数据库性能调优和监控是一个复杂而细致的过程,需要结合硬件资源、数据库配置、SQL语句优化等多个维度进行综合考虑。通过持续监控和适时调整,可以确保数据库系统稳定高效地运行,为业务提供强有力的...

    Oracle 性能调优

    1. **性能监控**:使用Oracle提供的工具,如AWR(Automatic Workload Repository)报告和ASH(Active Session History),收集系统性能数据。 2. **性能问题识别**:分析收集到的数据,识别出导致性能下降的因素,如...

    Oracle性能调优实践中的几点心得

    总的来说,Oracle性能调优不仅仅是数据库层面的操作,还需要结合操作系统层面的监控和分析。通过合理利用工具,及时识别和解决CPU、内存和IO等资源的瓶颈,可以显著提升数据库的运行效率。同时,定期审查和优化SQL...

    EBS性能调优之全面挖掘_V4.2(ebs性能优化、oracle性能优化、linux性能优化)

    EBS(Oracle E-Business Suite)性能调优是一项关键任务,它涉及多个层次的优化,包括存储设备、主机、数据库、应用系统、网络和客户端。此文档重点聚焦于应用系统和数据库层面的调优策略,同时也涵盖了一部分Linux...

    Oracle性能调优

    Oracle性能调优是一个复杂而关键的过程,涉及到...总之,Oracle性能调优是一个系统性的工程,需要深入理解数据库的工作原理,并结合实际环境进行有针对性的分析和优化。持续监控和调整是保证数据库高效运行的关键。

    oracle性能监控

    Oracle性能监控是数据库管理系统中一个至关重要的环节,它有助于确保系统的高效运行,及时发现并解决潜在问题。在本文中,我们将深入探讨Oracle性能监控的一种工具——Quest公司的SPOTLIGHT ON ORACLE,它是一款专为...

    Oracle性能调优原理及具体手段

    ### Oracle性能调优原理及具体手段 #### 一、Oracle结构与实例 ##### 1.1 Oracle实例(Instance) - **定义与作用**:Oracle实例是访问Oracle数据库的一个途径,它仅能打开一个数据库。 - **组成**:由SGA(系统...

    Oracle 11g 性能调优(OCP版)超经典实战手册

    性能调优可以分为三个主要的层面:应用调优、实例调优和操作系统调优。应用调优通常是DBA与开发人员合作,通过优化SQL语句和性能变化管理来实现。实例调优是DBA的职责,包括内存配置、数据库结构和实例配置等。而...

    ORACLE DBA工作笔记 运维数据迁移与性能调优

    标题中提到的“ORACLE DBA工作笔记 运维数据迁移与性能调优”揭示了这本书籍主要围绕着Oracle数据库管理员(DBA)在日常工作中经常需要进行的两项关键任务:数据迁移和性能调优。作为一名Oracle DBA,不仅要负责...

    性能测试监控oracle调优的工具介绍

    LOadrunner进行压力测试时,需要对数据库进行监控,spotliht on oracle工具可以实时监控oracle数据库,定位耗时,执行效率低的sql,便于对数据库进行调优提供参考依据。

    Oracle 性能调优向导

    "Oracle性能调优向导"这本书旨在为读者提供全面而实用的Oracle性能优化策略和技巧。 一、Oracle性能优化基础 Oracle性能优化的基本原则包括:最小化磁盘I/O、合理分配系统资源、优化SQL查询和索引策略。这需要我们...

    Oracle系统调优办法

    通过具体的案例分析和实践经验分享,可以帮助我们更好地理解和掌握Oracle性能调优的具体方法和技术。 **案例**: - **案例1**:某企业数据库因频繁执行大量复杂查询而出现性能下降现象。通过SQL语句优化和并行查询...

    Oracle性能调优思路

    Oracle性能调优是一个复杂而关键的过程,涉及到数据库的多个层面,包括硬件配置、操作系统设置、数据库参数调整、SQL优化以及...Oracle性能调优是一个持续的过程,需要不断监控、测试和改进,以实现最优的系统性能。

    Oracle性能调优笔记

    Oracle Enterprise Manager(OEM)是一个全面的管理系统,包含诊断和性能监控工具;Statspack则用于收集和分析性能数据;v$xxx动态性能视图提供了实时数据库状态;dba_xxx字典视图用于查询数据库对象信息。 数据库...

    oracle调优工具.rar

    8. **性能监控和诊断**:利用AWR(Automatic Workload Repository)、ASH(Active Session History)等工具,定期收集和分析性能数据,找出性能瓶颈。 9. **数据库升级和补丁应用**:保持数据库版本的最新,应用...

    oracle 11g 性能调优 官方PPT

    以上仅为Oracle 11g性能调优的部分要点,实际PPT可能会包含更详细的操作步骤和案例分析,帮助DBA们更有效地管理数据库,确保系统的稳定性和高性能。通过深入学习和实践这些知识,可以提升数据库的运行效率,减少响应...

    oracle性能调优OTop

    总的来说,OTop作为一款强大的Oracle性能调优工具,它提供了一种直观、高效的手段来监控和优化数据库性能,对于维护数据库健康、提升业务效率至关重要。通过熟练掌握OTop的使用,DBA能够更好地管理和优化Oracle...

Global site tag (gtag.js) - Google Analytics