为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】: v8
【操作系统】: 麒麟海光
【CPU】: 海光
【问题描述】*:
目前,开发在测试中发现一个问题,一个作业在主库运行,作业时间大概需要1小时,这个时候主库发生问题,数据库自动切换到备库,此时备库变成主库,作业重新发起在新主库上,作业时间从1小时 增加到3小时,这个时候,请问是什么原因引起的,如果是统计信息问题,如何规避该问题?
首先要确认,主备环境是否一样。(CPU\内存\存储\数据库参数)
如果主备环境一模一样。
就只能去分析SQL语句慢在哪里了。
1、收集下涉及到的表统计信息。
2、debug下SQL。
3、直接查,以下SQL可以尝试试一下查询存储过程中正在执行的具体SQL。
select cast(sess_id as varbinary),DATEDIFF(SS, LAST_RECV_TIME, SYSDATE),A.SQL_TEXT SQL_TEXT_1,C.CACHE_ITEM,B.*
from v$sessions A,v$sqltext B LEFT JOIN V$CACHEPLN C ON CAST(B.SQL_ADDR AS BIGINT) = C.SQLCACHE
WHERE B.SQL_ID=A.SQL_ID AND state IN('ACTIVE', 'WAIT') --AND A.THRD_ID =1253765
ORDER BY 2 DESC;
这个作业如果是自定义的,那么排查一下是不是sql语句慢了导致的。如果是就要分析一下具体的执行计划