Oracle 自带性能诊断工具介绍

news/2024/11/15 21:28:09/

statspack

Oracle Statspack 工具从 Oracle 8.1.6 开始引入,通过 Statspack 可以很容易地收集数据库性能数据,并通过这些数据进而分析确定 Oracle 数据库的瓶颈所在。该工具9i 必用,10g,11g,12c 兼容,后期awr出来后,Oracle 建议用户用这个取代 Statspack。

statspack工具的使用:

1)修改参数

alter system set job_queue_processes=1000 scope=both;

alter system set timed_statistics=TRUE scope=both;

2)创建表空间

create tablespace perfstat datafile '/oracle/app/oracle/oradata/orclfs/perfstat.dbf' size 200m autoextend off;

3)安装 statspack

@?/rdbms/admin/spcreate.sql

4)测试 statspack

conn perfstat/perfstat

execute statspack.snap

@?/rdbms/admin/spreport.sql

5)自动任务

conn perfstat/perfstat

@?/rdbms/admin/spauto.sql

6)移除定时任务

select job,log_user,last_date,next_date,interval from user_jobs;

execute dbms_job.remove('3');

execute dbms_job.remove('4');

7)删除历史数据

select max(snap_id) from stats$snapshot;

delete from stats$snapshot where snap_id <=2;

select max(snap_id) from stats$snapshot; 

8)删除 statspack 功能

@?/rdbms/admin/sptrunc.sql

@?/rdbms/admin/spdrop.sql

9)删除 statspack 表空间

drop tablespace perfstat including contents and datafiles;

AWR

Oracle 10g 以后提供了一个新的工具(AWR:Automatic Workload Repository)

Oracle 建议用户用这个取代 Statspack。AWR 实质上是一个 Oracle 的内置工具,它采集与性能相关的统计数据,并从那些统计数据中导出性能量度,以跟踪潜在的问题。与 Statspack 不同,快照由一个称为 MMON 的新的后台进程及其从进程自动地每小时采集一次。

awr工具的使用:

1)单实例

@?/rdbms/admin/awrrpt.sql

2)RAC

每个节点运行

@?/rdbms/admin/awrrpt.sql

每个节点运行/一个节点上运行收集多个。

@?/rdbms/admin/awrrpti.sql

3)一个节点上生成多个节点的。

@?/rdbms/admin/awrgrpti.sql

awr 性能数据的收集时间

awr 默认通过 mmon 及 mmnl 进程来每小自动运行一次,为了节省空间,oracle10g 在 7 天后自动清除,oracle11g 在 8 天后清理。采集的数据时间(快照频率和保留时间都可以由用户修改):

select * from dba_hist_wr_control;

begin

   dbms_workload_repository.modify_snapshot_settings(interval =>60,retention => 30*24*60);

end;

/

select * from dba_hist_wr_control;

awr 手工创建快照

可以使用 create_snapshot 存储过程手动创建快照来捕获非自动生成快照的时间内的统计信息:

 dbms_workload_repository.create_snapshot(flush_level in varchar2 default 'typical')

   return number;

flush_level 参数 flush level 可以是 'typical' 或 'all'

--手工创建快照

begin

   dbms_workload_repository.create_snapshot();

end;

/

select * from dba_hist_snapshot;

–-手工删除快照

 select * from dba_hist_snapshot;

begin

   dbms_workload_repository.drop_snapshot_range(low_snap_id=>30,high_snap_id => 31);

end;

/

awr baseline 的手工调整与管理

1)创建一个基线

select * from dba_hist_snapshot;

begin

   dbms_workload_repository.create_baseline(start_snap_id => 51, end_snap_id => 52, baseline_name =>'orcl_baseline-51-52',expiration => 30);

end;

/

select * from dba_hist_baseline;

2)重命名一个基线

begin

   dbms_workload_repository.rename_baseline(old_baseline_name=>'orcl_baseline-51-52',new_baseline_name =>'orcl_baseline-51-to-52');

end;

/

3)删除一个基线

begin

   dbms_workload_repository.drop_baseline(baseline_name=>'orcl_baseline-51-52');

end;

/

select * from dba_hist_baseline;

awr 性能相关的视图介绍

1)v$active_session_history

2)v$ 度量视图 v$metricgroup

3)dba_hist 视图

这类视图包括:

dba_hist_active_sess_history 显示最近的系统活动的内存中活动会话历史的历史信息。

dba_hist_baseline 显示数据库捕获的 baseline 的信息,如每个 baseline 的时间范围和 baseline type

dba_hist_baseline_details 显示特定 baseline 的详细信息

dba_hist_baseline_template 显示系统用于生成 baseline 的 baseline template

dba_hist_database_instance 显示数据库环境相关的信息

dba_hist_db_cache_advice 显示每行对应的缓存大小所产生的 physical read 的数量的历史预测信息

dba_hist_dispatcher 显示捕获快照时每个 dispatcher 进程的历史信息

dba_hist_dyn_remaster_stats 显示动态 remastering 进程相关的信息

dba_hist_iostat_detail 显示按照文件类型和功能统计的 i/o 统计信息

dba_hist_shared_server_summary 显示共享服务器的历史信息,如共享服务器活动、普通队列和 dispatcher 队列

dba_hist_snapshot 显示系统中的快照信息

dba_hist_sql_plan 显示 sql 执行计划

dba_hist_wr_control 显示控制 awr 的设置

可以使用这个查询:

spool /oracle/dba_hist_all.out

col table_name format a34

col comments format a66

set lin 200

set pagesize 200

select * from dict where table_name like 'DBA_HIST%';

spool off;

awr 性能分析数据的迁移

很多时候我们直接在客户机器上分析 awr 不太方便,需要通过收集客户 awr 信息到另一台机器上进行分析数据库性能。

oracle database 允许我们在几个数据库之间传输 awr 数据。当您要在单独的系统上分析 awr 数据时,这非常有用。要传输 awr 数据,您必须先从源数据库上抽取出 awr快照数据,然后将该数据载入目标数据库中。以下内容将介绍如何在 oracle database上抽抽取和载入 awr 数据。

1)导出 awr 性能数据

mkdir -p /home/oracle/bakcup

cd /home/oracle/backup

sqlplus "/as sysdba"

create directory awr_dir as '/home/oracle/backup';

@?/rdbms/admin/awrextr.sql

2)导入 awr 性能数据(找一台新机)

–模拟清空所有的 AWR 数据(同一个实例)

select * from dba_hist_snapshot;

begin

dbms_workload_repository.drop_snapshot_range(low_snap_id=>1,high_snap_id => 52);

end;

/

–模拟清空所有的 AWR 数据(非同一个实例)

begin

   dbms_swrf_internal.unregister_database(123456789); --dbid

end;

/

–如果以前创建了基线,就是要手工删除基线

begin

   dbms_workload_repository.drop_baseline(baseline_name=>'orcl_baseline-51-to-52',cascade => TRUE);

end;

/

–先创建 awr_dir 目录

–awrload.sql (sys)

mkdir -p /home/oracle/bakcup

cd /home/oracle/backup

sqlplus "/as sysdba"

create directory awr_dir as '/home/oracle/backup';

@?/rdbms/admin/awrload.sql

--检查

@?/rdbms/admin/awrrpt.sql

select * from dba_hist_snapshot;

ADDM

ADDM(Automatic Database Diagnostic Monitor) 是 Oracle 数据库的一个自诊断引擎.ADDM 通过检查和分析 AWR获取的数据来判断 Oracle数据库中可能的问题.是 Oracle 内部的一个顾问系统,能够自动的完成数据库的一些优化的建议,给出SQL 的优化,索引的创建,统计量的收集等建议。

ADDM工具的使用:

1)单实例

@?/rdbms/admin/addmrpt.sql

2)RAC

每个节点运行

@?/rdbms/admin/addmrpt.sql

每个节点运行/一个节点上运行收集多个。

@?/rdbms/admin/addmrpti.sql

ASH

ASH (Active Session History)以 V$SESSION 为基础,每秒采样一次,记录活动会话等待的事件。不活动的会话不会采样,采样工作由新引入的后台进程 MMNL 来完成。

ASH 工具的使用:

1)单实例

@?/rdbms/admin/ashrpt.sql

2)RAC

@?/rdbms/admin/ashrpti.sql

AWRDD

AWRDD 是用于比较两个 AWR 快照,从而获得不同时期的性能。

AWRDD 工具的使用:

1)单实例

@?/rdbms/admin/awrddrpt.sql

2)RAC

@?/rdbms/admin/awrgdrpt.sql

@?/rdbms/admin/awrgdrpi.sql

3)某一个实例

@?/rdbms/admin/awrddrpi.sql

AWRSQL

在 AWR 中定位到问题 SQL 语句后想要了解该 SQL statement 的具体执行计划,于是就用 AWR 报告中得到的 SQL ID 去 V$SQL 等几个动态性能视图中查询,但发现V$SQL 或 V$SQL_PLAN 视图都已经找不到对应 SQL ID 的记录,一般来说这些语句已经从 shared pool 共享池中被替换出去了。

AWRSQL工具的使用:

1)单实例

@?/rdbms/admin/awrsqrpt.sql

2)RAC

@?/rdbms/admin/awrsqrpti.sql


http://www.ppmy.cn/news/174779.html

相关文章

NTU-RGBD骨架数据分析

参考文献&#xff1a; NTU RGBD动作识别数据集 NTU-RGBD骨架数据分析 NTU-RGBD Dataset NTU RGB D动作识别数据集由56,880个动作样本组成&#xff0c;包含每个样本的RGB视频&#xff0c;深度图序列&#xff0c;3D骨架数据和红外视频。此数据集由3个Microsoft Kinect v.2相…

matlab读取多个文件 tecplot格式数据

平常程序输出的文件格式是.dat 一般用tecplot打开&#xff0c;画些云图&#xff0c;但是原始的数据有时候需要进行处理或者截取&#xff0c;就需要用matlab处理一下&#xff0c;附上我常用的风场文件读取处理程序。 文件格式&#xff1a;第一列x位置&#xff0c;第二列y位置&…

如何计算带有字母的高阶行列式?

这样的矩阵行列式&#xff1a; 肯定不是手算 可以借助Matlab 带有字母的矩阵就是符号矩阵&#xff0c;也就是说如何计算符号矩阵的行列式&#xff1f; syms a11 a12 a13 a14 a21 a22 a23 a25 a31 a32 a33 a36 a41 a44 a45 a46 a52 a54 a55 a56 a63 a64 a65 a66 A [a11 a12 …

超神之路 数据结构 3 —— Stack栈实现及应用

栈也是一种线性表结构&#xff0c;相较于数组&#xff0c;栈对应的操作是数组的子集&#xff0c;我们只要实现从一端添加元素&#xff0c;并从这个一端取出元素&#xff0c;这一端我们称呼它为栈顶&#xff0c;正是由于这种结构&#xff0c;它具有“后入先出”&#xff08;LIFO…

Keil综合(01)一些常见文件类型的作用和功能说明

相关标题&#xff1a; Keil中.uvmpw、.uvprojx、.uvproj、.uvoptx、.uvopt的意思是什么&#xff1f; Keil中.d .o .axf .elf这些文件可以删除吗&#xff1f; 前言 看着一大堆文件舒服吗&#xff1f; 相信大部分朋友看见过类似上图“凌乱”的现象。工程文件和编译过程文件杂乱放…

6

题目 用单链表保存m个整数&#xff0c;结点结构为&#xff1a;[data][link]&#xff0c;且&#xff08;n为正整数&#xff09;&#xff0c;现要求设计一个时间复杂度尽可能高效的算法&#xff0c;对于链表中data的绝对值相等的结点&#xff0c;仅保留第一次出现的结点而删除其余…

单片机编程软件很简单(10),Keil单片机编程软件常见文件介绍

单片机编程软件使用广泛&#xff0c;操作单片机编程软件的人员往往需具备专业知识。市场上有多款单片机编程软件可供大家选择&#xff0c;而小编较为推荐keil单片机编程软件。本文中&#xff0c;将主要为大家介绍这款单片机编程软件中的一些常见文件的作用和功能。如果你对本文…

abaqus复合材料三维弹性本构模型+塑性+渐进损伤-复合材料 3D VUMAT

对于纤维增强复合材料的模拟&#xff0c;在ABAQUS中&#xff0c;集成了二维Hashin失效准则与多种损伤演化准则&#xff0c;但缺少三维的复合材料本构模型。 参考一篇已发表的SCI文章&#xff0c;使用Fortran语言建立三维平纹织物复合材料弹塑性、渐进损伤本构模型-Vumat子程序…