oracle性能调优学习0622

  1. 查询数据库中的等待事件:

    SET lines 100
    SET pages 10000
    COLUMN wait_class format a12
    COLUMN event format a30
    COLUMN total_waits format 999999
    COLUMN total_us format 999999999
    COLUMN pct_time format 99.99
    COLUMN avg_us format 999999.99
    SET echo on

    SELECT   wait_class, event, total_waits AS waits,
             ROUND (time_waited_micro / 1000) AS total_ms,
             ROUND (time_waited_micro * 100 / SUM (time_waited_micro) OVER (),
                    2
                   ) AS pct_time,
             ROUND ((time_waited_micro / total_waits) / 1000, 2) AS avg_ms
        FROM v$system_event
       WHERE wait_class <> ‘Idle‘
    ORDER BY time_waited_micro DESC;

2.整合时间模型和等待接口:

SELECT event,
       total_waits,
       round(time_waited_micro / 1000000) AS time_waited_secs,
       round(time_waited_micro * 100 / SUM(time_waited_micro) over(), 2) AS pct_time
  FROM (SELECT event, total_waits, time_waited_micro
          FROM v$system_event
         WHERE wait_class <> ‘Idle‘
        UNION
        SELECT stat_name, NULL, VALUE
          FROM v$sys_time_model
         WHERE stat_name IN (‘DB CPU‘, ‘backup cpu time‘))
 ORDER BY 3 DESC

SELECT sample_seconds,
       stat_name,
       waits_per_second        waits_per_sec,
       microseconds_per_second ms_per_sec,
       pct_of_time             pct
  FROM opsg_delta_report
 WHERE microseconds_per_second > 0;
监控索引的使用情况:

WITH in_plan_objects AS
 (SELECT DISTINCT object_name FROM v$sql_plan WHERE object_owner = ‘SCOTT‘)
SELECT table_name,
       index_name,
       CASE
         WHEN object_name IS NULL THEN
          ‘NO‘
         ELSE
          ‘YES‘
       END AS in_cached_plan
  FROM user_indexes
  LEFT OUTER JOIN in_plan_objects
    ON (index_name = object_name);

4.识别从绑定变量中获益的sql语句:

WITH force_matches AS
       (SELECT force_matching_signature,
               COUNT( * )  matches,
               MAX(sql_id || child_number) max_sql_child,
               DENSE_RANK() OVER (ORDER BY COUNT( * ) DESC)
                  ranking
        FROM v$sql
        WHERE force_matching_signature <> 0
          AND parsing_schema_name <> ‘SYS‘
        GROUP BY force_matching_signature
        HAVING COUNT( * ) > 5)
SELECT sql_id,  matches, parsing_schema_name schema, sql_text
  FROM    v$sql JOIN force_matches
    ON (sql_id || child_number = max_sql_child)
WHERE ranking <= 10
ORDER BY matches DESC;

时间: 2024-10-13 19:37:46

oracle性能调优学习0622的相关文章

oracle性能调优学习0621

1.PLAN_table column query_plan format a55column cardinality format 99999column cost format 99999delete from plan_table;set lines 100set pages 100set echo on EXPLAIN PLAN FORSELECT *  FROM hr.employees JOIN hr.departments USING (department_id);  SELEC

[转]oracle性能调优之--Oracle 10g AWR 配置

一.ASH和AWR的故事 1.1 关于ASH 我们都知道,用户在ORACLE数据库中执行操作时,必然要创建相应的连接和会话,其中,所有当前的会话信息都保存在动态性能视图V$SESSION中,通过该视图,DBA可以查看用户实际执行的操作,或者当前的等待事件等.通常这部分信息是调优过程中的关键信息,不过,一旦连接断开.会话信息就会被同时从V$SESSION及其它相关视图中清除,也就是说,用户执行完操作走人,而你(DBA),如果不能在当前逮到他,过了这点,就不知道它曾经做过什么了. 10g 版本中,O

Oracle性能调优(AWR)

一.AWR报告 AWR 是通过对比两次快照(snapshot)收集到的统计信息,来生成报表数据,生成的报表包括多个部分,这点与Statspack生成的报告非常类似.不过AWR在生成报告时,可以选择生成TXT或HTML两种格式的报告,相对来说,HTML更利于阅读,而TXT的适用性更广(即使在不能使用浏览器的机器上也能看). 操作过Statspack的朋友都还记的,生成报告使用$ORACLE_HOME/rdbms/admin/spreport.sql脚本,到了AWR这片,操作步骤基本上相同,不过生成

Oracle 性能调优之:使用 V$SQL_PLAN 视图查询内存中的执行计划

V$SQL_PLAN视图提供了一种方法,可用于检查仍位于库高速缓存的游标的执行计划.此视图中的信息与 PLAN_TABLE 视图中的信息非常类似.但是,EXPLAIN PLAN 显示的是执行相应语句时可以使用的理论,而V$SQL_PLAN 包含实际使用的计划.通过 EXPLAIN PLAN 语句获取的执行计划与用来执行游标的执行计划可能有所不同.原因在于,也许已经用不同的会话参数值编译了游标. V$SQL_PLAN 显示一个游标的计划,并非与一个 SQL 语句相关联的所有游标的计划.区别在于,一

Oracle 性能调优

在 oracle 中效率排行, 表连接>exist>not exist>in>no in 并且使用in 查询 会有查询条件数量不能超过1000 的限制: 简单提高效率可以使用 exist 代替in 换成表连接可以更大的提高效率: 用left join (左连接) 代替 not in 和 not exist 用 inner join(内连接) 代替 in 和 exist 这样可以大大提高效率: (1)SELECT PUB_NAME FROM PUBLISHERS WHERE PUB_

《Java性能调优》学习笔记(1)

性能的参考指标 执行时间 -- 从代码开始运行到结束的时间 CPU时间 -- 函数或者线程占用CPU的时间 内存分配 -- 程序在运行时占用内存的情况 磁盘吞吐量 -- 描述IO的使用情况 网络吞吐量 -- 描述网络的使用情况 响应时间 -- 系统对某用户行为或者时间做出的响应时间 性能的瓶颈资源可能有: 磁盘IO 网络操作 CPU 异常 -- 对Java应用来说,异常的补货和处理是非常消耗资源的,如果程序高频率的对异常处理会对整体性能有影响 数据库 锁竞争 -- 增加上下文切换的开销 内存 性

【转】性能调优从哪里入手

说到性能调优,给人的感觉往往都是修炼有成的专家干得事了,对于我们这些菜鸟还是想也不要想了,做好分内事,不出现纰漏就OK了.对于这种观点我表示严肃的否决!那想学习性能调优的童鞋应该从哪里下手呢?接下来就让我们来谈谈关于性能调优你所忽视的一些常识. 一.代码:前文讲过“华为Java编程军规,每季度代码验收标准”这个标准是衡量代码本身的缺陷,也是衡量一个研发人员本身的价值.代码是性能调优中的一粒分子,分子虽小但经过上亿次的分裂也会变成黑洞,所以代码本身的缺陷也是我们性能调优的主因之一. 军规一:[避免

MySQL性能调优与架构设计——第1章 MySQL 基本介绍

MySQL性能调优与架构设计——第1章 MySQL 基本介绍 前言:作为最为流行的开源数据库软件之一, MySQL 数据库软件已经是广为人知了. 但是为了照顾对MySQL还不熟悉的读者,这章我们将对 MySQL 做一个简单的介绍.主要内容包括MySQL 各功能模块组成,各模块协同工作原理, Query 处理的流程等. 1.1 MySQLServer 简介 1.1.1 什么是 MySQLMySQL 是由MySQL AB公司(目前已经被SUN公司收归麾下,SUN已经被Oracle收购)自主研发的,目

apache性能调优(转)

一.总结前一天的学习 在前两天的学习中我们知道.了解并掌握了Web Server结合App Server实现单向Https的这样的一个架构.这个架构是一个非常基础的J2ee工程上线布署时的一种架构.在前两天的教程中,还讲述了Http服务器.App Server的最基本安全配置(包括单向https的实现), 它只是避免了用户可以通过浏览器侵入我们的Web访问器或者能够通过Web浏览器来查询我们的Web目录结构及其目录内的文件与相关内容,这种入侵我们把它称为: Directory traversal