《Oracle编程艺术》学习笔记(1)-配置环境(二)

2014-11-24 12:35:00 · 作者: · 浏览: 2
CE BINARY_INTEGER IN DEFAULT

FORCE BOOLEAN IN DEFAULT

因此,上面这条语句的意思就是从当前时间的下一个整点之后,每隔1小时执行1次statspack.snap。

可以通过修改spauto.sql来修改间隔。

执行后可用下列语句查看任务运行的时间:

select job, next_date, next_sec from user_jobs where job = :jobno;

应及时移除收集任务,通过下面的语句:

execute dbms_job.remove(:jobno)

删除历史数据

如需删除历史数据,可以用@sptrunc.sql脚本删除所有的数据。也可以通过删除stats$snapshot表来进行,其他表中的数据也会相应的级联删除。

declare

snapid number;

begin

select max(snap_id) into snapid from stats$snapshot;

delete from stats$snapshot where snap_id <= snapid;

end;

/

收集数据选项

Statspack有两种类型的收集选项

·级别(level):控制收集数据的类型

共有三种快照级别,默认值是5。

a.level 0: 一般性能统计。包括等待事件、系统事件、系统统计、回滚段统计、行缓存、SGA、会话、锁、缓冲池统计等等。

b.level 5: 增加SQL语句。除了包括level0的所有内容,还包括SQL语句的收集,收集结果记录在stats$sql_summary中。

c.level 10: 增加子锁存统计。包括level5的所有内容。并且还会将附加的子锁存存入stats$lathc_children中。在使用这个级别时需要慎重,建议在Oracle support的指导下进行。

可以通过以下语句修改缺省的级别设置,如果只是改变本次收集level,则不需指定i_modify_parameter参数。

execute statspack.snap(i_snap_level=>0,i_modify_parameter=>'true');

·门限(threshold):设置收集的数据的阈值。

快照门限只应用于stats$sql_summary表中获取的SQL语句。有以下门限值:

a. executions_th这是SQL语句执行的数量(默认值是100)

b. disk_reads_tn这是SQL语句执行的磁盘读入数量(默认值是1000)

c. parse_calls_th这是SQL语句执行的解析调用的数量(默认值是1000)

d. buffer_gets_th这是SQL语句执行的缓冲区获取的数量(默认值是10000)

任何一个门限值超过以上参数的SQL就会被收集并产生一条记录。

通过调用statspack.modify_statspack_parameter函数可以改变门限的默认值。例如:

execute statspack.modify_statspack_parameter(i_buffer_gets_th=>100000,i_disk_reads_th=>100000);

摘自:NowOrNever