- 浏览: 686600 次
- 性别:
- 来自: 中山
文章分类
最新评论
-
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.創建PACKAGE:
CREATE OR REPLACE PACKAGE statspack_admin AS PROCEDURE purge_older_than_days(days IN INTEGER, area_size IN INTEGER DEFAULT NULL); /* -- submit a job to run every day at 3am deleting snaps older than 30 days -- specifying 50Mb for PGA. DECLARE j BINARY_INTEGER; BEGIN DBMS_JOB.SUBMIT(j, 'statspack_admin.purge_older_than_days(30, 52428800);', TRUNC(SYSDATE) (3/24), 'TRUNC(SYSDATE) 1 (3/24)' ); COMMIT; END; */ PROCEDURE purge(lo_snap IN NUMBER, hi_snap IN NUMBER, area_size IN INTEGER DEFAULT NULL); PROCEDURE move_tablespace(tablespace_name IN VARCHAR2, window_in_hours IN NUMBER); END statspack_admin; / CREATE OR REPLACE PACKAGE BODY statspack_admin AS on_9i BOOLEAN := FALSE; dbversion VARCHAR2(512); dbcompat VARCHAR2(512); PROCEDURE purge(lo_snap IN NUMBER, hi_snap IN NUMBER, area_size IN INTEGER DEFAULT NULL) IS dbid v$database.dbid%TYPE; inst_num v$instance.instance_number%TYPE; inst_name v$instance.instance_name%TYPE; db_name v$database.name%TYPE; btime DATE; etime DATE; BEGIN SELECT d.dbid AS dbid, i.instance_number AS inst_num, i.instance_name AS inst_name, d.name AS db_name INTO dbid, inst_num, inst_name, db_name FROM v$database d, v$instance i; select snap_time into btime from stats$snapshot b where b.snap_id = (SELECT MIN(x.snap_id) FROM stats$snapshot x WHERE x.snap_id >= lo_snap) and b.dbid = dbid and b.instance_number = inst_num; select snap_time into etime from stats$snapshot e where e.snap_id = (SELECT MAX(x.snap_id) FROM stats$snapshot x WHERE x.snap_id <= hi_snap) and e.dbid = dbid and e.instance_number = inst_num; IF on_9i AND area_size IS NOT NULL THEN EXECUTE IMMEDIATE 'alter session set workarea_size_policy=MANUAL'; EXECUTE IMMEDIATE 'alter session set hash_area_size=' || TO_CHAR(area_size); EXECUTE IMMEDIATE 'alter session set sort_area_size=' || TO_CHAR(area_size); ELSIF area_size IS NOT NULL THEN EXECUTE IMMEDIATE 'alter session set hash_area_size=' || TO_CHAR(area_size); EXECUTE IMMEDIATE 'alter session set sort_area_size=' || TO_CHAR(area_size); END IF; delete from stats$snapshot where instance_number = inst_num and dbid = dbid and snap_id between lo_snap and hi_snap; /*-- Delete any dangling SQLtext -- The following statement deletes any dangling SQL statements which -- are no longer referred to by ANY snapshots. This statment has been -- commented out as it can be very resource intensive. --*/ delete -- index_ffs(st) from stats$sqltext st where (hash_value, text_subset) not in (select -- hash_aj full(ss) no_expand hash_value, text_subset from stats$sql_summary ss where ((snap_id < lo_snap or snap_id > hi_snap) and dbid = dbid and instance_number = inst_num) or (dbid != dbid or instance_number != inst_num)); -- Adding an optional STATS$SEG_STAT_OBJ delete statement delete -- index_ffs(sso) from stats$seg_stat_obj sso where (dbid, dataobj#, obj#) not in (select -- hash_aj full(ss) no_expand dbid, dataobj#, obj# from stats$seg_stat ss where ((snap_id < lo_snap or snap_id > hi_snap) and dbid = dbid and instance_number = inst_num) or (dbid != dbid or instance_number != inst_num)); /* Delete any undostat rows that cover the snap times */ delete from stats$undostat us where dbid = dbid and instance_number = inst_num and begin_time < btime and end_time > etime; /* Delete any dangling database nstance rows for that startup time */ delete from stats$database_instance di where instance_number = inst_num and dbid = dbid and not exists (select 1 from stats$snapshot s where s.dbid = di.dbid and s.instance_number = di.instance_number and s.startup_time = di.startup_time); /* Delete any dangling statspack parameter rows for the database instance */ delete from stats$statspack_parameter sp where instance_number = inst_num and dbid = dbid and not exists (select 1 from stats$snapshot s where s.dbid = sp.dbid and s.instance_number = sp.instance_number); COMMIT; END purge; /* procedure to move tablespaces */ PROCEDURE move_tablespace(tablespace_name IN VARCHAR2, window_in_hours IN NUMBER) IS ts DATE := SYSDATE; te DATE := ts(window_in_hours / 24); BEGIN -- do the tables that haven't been rebuilt recently first FOR t IN (SELECT object_name AS table_name FROM user_objects WHERE object_type = 'TABLE' ORDER BY last_ddl_time ASC) LOOP EXECUTE IMMEDIATE 'ALTER TABLE ' || t.table_name || ' MOVE TABLESPACE ' || tablespace_name; -- now immediately rebuild the indexes -- I could use dbms_job to do this -- asynchronously, maybe in a future revision ? -- not using ONLINE because moving -- tables cannot be done ONLINE ! -- maybe use dbms_redef in future version? FOR i IN (SELECT index_name FROM user_indexes WHERE table_name = t.table_name) LOOP EXECUTE IMMEDIATE 'ALTER INDEX ' || i.index_name || ' REBUILD TABLESPACE ' || tablespace_name; END LOOP; IF SYSDATE > te THEN EXIT; END IF; END LOOP; EXCEPTION WHEN OTHERS THEN IF dbms_job.is_jobq THEN /* remove the job preventing nasty reruns outside the window but generating a trace file for the DBA */ DBMS_JOB.REMOVE(NVL(SYS_CONTEXT('USERENV', 'BG_JOB_ID'), SYS_CONTEXT('USERENV', 'FG_JOB_ID'))); COMMIT; END IF; RAISE; END move_tablespace; /* purge records older than X days */ PROCEDURE purge_older_than_days(days IN INTEGER, area_size IN INTEGER DEFAULT NULL) IS losnap stats$snapshot.SNAP_ID%TYPE; hisnap stats$snapshot.SNAP_ID%TYPE; BEGIN SELECT s.snap_id INTO hisnap FROM stats$snapshot s WHERE s.snap_id = (SELECT MAX(s.snap_id) FROM stats$snapshot s WHERE s.snap_time < TRUNC(SYSDATE) - days); SELECT s.snap_id INTO losnap FROM stats$snapshot s WHERE s.snap_id = (SELECT MIN(s.snap_id) FROM stats$snapshot s WHERE s.snap_id <= hisnap); -- in case the highest snap is the only one to delete --DBMS_OUTPUT.PUT_LINE('Lo Snap: '||TO_CHAR(losnap)); --DBMS_OUTPUT.PUT_LINE('Hi Snap: '||TO_CHAR(hisnap)); purge(losnap, hisnap, area_size); EXCEPTION WHEN NO_DATA_FOUND THEN NULL; -- select into hisnap returned no rows, --which means no snaps are older than days specified END purge_older_than_days; BEGIN SYS.DBMS_UTILITY.DB_VERSION(dbversion, dbcompat); IF TO_NUMBER(REPLACE(dbversion, '.')) >= 90000 THEN -- we are on a 9i DB on_9i := TRUE; ELSE on_9i := FALSE; END IF; EXCEPTION WHEN OTHERS THEN on_9i := FALSE; END statspack_admin; /
2.排程:
DECLARE j BINARY_INTEGER; BEGIN DBMS_JOB.SUBMIT(j, 'statspack_admin.purge_older_than_days (30, 52428800);', TRUNC(SYSDATE) (3 / 24), 'TRUNC(SYSDATE) 1 (3/24)'); COMMIT; END;
发表评论
-
用函数unistr将Oracle数据库中的Unicode转换为中文
2016-07-19 11:51 7950例子: DECLARE V_EXT_DES V ... -
ORACLE APPLICATION EXPRESS 5.0 升级
2016-05-12 11:43 599Oracle11GR2 XE 缺省是安装了oracle ap ... -
Oracle ACL(Access Control List)
2016-05-12 11:36 905在oralce 11g中假如你想获取server的ip或者h ... -
了解systemstate dump
2016-04-26 14:09 503当数据库出现严重的性能问题或者hang了的时候,我们非常需要 ... -
通过ORACLE的UTL_HTTP工具包发送包含POST参数的请求
2016-03-18 16:25 5177DECLARE req utl_http. ... -
Shell: extract more from listener.log(分析监听日志)
2016-03-16 14:57 1170统计一天内每小时的session请求数 # fgrep ... -
ORA-01031: insufficient privileges 问题解决笔记
2016-02-01 15:53 1202A) File $Oracle_HOME/network/a ... -
listener.log中报Warning: Subscription For Node Down Event Still Pending问题的解决方法
2016-01-07 16:34 1645一套Oracle 10.2.0.1 for aix的数据库环 ... -
Oracle触发器和MySQL触发器之间的区别
2015-11-19 12:55 691Oracle触发器格式: CREATE [OR RE ... -
查询正在执行的存储过程
2015-11-13 09:27 20691、找正在执行的PROCEDURE的 sid ,serial# ... -
undo表空间损坏的处理过程
2015-10-14 13:49 1231磁碟陣列故障,分區/rman上包括undo和archivel ... -
登录oracle资料库时很久无反应的问题处理一例
2015-10-11 10:56 1009原因是系统存在僵死的进程,促使session处于激活状态.首 ... -
TNS-12560问题解决
2015-10-01 19:52 629tnsping远程主机实例出现TNS-12560: TNS ... -
查看undo中sql语句的占用情况
2015-08-06 17:18 1794查看undo中sql语句的占用情况 select * ... -
Install Open System Architect And ODBC Instant Client
2015-05-21 14:03 764How to Install Open System Arc ... -
恢复oracle中用pl sql误删除drop掉的表
2015-04-03 16:12 569查看回收站中表 select object_name,or ... -
在Oracle Linux 6.6上安装Oracle 10gR2
2015-01-15 15:36 2706查看硬體配置 # df -h Filesystem ... -
kill
2015-01-03 11:36 475--根据某一对象查询进程 col owner fo ... -
Oracle 数据库Storage存储迁移笔记
2014-12-27 11:08 10001.确认数据文件、控制文件、临时文件、日志文件 位置 / ... -
異地備份資料庫的開啟步驟
2014-11-19 14:03 500使用EMC設備執行異地備份, 資料庫的複製是開啟的狀態下, ...
相关推荐
1. 定期清理旧的Statspack数据以保持数据库整洁,避免不必要的空间占用。 2. 对比基线快照和分析快照,能更直观地看出性能改进或恶化。 3. 结合AWR(Automatic Workload Repository)或其他性能监控工具,可以获得更...
5. **定期收集数据**:你可以通过调度任务(如Oracle的DBMS_JOB或DBMS_SCHEDULER)定期执行Statspack的`GATHER_SCHEMA_STATISTICS`或`GATHER_DATABASE_STATISTICS`过程。 6. **生成报告**:一旦数据被收集,就可以...
Statspack设计时考虑到了保持旧脚本的简便性,同时提供了更多的功能。其中一个显著的区别在于数据收集方式的不同。当使用Statspack时: - **数据持久化**:Statspack不会在每次运行后删除数据表,这样用户可以在...
- **定期检查性能报告**:定期查看Statspack生成的性能报告,及时发现并解决问题。 - **合理设置采样间隔**:根据实际应用场景调整自动采样间隔,避免过度采样导致额外负载。 - **充分利用报告自定义功能**:利用...
- **定期清理**: 由于Statspack会积累大量的历史数据,定期执行`DBMS_STATS.DELETE_SNAPSHOT`删除不再需要的快照,以保持数据库的整洁。 - **合理采样**: 设置合适的采样频率,过于频繁可能会增加数据库负担,而采样...
3. **快照机制**:Statspack通过定期创建快照来捕捉数据库的实时状态,这些快照提供了数据库性能的瞬间快照,便于比较不同时间点的性能差异。 三、Statspack的基本信息 Statspack表格包含了丰富的信息,如: 1. *...
Statspack 安装 Statspack 是 Oracle 提供的一个性能分析工具,用于收集和分析数据库性能数据。下面是 Statspack 安装的详细步骤和相应的知识点。 一、准备 1. 检查部分参数值:在安装 Statspack 之前,需要检查...
5. **清理与维护**:定期清理不再需要的Statspack快照,以保持数据库空间的整洁。使用`DBMS_STATS.PURGE_STATS`命令可以删除旧的统计信息。 在实际应用中,配合Oracle的其他性能分析工具,如AWR(Automatic ...
STATSPACK是Oracle数据库系统中的一种性能分析工具,主要用于收集和分析数据库的运行统计信息,帮助DBA(数据库管理员)诊断性能问题、优化查询效率以及规划数据库资源的使用。STATSPACK报告是其核心功能之一,它...
1. **性能数据收集**:STATSPACK可以定期或按需收集数据库的各种运行时统计信息,如SQL执行统计、等待事件、系统活动等,这些数据对于分析性能问题至关重要。 2. **快照对比**:通过创建和比较不同时间点的快照,...
statspack完整使用指南: 包括: statspack的安装; statspack的自动数据收集; statspack的门限调整; statspack的报表自动产生与邮件发送(aix环境下); statspack的报表详细解析.
10. **最佳实践**:使用STATSPACK时,应遵循一些最佳实践,例如定期清理旧的统计信息,避免在业务高峰期收集统计,以减少对系统的影响。 通过学习和掌握Oracle9i STATSPACK,数据库管理员能够更好地理解和优化他们...
Oracle StatsPack 是Oracle数据库系统中一个强大的性能分析工具,它为DBA提供了详细的数据库性能统计数据,帮助诊断和优化系统的...在实际工作中,定期生成和分析StatsPack报告是保持数据库高效运行的关键步骤之一。
- **DB_RECYCLE_CACHE_SIZE**:用于存储不经常访问的数据块,当缓存紧张时会被清除。 - **DB_BLOCK_SIZE**:数据库块的大小,影响数据存储和读取效率。 - **SHARED_POOL_SIZE**:共享池的大小,影响SQL语句的解析和...
Oracle 9i Statspack 是一个强大的性能分析工具,它提供了对数据库性能的深入洞察,帮助DBA们诊断和优化数据库的运行效率。Statspack 的安装和使用是数据库管理中的重要环节,尤其对于监控和问题排查至关重要。以下...
Oracle中的Statspack是一种强大的性能分析工具,尤其在大型企业如电信运营商的BSS(Business Support Systems)系统中,它在BOSS(Business Operation Support Systems)开发中扮演着至关重要的角色。Statspack是...
### 细化解析Oracle 10g Statspack #### 引言 随着Oracle数据库技术的不断进步和发展,Statspack作为一款历史悠久的性能监控工具,在Oracle 10g中仍然扮演着重要的角色。尽管Oracle 10g引入了诸如自动工作负荷存储...
Oracle STATSPACK是一种强大的性能分析工具,主要用于诊断和优化Oracle数据库的运行效率。它由Oracle在9i版本中引入,后来在10g及更高版本中被Automatic Workload Repository (AWR)所取代,但即便如此,STATSPACK...
- 定期采样:设置定时任务,定期获取新的快照,记录系统在不同负载下的运行状态。 - 分析差异:通过对比快照数据,找出性能下降的时间段,以及可能的问题领域。 3. **性能指标解读**: - CPU使用率:过高可能...