statspack的使用

1.STATSPACK通过获取数据库当前状态的快照来进行工作。大部分的情况,我们会规划一个小时为单位来收集数据的JOB,并在需要的时候请求附加快照。当我们获取快照时,
STATSPACK会从SGA内部的RAM内存结构中采样,并记录到相应的STATSPACK表中,注意的是,大多数情况下,SGA中的V$视图与相应的的STATSPACK表之间存在直接的对应关系,
在理解STATSPACK工具的时候,很关键的是要明白通过STATSPACK快照收集的信息是累计值,从V$视图中收集到起始时间的数据库信息,然后进行持续累加,直到实例中止,
我想,这也许就应该是STATSPACK不能产生两张跨越SHUTDOWN的快照的报告的原因吧!

2.alter system set job_queue_processes=6;
正在运行的Job不受影响,因为它在运行前就获得了ora_jXXX进程,修改后的参数只对修改完成之后,要执行的Job有影响,因为之后的Job在执行前要获得Job的调度进程.
alter system set timed_statistics=true;
当且仅当TIMED_STATISTICS 被设置为TRUE, waits 事务才会被纪录时间

3.@D:\oracle\product\10.2.0\db_1\RDBMS\ADMIN\spcreate.sql
Choose the PERFSTAT user's password
-----------------------------------
Not specifying a password will result in the installation FAILING

输入 perfstat_password 的值: perfstat
输入 default_tablespace 的值: test1
输入 temporary_tablespace 的值: test_temp

随后,程序包自动运行,
。。。。。。。。。。。。。。
... Creating PERFSTAT user
... Installing required packages
... Creating views
... Granting privileges
。。。。。。。。。。。。。。

直至出现:

NOTE:
SPCPKG complete. Please check spcpkg.lis for any errors.

4.手动执行STATSPACK收集统计信息
注意看你的当前用户,已经更改成perfstat用户了。
[PERFSTAT@orcl] SQL>show user;
USER 为 "PERFSTAT"
[PERFSTAT@orcl] SQL>execute statspack.snap;

PL/SQL 过程已成功完成。

5.生成STATSPACK调整报告

[PERFSTAT@orcl] SQL>@F:\oracle\product\10.2.0\db_1\RDBMS\admin\spreport.sql;

会出来一大串信息,比较重要的信息:

6.自动执行STATSPACK收集统计信息

[PERFSTAT@orcl] SQL>@F:\oracle\product\10.2.0\db_1\RDBMS\ADMIN\spauto.sql;

PL/SQL 过程已成功完成。

以下是spauto.sql的主要内容:

variable jobno number;
variable instno number;
begin
select instance_number into :instno from v$instance;
dbms_job.submit(:jobno, 'statspack.snap;', trunc(sysdate+1/24,'HH'), 'trunc(SYSDATE+1/24,''HH'')', TRUE, :instno);
commit;
end;


可以通过修改这个值设置采集时间

1/24 HH 每小时一次
1/48 MI 每半小时一次
1/144 MI 每十分钟一次
1/288 MI 每五分钟一次

7. 移除自动执行STATSPACK收集

PERFSTAT@orcl] SQL>select job,log_user,priv_user,last_date,next_date,interval from user_jobs;
       JOB LOG_USER
---------- ------------------------------------------------------------
PRIV_USER                                                    LAST_DATE
------------------------------------------------------------ --------------
NEXT_DATE
--------------
INTERVAL
------------------------------------------------------------------------------
        21 PERFSTAT
PERFSTAT
22-1月 -10
trunc(SYSDATE+1/24,'HH')

[PERFSTAT@orcl] SQL>execute dbms_job.remove('21'); 移出任务21

PL/SQL 过程已成功完成。

8.删除统计资料(statspack相关的所有系统表)

SQL>select max(snap_id) from stats$snapshot;

SQL> @C:\oracle\ora92\rdbms\admin\sptrunc.sql;

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22253646/viewspace-667359/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/22253646/viewspace-667359/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值