教你轻松掌握statspack报表的使用方法

教你轻松掌握statspack报表的使用方法,第1张

教你轻松掌握statspack报表的使用方法,第2张

使用“statspack”的一些技巧:

如何修改statspack脚本生成自定义报表?

通常情况下,statspack报表可以满足大部分需求,有时我们需要对生成报表的脚本做一些小的修改,这样生成的报表会更有用。

比如有很多一些SQL,但是在statspack生成的报表中,每条SQL只显示5行,结果一些较长的SQL只能看到一部分;例如,在“顶级事件”部分,标准报告仅显示前5名。事实上,我们可以展示更多的事件。怎么才能修改呢?用编辑工具(linux下的vi)打开($ Oracle _ home/RDBMS/admin/spre pins . SQL)

定义top _ n _ events = 5;//top 5 events
定义top _ n _ sql = 65//top SQL
define top _ n _ seg stat = 5;//top 5 seg stat
define num _ rows _ per _ hash = 5;//每个SQL显示5行

只要看到这个脚本中已经定义了一些常量,我们只需要把它改成我们需要的值就可以了。

定义top _ n _ events = 10//前10个事件
定义top _ n _ sql = 65//top SQL
define top _ n _ seg stat = 10;//top 10 seg stat
define num _ rows _ per _ hash = 10;//每个SQL显示10行

修改后可以看到效果。

2.如何使用statspack的报告确定热表和索引?

如果要使用statspack表来确定热表和索引,则必须修改statspack快照的收集级别。8i中有三个statspack快照级别,默认值为5。

select * from STATS $ level _ DESCRIPTION;
快照级别描述
-

0性能统计:包括回滚段状态、字典缓存、SGA、系统事件、后台事件、会话事件、系统统计、等待统计、锁统计、闩锁统计。

5.增加了收集SQL的信息,包括0级收集的信息。

0增加了收集子锁存的信息,包含了所有低级信息。

9i中有五个statspack快照级别,默认值为5。

select * from STATS $ level _ DESCRIPTION;
快照级别描述
-

0性能统计:包括回滚段状态、字典缓存、SGA、系统事件、后台事件、会话事件、系统统计、等待统计、锁统计、闩锁统计。

5.增加了收集SQL的信息,包括0级收集的信息。

6增强SQL中收集信息的功能(列出资源消耗高的SQL),包含所有底层信息。

7.添加了在段级别收集的统计信息(如段的逻辑读取和物理读取、行锁、ITL和缓冲区忙等待),

并且包括所有低级信息。0增加了收集子锁存的信息,包含了所有低级信息。
如果使用statspack来确定热表和热索引,则需要使用7/10级别来收集快照。

//有了这个设置,以后的收藏级别就是7级了。

//如果这次只想改变集合级别,可以忽略i_modify_parameter参数。

SQL >执行statspack.snap(i_snap_level=>7,I _ modify _ parameter = > true);
SQL >执行statspack . snap(I _ snap _ level = > 7);

修改收藏级别后,大家可以根据自己的需要设置收藏频率。现在,我们只需要注意statspack报告中的“段级统计数据”:

数据库的每个段的前5个逻辑读取:ESAL实例:esal快照:2368-2380
-->结束段逻辑读取阈值:10000
子对象对象。逻辑
所有者表空间对象名称名称类型读取总数百分比
----
网吧TS _网吧代理_卡_类型表115,220,864 18.07
网吧TS _网吧游戏_卡_类型表79,103,600 12.40
网吧TS _网吧代理_任务表57,030,304 8.94
物理
所有者表空间对象名称名称类型读取总数百分比
--
网吧TS _网吧代理_游戏_卡_GM13表76,476 7.36
网吧TS _网吧代理_销售_日志ASL_200500表61,270 5.89
网吧TS _网吧经销商_日志RL_200412表48,950 4.70数据库的每个段的忙等待:ESAL实例:esal快照:2368-2380
-->结束段缓冲区忙等待阈值:100
子对象对象。缓冲区忙
所有者表空间对象名称名称类型等待百分比总计
--
网吧TS _网吧代理_任务表22 36.07
网吧TS _网吧代理_卡_类型表9 14.75
网吧TS _网吧IDX _ RESACC _ upd time INDEX 5 8.20
网吧TS _网吧代理_销售_日志ASL_200501表4 6行锁
所有者表空间对象名称类型等待百分比总计
--
网吧ts _网吧IDX _ APL _ GCT ID 2 APL _ 200501 INDEX 54 24.77
网吧TS _网吧IDX _ RB _ RESELLER _ ID INDEX 41 18.81
网吧TS _网吧IDX _ RL _ RES log _ ID INDEX 38 17.43
网吧TS

在这里,您可以看到逻辑读取/物理读取/缓存繁忙/行锁定的一些合格对象。通过这些对象,可以确定热点表和索引,然后分析如何优化业务,减少对这些表的访问。如果您认为显示前5个段还不够,可以按照第1节中的描述修改top_n_segstat,然后可以显示更多符合条件的对象,然后将这些热表放入keep池中。


3如何用statspack报表确定保留池和默认池的分配?
如果要使用默认池和保留池,需要在9i中分配db_cache_size和db_keep_cache_size参数,但是如何确定它们的大小呢?根据2中显示的一些热表,我们可以计算出将热表放入keep池所需的内存,然后用。

更改表&table_name存储(缓冲池& buffer _ pool);

将确定的热表保存,然后在生成新报告之前收集一段时间:

数据库的缓冲池统计信息:ESAL实例:esal快照:2277-2289
-->标准块大小池D:默认、K: keep、R:recycle
-->其他块大小的默认池:2k、4k、8k、16k、32k
空闲写缓冲区
高速缓存缓冲区的数量物理物理缓冲区完全繁忙
P缓冲区命中百分比获取读取写入等待等待等待
-----
D 128

在确定保留池和默认池的内存需求时,可以根据本节评估保留池和默认池的大小。如果由k标识的缓存命中率相对较小,则意味着保留池不足。如果d显示的缓存命中率相对较小,则意味着默认池分配足够了。如果k为yes,则默认显示为100%。然后我们可以在keep池中放入更多的热量表,经过一段时间的调整,我们相信默认池和keep池可以转移到相对合适的组中。

4.如何用crontab定期生成statspack报表?

看了一段时间的statspack报表,我就懒得每天手动生成报表了。系统如何自动生成报告?

经过测试,crontab可以轻松生成报告,然后通过sendmail直接发送到相关人员的邮箱中。

[Oracle @ www1 SQL]$ more backup/auto _ send _ perf . sh
#!/bin/sh
。~甲骨文/。bash _ profile
/home/Oracle/product/9 . 2 . 0/bin/sqlplus-s AAA/BBB @ CCC
/home/Oracle/SQL/backup/perf . lst 2 > & 1

注意:快照收集在早上8: 00到晚上8: 00之间执行,cron进程在晚上9: 00启动。生成报告的快照也仅限于当天收集的快照。把当天最小的snap_id和snap_id放入两个文件中,在sheel中读出,算出一个报表名。

最终的报告通过“sendmail”发送到相关人员的邮箱,然后你只需要每天晚上收到邮件就可以看到当天的报告。

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » 教你轻松掌握statspack报表的使用方法

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情