| 
                        副标题[/!--empirenews.page--]
                         最近系统总是卡顿,因为老系统,也看不到代码,所以只能从数据库层面去分析了,下面记录下问题排查过程。 
  
1. 查看超过10s的sql 
- SELECT 'kill -9 '||p.spid,/*p.spid,p.pid,*/s.sid,s.username,s.machine,s.sql_hash_value,s.last_call_et 秒,s.last_call_et/ 60 运行时间,s.client_info,p.program "OSProgram", 
 - 'alter system kill session ''' ||s.SID||','||s.SERIAL#|| ''';' 
 - FROM v$session s, v$process p 
 - WHERE (s.status = 'ACTIVE' ) AND ((s.username IS NOT NULL) 
 - AND (NVL (s.osuser, 'x') <> 'SYSTEM') AND (s.TYPE <> 'BACKGROUND')) AND (p.addr(+) = s.paddr) 
 - --and s.username in ('CRMDB')  
 - and s.last_call_et > 10 
 - /*and s.sql_hash_value=880766746*/ 
 - ORDER BY s.last_call_et/60 desc,"USERNAME" ASC , ownerid, "USERNAME" ASC; 
 
  
  
2. 获取具体sql 
- select sql_id from v$session where sid=1016 
 - --ats0x10k9m619 
 - select listagg(sql_text,' ') within group (order by piece) 
 -  from v$sqltext 
 -  where sql_id = 'ats0x10k9m619' 
 -  group by sql_id 
 
  
  
3. 问题sql 
- select o.order_release_gid, o.order_release_gid 
 -  from ORDER_RELEASE o, ORDER_RELEASE_TYPE ort 
 -  where (o.order_release_type_gid = ort.order_release_type_gid) 
 -  and (o.order_release_gid in 
 -  (select ors2.order_release_gid 
 -  from STATUS_VALUE sv2, ORDER_RELEASE_STATUS ors2 
 -  where (sv2.status_value_xid in (:1, :2, :3)) 
 -  and (ors2.status_value_gid = sv2.status_value_gid))) 
 -  and (o.order_release_gid in 
 -  (select ors1.ord er_release_gid 
 -  from STATUS_VALUE sv1, ORDER_RELEASE_STATUS ors1 
 -  where (sv1.status_value_xid = :4) 
 -  and (ors1.status_value_gid = sv1.status_value_gid))) 
 -  and (ort.order_release_type_xid in (:5)) 
 -  order by o.insert_date desc 
 
  
4. 获取sql详细信息 
- SQL> @/home/oracle/sql/spoolsql.sql 
 
  
注:两个sqlid其实都是同一条sql。 
  
结果如下: 
  
  
5. 执行计划 
执行计划没什么好入手的。 
  
6. 各表数据量情况 
观察一下表的数据量,发现有一张表达到4千万的数据,而ORDER_RELEASE_STATUS表只是记录订单状态,业务确认是可以只保留2个月内数据 
  
7. 大表索引情况 
检查下索引情况: 
- select SEGMENT_NAME, BYTES / 1024 / 1024 
 -  from dba_segments 
 -  where segment_name IN ('IX_ORS_STSVALGID', 'ORS_ORGID', 'IX_ORS_STSVGID', 
 -  'PK_ORDER_RELEASE_STATUS'); 
 
  
  
  
8. 定期归档ORDER_RELEASE_STATUS大表 
                                                (编辑:91站长网) 
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! 
                     |