Oracle性能分析的一些总结

2026/1/26 20:23:33

SQL> @spdrop

Dropping old versions (if any)

Synonym dropped.

Sequence dropped.

Synonym dropped.

Table dropped.

Synonym dropped.

View dropped. …… NOTE:

SPDUSR complete. Please check spdusr.lis for any errors.

(以上的安装过程描述是在 HP 11.11 + Oracle 8.1.7 平台上得到的)

2.1.2 测试statspack

运行statspack.snap 可以产生系统快照,运行两次,然后执行spreport.sql 就可以生成一个基于两个时间点的报告。

如果一切正常,说明安装成功。

SQL>execute statspack.snap

PL/SQL procedure successfully completed. SQL>execute statspack.snap

PL/SQL procedure successfully completed. SQL>@spreport.sql

可是有可能你会得到以下错误:

SQL> exec statspack.snap; BEGIN statspack.snap; END; *

ERROR at line 1:

ORA-01401: inserted value too large for column ORA-06512: at \ORA-06512: at \ORA-06512: at \ORA-06512: at line 1

这是Oracle 的一个Bug,Bug 号1940915。 该Bug 自8.1.7.3 后修正。

这个问题只会出现在多位的字符集, 需要修改spcpkg.sql 脚本,

$ORACLE_HOME/rdbms/admin/spcpkg.sql,将\修改为 \,然后重新运行该脚本。 该脚本错误部分: select l_snap_id , p_dbid

, p_instance_number , substr(sql_text,1,31) ...........

substr 会将多位的字符, 当作一个byte.substrb 则会当作多个byte。在收集数据时, statpack 会将 top10 的 sql 前 31 个字节 存入数据表中,若在SQL 的前31 个字有中文,就会出现此错误。 注意:运行 spcpkg.sql 也需要以 internal 用户登录 sqlplus

2.1.3 生成statspack报告

调用spreport.sql 可以生成分析报告:

当调用spreprot.sql 时,系统首先会查询快照列表,然后要求你选择生成报告的开始快照ID(begin_snap)和结束快照ID(end_snap),生成一个报告. 为了生成一个report,我们至少需要两次采样:

SQL> @spreport

DB Id DB Name Inst Num Instance ----------- ------------ -------- ------------ 2749170756 RES 1 res

Completed Snapshots

Snap Snap

Instance DB Name Id Snap Started Level Comment ------------ ------------ ----- ----------------- ----- ---------------------- res RES 1 26 Jul 2003 16:36 5 2 26 Jul 2003 16:37 5 3 26 Jul 2003 17:03 5

Specify the Begin and End Snapshot Ids

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Enter value for begin_snap:2 Begin Snapshot Id specified: 2

Enter value for end_snap: 3 End Snapshot Id specified: 3

Specify the Report Name

~~~~~~~~~~~~~~~~~~~~~~~

The default report file name is sp_2_3. To use this name, press to continue, otherwise enter an alternative. Enter value for report_name: rep0726.txt

……

End of Report

在运行 spreport.sql 生成 statspack 报告的过程中,会有三个地方提示用户输入: 1、 开始快照ID; 2、 结束快照ID;

3、 输出报告文件的文件名,缺省的文件名是sp__

上面输入的开始快照ID是2,开始快照ID是3,输出报告文件的文件名是rep0726.txt

成功运行一次 statspack.snap 就会产生一个 snapshot ,在生成 statspack 报告的时候就可以看到这个 snap id 和 snap 运行的时间。运行 statspack.snap ,就是上面所说的采样,statspack 报告是分析两个采样点之间各种情况。

2.1.4 删除历史快照数据

前面讲过,成功运行一次 statspack.snap 就会产生一个 snapshot ,这个 snapshot 的基本信息是存放在 PERFSTAT.stats$snapshot 表中的,生成 statspack报告时会查询该表的数据,供用户选择准备分析的 snapshot 。如果运行 statspack.snap 次数多了以后,该表的数据也会增加,历史数据会影响正常运行的效果,因此需要定时清理一下历史快照数据。

删除stats$snapshot 数据表中的相应数据,其他表中的数据会相应的级连删除:

SQL> select max(snap_id) from stats$snapshot; MAX(SNAP_ID) ------------ 166

SQL> delete from stats$snapshot where snap_id < = 166; 143 rows deleted

你可以更改snap_id 的范围以保留你需要的数据。 在以上删除过程中,你可以看到所有相关的表都被锁定。 SQL> select a.object_id,a.oracle_username ,b.object_name


Oracle性能分析的一些总结.doc 将本文的Word文档下载到电脑
搜索更多关于: Oracle性能分析的一些总结 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219