暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Statspack之四-测试安装好的Statspack

原创 eygle 2004-06-24
375

运行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 "PERFSTAT.STATSPACK", line 978


ORA-06512: at "PERFSTAT.STATSPACK", line 1612


ORA-06512: at "PERFSTAT.STATSPACK", line 71


ORA-06512: at line 1


 


这是Oracle的一个Bug,Bug号1940915


该Bug自8.1.7.3后修正。


这个问题只会出现在多位的字符集,需要修改spcpkg.sql脚本,$ORACLE_HOME/rdbms/admin/spcpkg.sql,
将"substr" 修改为 "substrb",然后重新运行该脚本。


该脚本错误部分:


 






 


select l_snap_id


, p_dbid


, p_instance_number


, substr(sql_text,1,31)


...........


 


 


substr 会将多位的字符, 当作一个byte.substrb 则会当作多个byte。在收集数据时, statpack 会将 top 10
的 sql 前 31 个字节存入数据表中,若在SQL的前31 个字有中文,就会出现此错误。


 

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论