为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:源端8.1.4.6 Packl,目标端:8.1.4.80 Pack42
【操作系统】:麒麟
【CPU】: 海光
【问题描述】*:
CREATE OR REPLACE VIEW "CQENT"."ANALYSE_QY_CHILD_VIEW"
AS
WITH TMP_1 AS (
SELECT ENT_NAME, UNISC_ID, P_ENT_NAME, P_REG_NO
FROM DZZW_QY_INFO
WHERE P_ENT_NAME IS NOT NULL AND P_ENT_NAME != ENT_NAME AND P_REG_NO != REG_NO
), TMP_2 AS (
SELECT a.inv, a.cer_no, b.ent_name, b.unisc_id,
nvl(b.cbrs, 0) cbrs, ROUND(NVL(b.YYSR,0)/10000,2) YYSR,ROUND(NVL(b.ZCZE,0)/10000,2) ZCZE
FROM DZZW_QY_TZF_NEW a LEFT JOIN mv_analyse_qy_eco B
ON a.JBXX_ID = b.prip_id
WHERE a.CER_NO != b.unisc_id AND a.TYPE = 1 and a.SUB_CON_PROP >= '0.5' AND a.CER_NO LIKE '9%'
)
SELECT QY."P_ENT_NAME",QY."P_UNISC_ID",QY."ENT_NAME",QY."UNISC_ID",QY."CHILD_LEVEL", nvl(ECO.CBRS, 0) CBRS, ROUND(NVL(ECO.YYSR,0)/10000,2) YYSR, ROUND(NVL(ECO.ZCZE,0)/10000,2) ZCZE
FROM(
SELECT A.ENT_NAME P_ENT_NAME, A.UNISC_ID P_UNISC_ID, TMP_1.ENT_NAME, TMP_1.UNISC_ID, 1 CHILD_LEVEL
FROM DZZW_QY_INFO A JOIN TMP_1
ON (A.ENT_NAME = TMP_1.P_ENT_NAME OR A.REG_NO = TMP_1.P_REG_NO OR A.UNISC_ID = TMP_1.P_REG_NO)
) QY
LEFT JOIN MV_ANALYSE_QY_ECO ECO ON QY.UNISC_ID = ECO.UNISC_ID
UNION ALL
SELECT CONNECT_BY_ROOT TMP_2.inv P_ENT_NAME, CONNECT_BY_ROOT TMP_2.cer_no P_UNISC_ID, TMP_2.ent_name, TMP_2.unisc_id,
LEVEL child_level, TMP_2.cbrs, TMP_2.yysr, TMP_2.zcze
FROM TMP_2
CONNECT BY NOCYCLE PRIOR TMP_2.unisc_id = TMP_2.CER_NO;
提供一下相关案例(表结构、数据)
或者留一下联系,如果能远程的话
需要对比两边的执行计划和dm.ini参数
建议恢复完数据库后全库收集统计信息,在对比下两边sql的执行计划

源库通过rman恢复到目标端后,进行了全库统计信息收集,而后又对该sql涉及的三张表进行清除执行计划缓存操作,但都不行,请问是不是因为版本原因要修改参数什么的。或者麻烦大佬们给一个排查思路,眼下目标端这条sql都执行不出结果,不能用et工具查看执行计划。