HWM导致全表扫描逻辑读极高问题一例
一个需要知道的前提:全表扫描会对HWM(高水位线)以下的所有的数据块进行扫描。因此对于频繁insert、delete操作而不可避免又需要进行全表扫描的表将会引起严重的性能问题。通过topas查看发现系统cpu使用率极高,平时都是50%--60%的空闲,现在只有30%左右,通过pid查看不到信息。在oracle中做statspack发现top sql中的前几个都是如下的语句:Buffer Gets Executions Gets per Exec %Total Time (s) Time (s) Hash Value--------------- ------------ -------------- ------ -------- --------- ----------205,411,225 36,592 5,613.6 7.3 16
ORACLE学习笔记--性能优化FAQ(转)
一些精简的tuning总结~1. 查询正在执行语句的执行计划(也就是实际语句执行计划)select * from v$sql_plan where hash_value = (select sql_hash_value from v$session where sid = 1111);其中id和parent_id表示了执行数的结构,数值最大的为最先执行 比如ID PARENT_ID ------------- 0 1 02 13 24 35 46 3 则执行计划树为######0######1######2######3###6######4 -----第二步############5----第一步2.如何设置自动跟踪 用system登录 执行$ORACLE_HOME/rdbms/admin/utlxplan.sql创建计划表 执行$ORACLE_HOME/sqlplus/admin/plust
将freespace.sql做了点改进
通常查看表空间使用情况,查dba_data_files与dba_free_space即可,若查看temp表空间使用情况,可用dba_temp_files与v$temp_space_header字典,用v$temp_space_header的缺点就是并不能准确反映temp表空间的使用情况,改用v$sort_usgae则可以准确地实时反映temp表空间的使用情况:修改前:select t.*from (SELECT D.TABLESPACE_NAME,SPACE "SUM_SPACE(M)",BLOCKS SUM_BLOCKS,SPACE - NVL(FREE_SPACE, 0) "USED_SPACE(M)",ROUND((1 - NVL(FREE_SPACE, 0) / SPACE) * 100, 2) "USED_RATE(%)",FREE_SPACE "