日期:2014-05-16  浏览次数:20703 次

数据库如何查看执行计划以及性能问题
先谢谢各位老鸟了:

  问题产生原因:同样的SQL 不同时间执行的时间不一样 2秒 ,2分钟不等。

  SQL如下:

select terminalTime,
 vehicle_ln,
 VEHICLE_ID,
ID,
VEHICLE_CODE,
 
car_state
 
from (
 select
 to_char(TERMINAL_TIME,'yyyy-MM-dd HH24:mi:ss') as terminalTime
 ,vehicle_ln
 ,VEHICLE_ID
 ,ID
 ,VEHICLE_CODE,
 CAR_STATE_FUN(VEHICLE_VIN,'2') as car_state
 from
 (select
 tt.TERMINAL_TIME,tt.VEHICLE_VIN,tt.ID,bt.vehicle_ln,bt.VEHICLE_ID,bt.VEHICLE_CODE
 from IKO_JCO_TERM_T tt,IKO_LS_BASE_INFO_T bt where tt.VEHICLE_VIN =
 bt.VEHICLE_VIN and bt.VALID_FLAG ='0' and tt.VALID_FLAG='0' 
 and bt.ORGANIZATION_ID in 
   
  (select enterprise_id
  from IKO_jco_enterprise_vi
  where left_num >= (select left_num
  from IKO_jco_enterprise_vi
  where enterprise_id = '9947038f-2a78-4a81-9f62-d30efeb90508')
  and right_num <=(select right_num
  from IKO_jco_enterprise_vi
  where enterprise_id ='9947038f-2a78-4a81-9f62-d30efeb90508')  
  )
   
   
  
 )
)
 
where car_state!='3'

其中CAR_STATE_FUN函数 为 对一个表或者多个表 进行多次查询判断等操作。

涉及的表 数据量300W 以及 数据量1W 有索引 其中300W数据量表 每30秒要对数据进行并发批量的修改

现象:前台页面 显示非常慢 也非常不稳定

数据库执行计划



  为了解决 以上原因出现的性能 问题 所以提出以下问题:
   
  问题:麻烦各位分析一下 谢谢

 

  问题: oracle10G 查看数据库各SQL的 执行情况占用资源 等信息 如何查看 还有 如何分析(怎么算好怎么算性能问题) 

 

------解决方案--------------------
可以参考以下文章~~ 基本如此~~

ssh 登录, 输入命令 top 能看出占资源的进程

找到最好资源的进程(记住进程号),例如,操作系统进程号为2796,然后根据这个进程号(v$process.spid)在v$process中找到进程地址(v$process.addr),然后根据这个地址在v$session中找到相应的sid(v$session.sid),然后根据这个sid找到相应的hash alue(v$session. sql_hash_value),然后根据这个hash alue在v$sqltext,$sql,v$sqlarea等视图中找到对应的sql语句(sql_text)。select * from v$process where spid=‘2796‘;select sql_hash_value,machine,username,program from v$session where PAddr=‘63B7A584‘;select * from v$sqltext where hash_value=‘833203018‘;select * from v$sql where hash_value=‘833203018‘;select * from v$sqlarea where hash_value=‘833203018‘;SELECT a.username,a.machine,a.program,a.sid,a.serial#,a.status,c.piece,c.sql_text FROM v$session a,v$process b,v$sqltext c WHERE b.spid=‘2796‘ AND b.addr=a.paddr AND a.sql_address=c.address(+) ORDER BY c.piece