- 浏览: 328188 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (224)
- Java (34)
- Test (3)
- Linux/Unix (32)
- Windows (8)
- Oracle (78)
- Oracle Backup & Recovery (3)
- SqlServer (1)
- Database (3)
- Open Source (2)
- Server Management (1)
- Apache ActiveMQ (1)
- IBM WebSphere MQ (7)
- IBM WAS (15)
- 其它 (11)
- UML (1)
- Tools (1)
- Reference (0)
- Spring (11)
- Hibernate (5)
- VBScript (3)
- Network (1)
- Securities (2)
- Maven (6)
- logging (2)
- Web (1)
- AWS (3)
最新评论
DECLARE L_FROM_TIME TIMESTAMP; L_TO_TIME TIMESTAMP; L_MIN_ID DBA_HIST_SNAPSHOT.SNAP_ID%TYPE; L_MAX_ID DBA_HIST_SNAPSHOT.SNAP_ID%TYPE; L_START_NODE DBA_HIST_SNAPSHOT.INSTANCE_NUMBER%TYPE; L_END_NODE DBA_HIST_SNAPSHOT.INSTANCE_NUMBER%TYPE; L_DB_NAME V$DATABASE.NAME%TYPE; L_DB_ID V$DATABASE.DBID%TYPE; L_START_TIME DBA_HIST_SNAPSHOT.BEGIN_INTERVAL_TIME%TYPE; L_INTERVAL_MIN NUMBER := 0; L_INPUT_INTERVAL NUMBER := 0; L_COUNT NUMBER := 0; L_SNAP_DIFF NUMBER := 0; L_RPT_FORMAT VARCHAR2(10); L_START_SNAP_ID NUMBER; L_END_SNAP_ID NUMBER; L_TASK_NAME VARCHAR2(50); L_TASK_ID NUMBER; BEGIN BEGIN L_FROM_TIME := TO_TIMESTAMP ('&&1' ||lpad('&&2',4,0), 'YYYYMMDDHH24MI'); L_TO_TIME := TO_TIMESTAMP ('&&1' || lpad('&&3',4,0), 'YYYYMMDDHH24MI'); L_INPUT_INTERVAL := TO_NUMBER ('&&4'); L_RPT_FORMAT := UPPER('&&5'); IF L_RPT_FORMAT <> 'TEXT' THEN L_RPT_FORMAT := 'TEXT'; DBMS_OUTPUT.PUT_LINE('--Error Unknown Report Format - Both HTML and TEXT formatted reports will be generated'); END IF; EXCEPTION WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE (SQLERRM); DBMS_OUTPUT.PUT_LINE('--Error input format: Date ('||'&&1'||') should in YYYYMMDD, From time (&&2) and to time (&&3) must be hour and minutes'); GOTO EXIT_LOOP; END; if (l_to_time<l_from_time) then DBMS_OUTPUT.PUT_LINE('--Error time range: From time '||to_char(l_from_time,'YYYYMMDD HH24MI')||' later than to time '||to_char(l_to_time,'YYYYMMDD HH24MI')); GOTO EXIT_LOOP; end if; SELECT DBID, NAME INTO L_DB_ID, L_DB_NAME FROM V$DATABASE; SELECT DISTINCT MIN (SNAP_ID) - 1, MAX (SNAP_ID), MIN (INSTANCE_NUMBER), MAX (INSTANCE_NUMBER), MIN (BEGIN_INTERVAL_TIME), ROUND(MIN(TO_DATE (TO_CHAR (END_INTERVAL_TIME, 'YYYYMMDDHH24MI'), 'YYYYMMDDHH24MI') - TO_DATE ( TO_CHAR (BEGIN_INTERVAL_TIME, 'YYYYMMDDHH24MI'), 'YYYYMMDDHH24MI' ))*1440 ) INTO L_MIN_ID, L_MAX_ID, L_START_NODE, L_END_NODE, L_START_TIME, L_INTERVAL_MIN FROM DBA_HIST_SNAPSHOT WHERE BEGIN_INTERVAL_TIME >= L_FROM_TIME AND END_INTERVAL_TIME <= L_TO_TIME; IF (L_INPUT_INTERVAL / L_INTERVAL_MIN < 1) THEN L_SNAP_DIFF := 1; L_INPUT_INTERVAL:=L_INTERVAL_MIN; ELSE L_SNAP_DIFF := ROUND (L_INPUT_INTERVAL / L_INTERVAL_MIN); END IF; DBMS_OUTPUT.PUT_LINE('set feedback off echo off serveroutput off wrap on pagesize 0 linesize 1000 trimspool on '); FOR X IN 1 .. (L_MAX_ID - L_MIN_ID) / L_SNAP_DIFF LOOP FOR Y IN L_START_NODE .. L_END_NODE LOOP L_START_SNAP_ID := L_MIN_ID + L_COUNT * L_SNAP_DIFF; L_END_SNAP_ID := L_MIN_ID + (L_COUNT + 1) * L_SNAP_DIFF; -- Create ADDM Reports dbms_advisor.create_task('ADDM',L_TASK_ID,L_TASK_NAME,'run_addm('||L_START_SNAP_ID||','|| L_END_SNAP_ID||''')'); dbms_advisor.set_task_parameter(L_TASK_NAME,'START_SNAPSHOT',L_START_SNAP_ID); dbms_advisor.set_task_parameter(L_TASK_NAME,'END_SNAPSHOT',L_END_SNAP_ID); dbms_advisor.set_task_parameter(L_TASK_NAME,'INSTANCE',Y); dbms_advisor.execute_task(L_TASK_NAME); dbms_output.put_line('--Task#' || L_TASK_ID || ' (' || L_TASK_NAME || ')'); -- text version ONLY DBMS_OUTPUT.PUT_LINE( 'spool c:\temp\online_60\' || L_DB_NAME || Y || '_&&1' || '_' || TO_CHAR ( L_START_TIME + L_COUNT * L_INPUT_INTERVAL / 1440, 'HH24MI' ) || '_to_' || TO_CHAR ( L_START_TIME + (L_COUNT + 1) * L_INPUT_INTERVAL / 1440, 'HH24MI' ) || '_ADDM.txt'); DBMS_OUTPUT.PUT_LINE('SET LONG 1000000'); DBMS_OUTPUT.PUT_LINE('SET PAGESIZE 50000'); DBMS_OUTPUT.PUT_LINE('COLUMN GET_CLOB FORMAT A80'); DBMS_OUTPUT.PUT_LINE('SELECT dbms_advisor.get_task_report(' || ''''||L_TASK_NAME||''',' || ''''||L_RPT_FORMAT||''',' || '''ALL'',' || '''ALL'',' || 'NULL' || ') as addm_rep from dba_advisor_tasks where task_id = '||L_TASK_ID||';' ); DBMS_OUTPUT.PUT_LINE ('spool off;'); L_TASK_NAME := NULL; END LOOP; L_COUNT := L_COUNT + 1; END LOOP; <<exit_loop>> NULL; EXCEPTION WHEN NO_DATA_FOUND THEN DBMS_OUTPUT.PUT_LINE( '--NO DATA FOUND BETWEEN ' || TO_CHAR (L_FROM_TIME, 'YYYYMMDD HH24MI') || ' and ' || TO_CHAR (L_TO_TIME, 'YYYYMMDD HH24MI')); WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE( '--Error:'); DBMS_OUTPUT.PUT_LINE( SQLERRM); END; /
-- A simple version:
DECLARE task_name VARCHAR2(30) := 'DEMO_ADDM01'; task_desc VARCHAR2(30) := 'ADDM Feature Test'; task_id NUMBER; BEGIN dbms_advisor.create_task('ADDM', task_id, task_name, task_desc, null); dbms_advisor.set_task_parameter(task_name, 'START_SNAPSHOT', 65); dbms_advisor.set_task_parameter(task_name, 'END_SNAPSHOT', 66); dbms_advisor.set_task_parameter(task_name, 'INSTANCE', 1); dbms_advisor.set_task_parameter(task_name, 'DB_ID', 1712582900); dbms_advisor.execute_task(task_name); END; /
发表评论
-
DBCP连接池介绍
2018-09-12 13:17 459目前 DBCP 有两个版本分别是 1.3 和 1.4。 D ... -
Update两表(多表)关联update -- 被修改值由另一个表运算而来
2016-10-22 00:50 984UPDATE trd_sess A SET A.r ... -
GV$LOCKED_OBJECT
2016-09-27 01:21 1123SELECT OBJECT_NAME, MACHINE, ... -
v$sql v$sqlarea v$sqltext v$sql_plan
2015-08-13 16:55 807v$sqltext存储的是完整的SQL,SQL被分割 SQ ... -
Oracle performance tuning
2015-08-10 17:47 601db block get+consistent gets ... -
JDBC driver 的类型 Type 1 Type2 Type3 Type4
2014-06-12 16:01 855在网上下载jdbc驱动程序,常看见type4字样,开始以为是 ... -
undo segment behavior
2014-04-04 19:04 781FAQ – Automatic Undo Managemen ... -
Connect to Oracle DB - Java
2014-04-04 15:14 718import java.sql.*; public ... -
Dataguard网络优化调整
2014-03-31 16:02 958Dataguard网络优化调整 Datagu ... -
Production error ORA-01001, ORA-03120, ORA-01460
2014-03-19 20:38 988ORA-01001: invalid cursor OR ... -
Oracle 常见的33个等待事件
2014-03-12 15:42 4064一. 等待事件的相关知识: 1.1 等待事件主要可以 ... -
WBFC on Exadata
2014-02-27 14:57 8611. "Should we turn on Sto ... -
Oracle dump files
2014-02-27 12:58 666audit_file_dest = C:\ ... -
Adaptive Log File Sync
2014-02-26 19:52 1060Adaptive Log File sync was int ... -
ORA-39046: Metadata remap REMAP_TABLESPACE has already been specified.
2014-01-22 16:01 6710Import: Release 10.2.0.4.0 - 6 ... -
EXPDP – ORA-39142: incompatible version number 3.1
2014-01-22 12:25 1663Using EXPDP export a schema in ... -
Oracle 11g Real Time SQL Monitoring
2014-01-20 17:01 784http://kerryosborne.oracle-guy ... -
java.sql.SQLException: ORA-01001: invalid cursor
2013-12-20 13:59 3787There are three parameters tha ... -
ORA-01013 user requested cancel of current operation
2013-12-20 13:34 2424今天我碰到的case就是timeout引起的。 T ... -
Cannot run sqlplus on Linux with EOF
2013-12-20 11:02 849今天碰到个小问题,记下来,在linux上,不可以run fi ...
相关推荐
ORACLE数据库的AWR与ADDM报告是分析和优化数据库性能的重要工具。AWR(自动工作负载仓库)能够收集并报告数据库的性能数据,而ADDM(自动数据库诊断监视器)则基于AWR的数据提供深入的诊断建议。以下是收集AWR与ADDM...
### Oracle ADDM报告指标分析 #### 一、ADDM概览 ADDM(Automatic Database Diagnostic Monitor,自动数据库诊断管理)是Oracle 10g引入的一种强大的数据库自我诊断工具。它通过对AWR(Automatic Workload ...
### Oracle ADDM自动诊断监视工具详解 #### 一、ADDM概述与背景 ADDM,全称Automatic Database Diagnostic Monitor,是Oracle数据库系统中内置的一种自动诊断引擎,旨在帮助数据库管理员(DBA)更有效地识别和解决...
oracle ADDM自动诊断监视工具 oracle ADDM自动诊断监视工具
Linux下生成oracle awr和addm的数据库脚本。通过生产环境测试。
Oracle数据库10g版本引入了许多新的特性和改进,其中20个最出色的新特性包括了SQL Advisor和ADDM(自动数据库诊断监视器)。这些特性共同助力数据库管理员和开发者以更加高效和智能的方式管理数据库。以下是对Oracle...
$ORACLE_HOME/rdbms/admin目录下awr,addm,ash相关脚本功能分析
sql学习 addm体验.sql
在实际编程中,常用ST(结构化文本)语言表达ADDM指令的功能,格式为ADDM('地址标识'),其中地址标识包含了机架号、模块位置、通道编号和IP地址等。 READ_VAR指令用于从指定的地址读取数据,可以读取的类型包括内...
BMC发现的DiscoEnhancements版本1.5traversys.io 此适度的扩展旨在为发现UI带来一些有用的增强支持BMC ADDM / Discovery的11+版本新的更新了RAW编辑器,以允许复制文本和快速编辑。 全局仪表板下拉列表。 CMDB同步和...
【使用Shell定制ADDM脚本】是针对Oracle数据库性能优化的一种高效方法,特别是在10g版本之后,ADDI Maintenance Wizard(ADDM)成为了自动化诊断和调整的重要工具。ADDM能够基于Automatic Workload Repository (AWR)...
### Oracle数据库优化经验——ADDM应用详解 #### 一、ADDM概述 **ADDM**(Automatic Database Diagnostic Monitor,自动数据库诊断监视器)是Oracle数据库管理工具中的一个重要组件,旨在帮助数据库管理员(DBA)快速...
《Oracle 11g DBA新功能深度解析:ADDM在RAC环境下的应用》 在Oracle Database 11g的版本更新中,面向数据库管理员(DBA)的新增功能不仅提升了数据库的性能与稳定性,更在数据库管理和维护方面带来了诸多便利。其中...
本文主要介绍了四个常用的Oracle分析诊断工具:AWR、ASH、ADDM以及它们的应用。 1. AWR(Automatic Workload Repository)是Oracle 10g引入的新特性,用以替代之前的Statspack。AWR提供了全面的数据库性能信息,...
在Oracle的学习过程中,理解并掌握自动数据库诊断监控程序(ADDM)是至关重要的一步。ADDM是Oracle企业管理器(OEM)的一个关键组件,它在Oracle 10g版本中首次引入,以替代旧有的OEM Expert工具,提供了更为全面和...
ADDM利用Automatic Workload Repository (AWR)收集的性能数据,定期进行数据库性能分析,寻找并提出性能优化建议。AWR是Oracle数据库自动生成的一种性能数据存储,它捕获了数据库的性能指标,包括SQL语句、等待事件...
- 提供了一系列策略和工具,如ADDM、AWR快照等,来帮助运维人员提前发现问题。 - 实例: - 定期创建AWR快照,使用`DBMS_WORKLOAD_REPOSITORY.SNAPSHOT`。 - 使用`DBMS_MONITOR.SESSION_MONITOR`来监控关键会话。...
- **ADDM**:ADDM是基于AWR数据生成的一组诊断报告,它能够帮助我们快速定位导致性能问题的原因。ADDM报告通常包含了对性能问题的根本原因分析以及相应的改进建议。 #### 二、通过OEM收集Oracle性能日志 在Oracle ...
Oracle10g数据库自动诊断监视工具(ADDM)是Oracle数据库10g版本引入的一个重要特性,用于自动化数据库性能问题的诊断和优化建议。ADDM与SQL优化建议工具(SQL Tuning Advisor, STA)共同工作,极大地减轻了DBA的...