数据库

本类阅读TOP10

·SQL语句导入导出大全
·SQL Server日期计算
·SQL语句导入导出大全
·SQL to Excel 的应用
·Oracle中password file的作用及说明
·MS SQLServer OLEDB分布式事务无法启动的一般解决方案
·sqlserver2000数据库置疑的解决方法
·一个比较实用的大数据量分页存储过程
·如何在正运行 SQL Server 7.0 的服务器之间传输登录和密码
·SQL中两台服务器间使用连接服务器

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
Statspack之初体验

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

呵呵,今晚之前从来没有做过Statspack(好像有点丢人)。这几天一个数据库实在被折磨得不行了,明明sga_max_size有1.5G,但是实际看整个实例才用了200+M内存,慢得要死,频繁读写硬盘,偏偏硬盘又不是磁盘阵列,IO狂慢,唉,痛苦啊。于是决定花点时间学下实例优化,今天打印了几页Performance Tuning Guide的文档,读了读关于Statspack的内容,在自己的笔记本上做了试验,其实还是很容易的。
首先运行%ORACLE_HOME%\RDBMS\ADMIN\SPCREATE,期间指定perfstat用户的密码、表空间和临时表空间,一般缺省都无所谓。随后出现一堆成功提示,如果没来得及看也无所谓,可以到你dos窗口(我是Win32平台)的路径下察看.lis文件,那些就是安装跟踪文件。
然后就可以用perfstat/密码来登陆sqlplus了,执行:EXEC STATSPACK.SNAP; 就是一次snapshot了,可以做成定时每隔一段时间运行一次。
察看报告:%ORACLE_HOME%\RDBMS\ADMIN\SPREPORT  运行后提示已做的所有snapshot的ID,然后根据需要选择本次报告的开始ID和结束ID,随后输入文件名就得到了一份.lst文件(这里文档中将后缀名写成了.lis,应该是错了,不过我看的是9i的文档,运行的是10g的数据库,不知道是不是版本问题),可以用文本工具打开察看。
检查SQL:察看报告时可以看到跟踪的SQL,其中就有hash value,把要更详细察看的语句的hash value记录下来,运行%ORACLE_HOME%\RDBMS\ADMIN\SPREPSQL时输入,即可如前得到lst文件,记录了SQL语句的更详细分析。
做多了snapshot,可能需要删除一些历史数据,运行ORACLE_HOME%\RDBMS\ADMIN\SPPURGE就可以了,根据提示选择要删除的ID,而全部删除就ORACLE_HOME%\RDBMS\ADMIN\SPTRUNC,一路回车即可。
最后要注意snapshot的level,这可以通过EXEC STATSPACK.MODIFY_STATSPACK_PARAMETER(i_snap_level=N)来修改,N可以为0,5,6,7,10,缺省为5。
  0  仅提供一般性能统计
  5  增加了对SQL语句总体分析
  6  增加了SQL计划和使用
  7  增加了分段(Segments)级的统计
  10增加了对闩锁(Latches)的分析
其中文档建议对10要慎重,因为代价较高。
因为只是自己玩的系统,所以也没啥可分析的,只是练习了一下Statspack的使用。结果的分析还要学习学习,已经发现Tom的两本书里都有介绍,不过Expert One-on-One Oracle里更详细。


相关文章

相关软件