Oracle_9i_Statspack_高性能调整

  • 格式:doc
  • 大小:154.00 KB
  • 文档页数:14

Lesson 3 安装和配置STATSPACK1.安装STATSPACK步骤8.1.7之前的statspack安装1)决条件:✓创建专用表空间,如perfstat✓作为SYS运行catdbsyn.sql✓作为SYS运行dbmspool.sql✓对perfstat表空间分配至少180M磁盘空间✓运行statscre.sql2)8.1.7之后STATSPACK安装✓创建专用表空间,如perfstat✓运行spcreate.sql✓如果运行过程中出错,重建的时候应该先运行spdrop.sql删除内容,检查出错原因,纠正后再进行。

3)测试安装是否正常运行。

调用spreport.sql来测试。

对于8.1.7前调用statsrep.sql (需要完善具体方法)WZH 9iOCP>exec statspack.snap;WZH 9iOCP>exec statspack.snap;WZH 9iOCP>@?\rdbms\admin\spreport.sql注意选择正确的spreport.sql的路径。

4)规划自动STATSPACK数据搜集。

运行?\rdbms\admin\spauto.sql可以设置自动搜集statspack 数据。

这个脚本创建了一个作业。

为了运行这个作业,要保证job_queue_processes参数大于0,而且要使用statspack所属用户来执行。

例如下面的脚本设置每1小时进行一次statspack:variable jobno number;variable instno number;beginselect instance_number into :instno from v$instance;dbms_job.submit(:jobno, 'statspack.snap;',trunc(sysdate+1/24,'HH'), 'trunc(SYSDA TE+1/24,''HH'')', TRUE);commit;end;/2.STATSPACK的配置和维护1)查看STATSPACK快照:WZH 9iOCP>select snap_id,dbid,to_char(snap_time,'yyyy/mm/dd hh24:mi:ss') snaptime,snap_level from stats$snapshot;2)STA TSPACK搜集级别✓LEVEL 0:一般性能统计✓LEVEL 5:增加SQL语句,将SQL语句放入stats$sql_summary中✓LEVEL 10:增加子锁存统计。

除了0和5的所有内容之外,还会把附加的子锁存信息放入stats$latch_children表中。

这种级别的统计应该在接收Oracle技术支持的情况下进行。

✓修改方法:execute statspack.snap(i_snap_level=>0,i_modify_parameter=>‟true‟);✓动态修改搜集级别可以不加i_modify_parameter,例如:exec statspack.snap(I_snap_level=>10)3)STA TSPACK搜集范围快照域值只应用于在stats$sql_summary表中获取的SQL语句,用来控制stats$sql_summary 表的快速增长。

✓executions_th:SQL语句执行的数量(默认100)✓disk_reads_th:sql语句执行的磁盘读入数量(默认1000)✓parse_calls_th:sql语句执行的解析调用数量(默认1000)✓buffer_gets_th:sql语句执行缓冲区获取的数量(默认10000)新的Oracle9i SQL域值:✓p_def_num_sql:sql语句数量的阈值✓p_def_executions_th:sql语句执行程序数量的阈值✓p_def_parse_calls_th:sql语句分析调用数量的阈值✓p_def_disk_reads_th:磁盘读操作数量的阈值✓p_def_sharable_mem_th:sql可共享内存数量的阈值✓p_def_version_count_th:sql子句游标通过statspack..modify_statspack_parameter函数可以改变阈值的默认值。

阈值存放在stats$statspack_parameter中。

改变阈值举例:sql>exec statspack.modify_statspack_parameter(i_buffer_gets_th=>20000);4)3.将STATSPACK用于ORACLE8.0到8.15STA TSPACK随ORACLE8.1.6正是引入的,如果需要用于之前版本,需要做以下修正:✓statscbps.sql✓statsrep80.sql上面这些sql在D:\STUDY\ORACLE\statscode目录下4.删除旧有的STATSPACK快照如果快照过旧,可能无法使用,可以使用sppurge.sql来删除指定的快照,也可以手动删除,例如:SQL>delete from snats$snapshot where snap_id<10000;上面者条语句会自动删除stats$sql_summary中的数据,因为statspack可以使用ON CASCADE DELETE 来实现外键参考一致。

SQL>delete from stats$sql_summary where snap_time <sysdate-180;上面这条语句删除180天前的快照。

Lesson 4 STATSPACK表中的数据1.statspack的局限性statspack并不能获得全部信息,下面几个部分用stataspack的标准并不能获得,不过可以从本书提供的扩展脚本中来获得。

✧服务器统计✧磁盘统计✧对象统计2.stats$sql_statistics这个表用来提供一个块照中所有被检查的SQL的一个总计数据。

SQL> desc stats$sql_statistics名称空? 类型----------------------------------------- -------- ---------SNAP_ID NOT NULL NUMBER(6)DBID NOT NULL NUMBERINSTANCE_NUMBER NOT NULL NUMBERTOTAL_SQL NOT NULL NUMBERTOTAL_SQL_MEM NOT NULL NUMBERSINGLE_USE_SQL NOT NULL NUMBERSINGLE_USE_SQL_MEM NOT NULL NUMBER3.stats$sqltext:该表存储存在stats$sqltext中的SQL源代码。

4.stats$latch_misses_summary该表记录Oracle数据中的锁存失败。

当我们观察锁存时,必须记住有两种类型锁存:1是愿意等待型锁存,2是立即型锁存。

愿意等待型会反复试图获得锁存,因为锁存无法获得而导致的休眠次数需要引起我们注意。

锁存获取失败次数也要严格注意,因为这意味着资源短缺。

5.stats$sgastat_summary(只适用于Oracle8i)该表包括了一些Oracle数据库系统范围内的重要值,在9i中已经作废6.stats$sql_summary这是statspack工具中最重要的表之一。

该表提供了所有sql语句的内容以及各个语句所使用资源的详尽描述。

7.stats$rollstat:记录Oracle会滚段活动信息。

这个表的数据对于会滚段尺寸和初始化参数调整有用,但是完成调整之后旧很少再用到了。

8.stats$latch:记录锁信息。

在Oracle内部中,锁存被用来串行化事务处理。

9.stats$latch_children只有在进行级别10搜集的时候才会产生stats$latch_children表10.Stats$librarycache 共享池11.Stats$waitstat如果会议数据库正在面临资源短缺,stats$waitstat表中描述的系统等待统计就会非常有用。

12.Stats$enqueuestat(9I不存在)队列等待信息13.Stats$sysstat与v$sysstat结构一致,具有200多个独立统计名称,只有少数与oracle性能有关14.Stats$buffer_pool(8i之前)该表用来保存与各个数据缓冲池中缓冲区数量有关的基本信息。

15.Stats$buffer_pool_statistics16.Stats$filestatxs重要的调整表之一。

记录了各个数据文件的I/O情况。

17.Stats$system_event系统事件表18.Stats$session_event会话事件表19.Stats$bg_event_summary所有的数据库实例的后台进程等待事件20.Stats$rowcache_summary搜集IDLM中的活动是该表的目的。

该表会记录OPS(RAC)环境中各个实例的块使用情况。

21.Stats$sgaxs该表用于对单独的rac环境中使用的多个SGA进行交叉引用Lesson 5 扩展STATSPACK搜集服务器统计信息1.vmstat 工具vmstat 工具是最常见的UNIX监视工具,它在大多数的UNIX版本中都有(在IRIX中叫做osview)。

Vmstat 可以用来查看cpu、内存方面的信息。

下面是在aix下使用vmstat的一个输出:% vmstat 10 5kthr memory page faults cpu----- ----------- ------------------------ ------------ -----------r b avm fre re pi po fr sr cy in sy cs us sy id wa2 1 68028 637 0 0 0 0 1 0 130 1992 85 13 18 69 12 0 68372 259 0 0 0 0 0 0 120 21803 146 40 60 0 02 1 68095 505 0 0 0 4 21 0 135 21639 147 40 60 0 02 0 68126 474 0 0 0 0 0 0 118 22586 142 39 61 0 02 0 68779 171 0 0 2 40 188 0 125 21911 143 36 64 0 01)在vmstat中可以得到什么?✓r(运行队列)运行队列展示了正在执行和等待CPU资源的任务数量。