写了一个语句执行有点慢,涉及到系统视图

0
SELECT *
  FROM ALL_SOURCE T1
 WHERE T1.TYPE LIKE '%PROCEDURE%'
   AND T1.NAME IN
       (SELECT T2.NAME
          FROM DBA_DEPENDENCIES T2
         WHERE T2.REFERENCED_NAME = 'DWA_V_M_CUS_MB_SING_VOICE') AND
   EXISTS (SELECT 1 FROM TEST_TABLE2 T3 WHERE T1.TEXT LIKE '%'|| T3.COLUMN_NAME||'%' )
这个语句该怎么优化呢
已邀请:
0

newlove 2016-10-21 回答

/*+no_merge(a,b)*/ 不合并视图
2

老头子 - 专注是唯一的捷径 2016-10-21 回答

加个hint/*+ no_merge*/
禁止视图合并
 
系统视图多是由很多表写的一个复杂SQL,如果发生视图合并,那SQL复杂度会大大提高,CBO会评估错误导致执行计划错误,SQL执行变慢

要回复问题请先登录注册