呵呵,今晚之前从来没有做过statspack(好像有点丢人)。这几天一个数据库实在被折磨得不行了,明明sga_max_size有1.5g,但是实际看整个实例才用了200+m内存,慢得要死,频繁读写硬盘,偏偏硬盘又不是磁盘阵列,io狂慢,唉,痛苦啊。于是决定花点时间学下实例优化,今天打印了几页performance tuning guide的文档,读了读关于statspack的内容,在自己的笔记本上做了试验,其实还是很容易的。
首先运行%oracle_home%\rdbms\admin pcreate,期间指定perfstat用户的密码、表空间和临时表空间,一般缺省都无所谓。随后出现一堆成功提示,如果没来得及看也无所谓,可以到你dos窗口(我是win32平台)的路径下察看.lis文件,那些就是安装跟踪文件。
然后就可以用perfstat/密码来登陆sqlplus了,执行:exec statspack.snap; 就是一次snapshot了,可以做成定时每隔一段时间运行一次。
察看报告:%oracle_home%\rdbms\admin preport 运行后提示已做的所有snapshot的id,然后根据需要选择本次报告的开始id和结束id,随后输入文件名就得到了一份.lst文件(这里文档中将后缀名写成了.lis,应该是错了,不过我看的是9i的文档,运行的是10g的数据库,不知道是不是版本问题),可以用文本工具打开察看。
检查sql:察看报告时可以看到跟踪的sql,其中就有hash value,把要更详细察看的语句的hash value记录下来,运行%oracle_home%\rdbms\admin prepsql时输入,即可如前得到lst文件,记录了sql语句的更详细分析。
做多了snapshot,可能需要删除一些历史数据,运行oracle_home%\rdbms\admin ppurge就可以了,根据提示选择要删除的id,而全部删除就oracle_home%\rdbms\admin ptrunc,一路回车即可。
最后要注意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里更详细。
Statspack之初体验-数据库专栏,SQL Server
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » Statspack之初体验-数据库专栏,SQL Server
相关推荐
-      DataGrid中的按钮反选事件与NamingContainer(命名容器)-downmoon-ASP教程,数据库相关
-      根据数据表中数据,生成Powerpoint幻灯片-ASP教程,数据库相关
-      使用用VB处理MYSQL数据库中二进制数据问题-.NET教程,VB.Net语言
-      关于DataGridView中如何接收处于编辑状态下的当前信息-ASP教程,数据库相关
-      ActiveMQ4.1+Spring2.0的POJO JMS方案(上)-.NET教程,数据库应用
-      ASP.NET 2.0中直接将Access数据库导入到Excel文件中-.NET教程,Asp.Net开发
-      DataGrid的多行提交-.NET教程,数据库应用
-      一个简单的asp数据库操作类-ASP教程,数据库相关