parse cpu to parse elapsd
觖析实际运行时间/(解析实际运行时间+解析等待时间)
execute to parse 执行解析过的语句
是语句执行与分析的比例
buffer busy wait 一个session需要访问buffer cache中的一个数据库块而又不能访问时发生的。
free buffer wait free buffer waits commonly happen when your application is insert intensive
(among many other factors), and oracle requests a new block from the freelist,with a free
buffer wait,oracle requests ram heap space for the new block but no space is available
within the data buffer cache region
table fetch continued row
通过链接行获取1行的次数。该值较高说明行存在链接。
行中如果有较长的字段,通常都有链接,因为它们不能装载在一个数据块中。如有大字段,行链接几乎不可避免。
该指标显示DB中存在行链接(RC)的情况,可采用的一般清除RC的步骤为:
使用analyze命令找出大量存在RC的表或索引,使用新的存储参数重建该表或索引。找出行链接/行迁移,通过对数据库中的表执行analyze命令以统计该表所含有的行链接/行迁移的记录数。
-- 对于非分区表
ANALYZE TABLE tablename LIST CHAINED_ROWS;
-- 对于分区表
ANALYZE TABLE tablename PARTITION PARTITION_NAME LIST CHAINED_ROWS;
执行结果存放在表chained_rows中。之后可以就将这些行从原表中查询出来放到过度表中,再从原表中删除这些行,再从过度表中插入到原表上。
消除、减少行链接/行迁移,为消除现有的行链接/行迁移,可以在系统闲时对相关表或者表分区执行move操作。alter table table_name move tablespace tablespace_name
或用exp工具导出表,然后删除这个表,最后用 imp 工具导入这表
为避免或者尽量减少出现行链接/行迁移的可能,建议适当增大表、表分区的pctfree存储参数。
注意:新的参数值仅适用于新增的数据块,对已有的数据块不发生作用,move操作可以将该参数值应用到已有的数据块中。在move操作完成后,相关表上的索引会失效,需要重建。
I/O信息统计
这部分分别统计了表空间的I/O情况以及具体到数据文件的I/O情况。通常期望在各个设备上的I/O是均匀分布的。如果发现某些特别热的数据文件,可以结合SQL物理读部分,寻找该数据文件上的哪些对象物理读较高(在AWR中有专门对物理读高的对象进行统计),可以采取分散存放热点对象等方式进行I/O的均匀分配。
这部分统计信息来自x$kcbfwait,v$filestat,v$tablespace,v$datafile这4张性能视图,主要信息通过采集x$kcbfwait,v$filestat进行增量统计。
DB_FILE_MULTIBLOCK_READ_COUNT是一个可以将表扫描的I/O将少到最低的参数。它指定了I/O在进行连续读操作时,读取块的最大数量。完成全表扫描所需的I/O数量,取决于以下几个因素:表的大小,读取块的数量,以及操作是否使用了并行执行
SQl解析优化方法
1. 使用绑定变量
2. 使用cursor sharing,设置CURSOR_SHARING=FORCE | SIMILAR
3. 设置session_cached_cursors 参数。该参数的作用是将cursor从shared pool转移到pga中,减小对共享池的争用。
4. 设置合适大小的共享池。
5. 也可以把一些比较大的SQL或者存储过程利用DBMS_SHARED_POOL.KEEP包来pinning在shared pool中
字典缓存统计
v$rowcache
库缓存活动信息
v$librarycache