- 浏览: 682536 次
- 性别:
- 来自: 中山
文章分类
最新评论
-
wuhuizhong:
jFinal支持Rest风格吗?可以想spring mvc那样 ...
在JFinal的Controller中接收json数据 -
wuhuizhong:
在jfinal中应如何获取前端ajax提交的Json数据?ht ...
在JFinal的Controller中接收json数据 -
wuhuizhong:
jfinal如何处理json请求的数据:问题: 在某些api接 ...
在JFinal的Controller中接收json数据 -
wuhuizhong:
Ubuntu14.04 安装 Oracle 11g R2 Ex ...
Oracle 11g release 2 XE on Ubuntu 14.04 -
alanljj:
这个很实用,已成功更新,谢过了!
odoo薪酬管理模块l10n_cn_hr_payroll
1.認識V$ACTIVE_SESSION_HISTORY视图
从Oracle10g开始引入了V$ACTIVE_SESSION_HISTORY视图,用于查询用户活动会话的历史信息。
1.1.相關參數設置
ASH缺省每一秒收集一下活动会话的情况,间隔时间由_ash_sampling_interval 参数确定。
V$ACTIVE_SESSION_HISTORY中的数据在被新数据周期性地覆盖前保留30 分钟,当数据从这个动态性能视图中清除时,这些数据被送到活动工作负载信息库(Active Workload Repository,AWR)中,它是一个基于磁盘的信息库。被清除的ASH(活动会话历史)数据可以在 DBA_HIST_ACTIVE_SESSION_HIST视图中看到,能够看到过去的会话的等待事件,在默认状态下,AWR中的数据7天后即被清除。
SQL> show parameter statistics; NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ optimizer_use_pending_statistics boolean FALSE statistics_level string TYPICAL timed_os_statistics integer 0 timed_statistics boolean TRUE
1.2.包含的內容
V$ACTIVE_SESSION_HISTORY包含top wait events, top SQL, top SQL command types,top sessions等等对于诊断故障非常有用的信息。
SQL> desc v$active_session_history; Name Null? Type ----------------------------------------- -------- ---------------------------- SAMPLE_ID NUMBER SAMPLE_TIME TIMESTAMP(3) --统计数字采集的时间 SESSION_ID NUMBER SESSION_SERIAL# NUMBER SESSION_TYPE VARCHAR2(10) FLAGS NUMBER USER_ID NUMBER SQL_ID VARCHAR2(13) SQL_CHILD_NUMBER NUMBER SQL_OPCODE NUMBER FORCE_MATCHING_SIGNATURE NUMBER TOP_LEVEL_SQL_ID VARCHAR2(13) TOP_LEVEL_SQL_OPCODE NUMBER SQL_PLAN_HASH_VALUE NUMBER SQL_PLAN_LINE_ID NUMBER SQL_PLAN_OPERATION VARCHAR2(30) SQL_PLAN_OPTIONS VARCHAR2(30) SQL_EXEC_ID NUMBER SQL_EXEC_START DATE PLSQL_ENTRY_OBJECT_ID NUMBER PLSQL_ENTRY_SUBPROGRAM_ID NUMBER PLSQL_OBJECT_ID NUMBER PLSQL_SUBPROGRAM_ID NUMBER QC_INSTANCE_ID NUMBER QC_SESSION_ID NUMBER QC_SESSION_SERIAL# NUMBER EVENT VARCHAR2(64) EVENT_ID NUMBER EVENT# NUMBER SEQ# NUMBER P1TEXT VARCHAR2(64) P1 NUMBER P2TEXT VARCHAR2(64) P2 NUMBER P3TEXT VARCHAR2(64) P3 NUMBER WAIT_CLASS VARCHAR2(64) WAIT_CLASS_ID NUMBER WAIT_TIME NUMBER SESSION_STATE VARCHAR2(7) TIME_WAITED NUMBER BLOCKING_SESSION_STATUS VARCHAR2(11) BLOCKING_SESSION NUMBER BLOCKING_SESSION_SERIAL# NUMBER CURRENT_OBJ# NUMBER CURRENT_FILE# NUMBER CURRENT_BLOCK# NUMBER CURRENT_ROW# NUMBER CONSUMER_GROUP_ID NUMBER XID RAW(8) REMOTE_INSTANCE# NUMBER IN_CONNECTION_MGMT VARCHAR2(1) IN_PARSE VARCHAR2(1) IN_HARD_PARSE VARCHAR2(1) IN_SQL_EXECUTION VARCHAR2(1) IN_PLSQL_EXECUTION VARCHAR2(1) IN_PLSQL_RPC VARCHAR2(1) IN_PLSQL_COMPILATION VARCHAR2(1) IN_JAVA_EXECUTION VARCHAR2(1) IN_BIND VARCHAR2(1) IN_CURSOR_CLOSE VARCHAR2(1) SERVICE_HASH NUMBER PROGRAM VARCHAR2(48) MODULE VARCHAR2(48) ACTION VARCHAR2(32) CLIENT_ID VARCHAR2(64)
1.3.生成ASH报表
V$ACTIVE_SESSION_HISTORY是生成ASH报表的来源,可以通过OEM来生成report,也可以通过Oracle新提供的一个脚本来完成这个工作,这个脚本是:$ORACLE_HOME/rdbms/admin/ashrpt.sql
1.4.查詢用戶在最近1小時內等待了多长时间
SELECT s.sid, s.username, SUM(h.wait_time + h.time_waited) "total wait time" FROM v$active_session_history h, v$session s, v$event_name e WHERE h.sample_time BETWEEN sysdate - 1 / 24 AND sysdate AND h.session_id = s.sid group by s.sid, s.username;
1.5.查詢用戶在最近1小時內执行SQL等待了多长时间
SELECT h.user_id, u.username, sql.sql_text, SUM(h.wait_time + h.time_waited) "total wait time" FROM v$active_session_history h, v$sqlarea sql, dba_users u, v$event_name e WHERE h.sample_time BETWEEN sysdate - 1 / 24 AND sysdate AND h.sql_id = sql.sql_id AND h.user_id = u.user_id group by h.user_id, u.username, sql.sql_text
1.6.查詢在最近1小時內引起最多等待时间的資料庫物件
SELECT o.owner, o.object_name, o.object_type, SUM(h.wait_time + h.time_waited) "total wait time" FROM v$active_session_history h, dba_objects o, v$event_name e WHERE h.sample_time BETWEEN sysdate - 1 / 24 AND sysdate AND h.current_obj# = o.object_id AND e.event_id = h.event_id group by o.owner, o.object_name, o.object_type
2.Oracle Session Tracing
2.1.建立用户登陆触发器设置客户端标识符
CREATE OR REPLACE TRIGGER LOGON_TRIGGER AFTER LOGON ON DATABASE DECLARE v_user_identifier varchar2(64); BEGIN SELECT SYS_CONTEXT('USERENV', 'OS_USER') || ':' || SYS_CONTEXT('USERENV', 'IP_ADDRESS') INTO v_user_identifier FROM dual; DBMS_SESSION.SET_IDENTIFIER(v_user_identifier); END; /
2.2.查詢會話
SELECT SID, CLIENT_IDENTIFIER, SERVICE_NAME, ACTION, MODULE FROM V$SESSION; SID CLIENT_IDENTIFIER SERVICE_NAME ACTION MODULE --- --------------------------- ------------ ---------------- -------------------- 150 Administrator:172.18.17.181 orcl PlSqlDev.exe 143 Administrator:172.18.17.181 orcl SQL Window - New PL/SQL Developer 142 Administrator:172.18.17.181 orcl Main session PL/SQL Developer
2.3.事件的等待時間
select session_id, client_id, event, sum(wait_time + time_waited) ttl_wait_time from v$active_session_history active_session_history where sample_time between sysdate - 60 / 2880 and sysdate group by session_id, client_id, event order by 2; SESSION_ID CLIENT_ID EVENT TTL_WAIT_TIME ---------- --------------------------- ----------------------- ------------- 150 Administrator:172.18.17.181 36493 150 Administrator:172.18.17.181 db file sequential read 8632 142 Administrator:172.18.17.181 7372
2.4.總的等待時間
select client_id, event, sum(wait_time + time_waited) ttl_wait_time from v$active_session_history active_session_history where sample_time between sysdate - 60 / 2880 and sysdate group by client_id, event order by 1; CLIENT_ID EVENT TTL_WAIT_TIME --------------------------- ----------------------- ------------- Administrator:172.18.17.181 db file sequential read 8632 Administrator:172.18.17.181 3865
2.5.查看客户端标识符
SQL> SELECT SYS_CONTEXT('USERENV', 'CLIENT_IDENTIFIER') CLIENT_IDENTIFIER 2 FROM DUAL; CLIENT_IDENTIFIER ----------------------------- Administrator:172.18.17.181
2.6.清除客户端标识符
DBMS_SESSION.CLEAR_IDENTIFIER
发表评论
-
用函数unistr将Oracle数据库中的Unicode转换为中文
2016-07-19 11:51 7930例子: DECLARE V_EXT_DES V ... -
ORACLE APPLICATION EXPRESS 5.0 升级
2016-05-12 11:43 583Oracle11GR2 XE 缺省是安装了oracle ap ... -
Oracle ACL(Access Control List)
2016-05-12 11:36 895在oralce 11g中假如你想获取server的ip或者h ... -
了解systemstate dump
2016-04-26 14:09 492当数据库出现严重的性能问题或者hang了的时候,我们非常需要 ... -
通过ORACLE的UTL_HTTP工具包发送包含POST参数的请求
2016-03-18 16:25 5158DECLARE req utl_http. ... -
Shell: extract more from listener.log(分析监听日志)
2016-03-16 14:57 1156统计一天内每小时的session请求数 # fgrep ... -
ORA-01031: insufficient privileges 问题解决笔记
2016-02-01 15:53 1190A) File $Oracle_HOME/network/a ... -
listener.log中报Warning: Subscription For Node Down Event Still Pending问题的解决方法
2016-01-07 16:34 1638一套Oracle 10.2.0.1 for aix的数据库环 ... -
Oracle触发器和MySQL触发器之间的区别
2015-11-19 12:55 675Oracle触发器格式: CREATE [OR RE ... -
查询正在执行的存储过程
2015-11-13 09:27 20551、找正在执行的PROCEDURE的 sid ,serial# ... -
undo表空间损坏的处理过程
2015-10-14 13:49 1222磁碟陣列故障,分區/rman上包括undo和archivel ... -
登录oracle资料库时很久无反应的问题处理一例
2015-10-11 10:56 999原因是系统存在僵死的进程,促使session处于激活状态.首 ... -
TNS-12560问题解决
2015-10-01 19:52 620tnsping远程主机实例出现TNS-12560: TNS ... -
查看undo中sql语句的占用情况
2015-08-06 17:18 1775查看undo中sql语句的占用情况 select * ... -
Install Open System Architect And ODBC Instant Client
2015-05-21 14:03 756How to Install Open System Arc ... -
恢复oracle中用pl sql误删除drop掉的表
2015-04-03 16:12 558查看回收站中表 select object_name,or ... -
在Oracle Linux 6.6上安装Oracle 10gR2
2015-01-15 15:36 2688查看硬體配置 # df -h Filesystem ... -
kill
2015-01-03 11:36 461--根据某一对象查询进程 col owner fo ... -
Oracle 数据库Storage存储迁移笔记
2014-12-27 11:08 9901.确认数据文件、控制文件、临时文件、日志文件 位置 / ... -
異地備份資料庫的開啟步驟
2014-11-19 14:03 491使用EMC設備執行異地備份, 資料庫的複製是開啟的狀態下, ...
相关推荐
##### 1.2 ASH (Active Session History) ASH是Oracle提供的一种实时会话监控机制,它记录了数据库中的所有活跃会话的详细信息,如执行的SQL语句、等待时间、CPU使用率等。通过对ASH数据的分析,可以深入了解数据库...
Oracle AWR(Automatic Workload Repository,自动工作负载存储库)和ASH(Active Session History,活动会话历史)是Oracle数据库中用于性能分析和诊断的重要工具。它们为DBA提供了宝贵的性能数据,帮助优化数据库...
Oracle的Active Session History(ASH)报告是性能分析的重要工具,尤其在Oracle 11g数据库环境中。ASH报告提供了对数据库实例中活动会话的详细历史记录,帮助DBA(数据库管理员)快速定位性能问题,优化数据库操作...
Oracle报表生成器是一款专为Oracle数据库管理员设计的实用工具,它能够自动收集并分析数据库性能数据,生成AWR(Automatic Workload Repository)和ASH(Active Session History)等关键报告。这些报告对于理解...
Oracle 10g用ASH生成性能报告 Oracle 10g用ASH生成性能报告
@ash_total.sql 第一个参数:几个小时之前开始的,即开始时间。 第二个参数:收集多久的ash,即收集多长时间。 第三个参数:按多少分钟分类展示。
Oracle ASH(Active Session History)是Oracle数据库性能分析的关键组件,尤其在10g版本之后引入,用于收集关于数据库会话活动的详细信息。然而,它通常只在Oracle Enterprise Edition中提供,且需要额外的许可证。...
总之,ASH和AWR作为Oracle 10g的重要特性,为DBA提供了前所未有的性能监控和调优能力,极大地提升了数据库管理的效率和效果。通过对这两个工具的深入了解和熟练运用,DBA能够更好地应对日益复杂的数据库环境,保障...
Oracle 授权审计表 Truncate 权限 Oracle 数据库中的授权审计表是指系统自动生成的审计表,用于记录数据库中各种...这些语句可以用于实现 Oracle 数据库中的授权审计表 Truncate 权限,提高数据库的安全性和可靠性。
Oracle模拟ASH___下载.zip
简单的Oracle ASH查看器 安装 克隆存储库 npm install && npm --prefix ./client install ./client 如果未安装Oracle客户端:从下载Instant Client Basic或Basic Light软件包并解压缩 设置LD_LIBRARY_PATH环境变量...
支持的数据库:Oracle,PostgreSQL目录快速开始 为您的数据库下载JDBC驱动程序( , ) 解压缩二进制存档并运行ASH-Viewer.jar 打开连接对话框,并用数据填充它们(Oracle数据库的URL: jdbc:oracle:thin:@host...
ASH.SESSION_TYPE) SESSION_INFO, COUNT(*) COUNTS, ROUND(COUNT(*) / SUM(COUNT(*)) OVER (), 2) PCTLOAD, DENSE_RANK() OVER (ORDER BY COUNT(*) DESC) RANK_ORDER FROM GV$ACTIVE_SESSION_HISTORY ASH ...
此外,了解数据库的性能监控工具,如V$视图、AWR(Automatic Workload Repository)和ASH(Active Session History)报告。 5. **安全性**:设置用户权限,理解角色和权限的概念,学习如何创建和管理用户,以及如何...
二、《Oracle数据库SQL执行计划的取得和解析》PPT(附SQL文件) 三、Oracle 常用脚本 2pc_clean.txt ash_sql_line_id.txt ash_top_sql_event.txt ash_used awr_db_time.txt awr_event_histogram.txt awr_metric_...
Oracle提供了一系列内置的跟踪工具,如TKPROF、SQL Trace、10046事件、Automatic Workload Repository (AWR) 和 ASH (Active Session History) 等。 1. **TKPROF**:这是一个早期的Oracle跟踪分析工具,用于格式化...
另外,了解Oracle的自动性能诊断工具,如ADDM(Automatic Database Diagnostic Monitor)和ASH(Active Session History),有助于快速定位性能问题。 Oracle的安全性管理是另一个重要主题。你需要理解用户权限、...