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/