注册

表关联视图不走索引

黎明 2022/07/08 1196 1

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:
【操作系统】:
【CPU】:
【问题描述】*:视图建立在两个基表上,表上有索引,表查询很快,使用别的表和视图关联时就很慢,没有走索引,走的全表扫描,sql和执行计划如下,怎么优化?

CREATE VIEW "RISENET"."V_OFFICE_FILE" ("WORKFLOWINSTANCE_GUID","BANWENBIANHAO","BIAOTI","JINJICHENGDU","UPDATEDATE","LAIWENDANWEI","JINBANREN","IMPORTOFFICE","LAIWENZIHAO","ZHUCHIREN","CANHUIQLD")  
AS 
select t.workflowinstance_guid, t.banwenbianhao,t.biaoti,t.jinjichengdu,ins.updatedate,t.laiwendanwei,
t.jinbanren,t.importoffice,t.laiwenzihao,t.zhuchiren,t.canhuiqld
  from ( select s.biaoti,  s.workflowinstance_guid, s.banwenbianhao,s.jinjichengdu,s.laiwendanwei,
  s.jinbanren,s.importoffice,s.laiwenzihao, '' zhuchiren,'' canhuiqld from office_shouwen_all s
  union all select f.biaoti, f.workflowinstance_guid, f.banwenbianhao ,f.jinjichengdu,f.fawendanwei,
  f.jinbanren,f.importoffice,f.fawenzihao laiwenzihao,f.zhuchiren,f.canhuiqld from office_fawen_all f  )
   t,office_workflowinstance ins where t.workflowinstance_guid = ins.workflowinstance_guid

select 
        count(1)
from
        (
                select
                        /*+index(w,SYS_C0027604) */
                        w.workflowinstance_guid
                from
                        office_workflowinstance w,
                        v_office_file v
                where
                        w.workflowinstance_guid = v.workflowinstance_guid
                    and w.instancedeleted       = 0
                    and w.bureau_guid           ='{0A000076-0000-0000-026A-41390000044F}'
                    and v.biaoti               is not null
                    and w.appguid              in ('5', '6')
                    and w.InstanceStatus not   in('5', '6')
                    and not exists
                        (
                                select
                                        workflowinstance_guid
                                from
                                        office_workflow_exhale e
                                where
                                        e.workflowinstance_guid=w.workflowinstance_guid
                                    and e.handel_status        =1
                        )
        )
		
1   #NSET2: [4514, 1, 656] 
2     #PRJT2: [4514, 1, 656]; exp_num(1), is_atom(FALSE) 
3       #AAGR2: [4514, 1, 656]; grp_num(0), sfun_num(1) slave_empty(0)
4         #PRJT2: [4514, 25922, 656]; exp_num(0), is_atom(FALSE) 
5           #HASH LEFT SEMI JOIN2: [4514, 25922, 656];  (ANTI),KEY_NUM(1); join condition(E.HANDEL_STATUS = exp_cast(1)) KEY(W.WORKFLOWINSTANCE_GUID=E.WORKFLOWINSTANCE_GUID) KEY_NULL_EQU(0)
6             #HASH2 INNER JOIN: [4061, 409353, 656];  KEY_NUM(1); KEY(W.WORKFLOWINSTANCE_GUID=V.WORKFLOWINSTANCE_GUID) KEY_NULL_EQU(0)
7               #HASH RIGHT SEMI JOIN2: [309, 228712, 212]; n_keys(1)  (ANTI),  KEY(DMTEMPVIEW_31239145.colname=W.INSTANCESTATUS) KEY_NULL_EQU(0)
8                 #CONST VALUE LIST: [1, 2, 30]; row_num(2), col_num(1), 
9                 #HASH RIGHT SEMI JOIN2: [309, 228712, 212]; n_keys(1)   KEY(DMTEMPVIEW_31239144.colname=W.APPGUID) KEY_NULL_EQU(0)
10                  #CONST VALUE LIST: [1, 2, 48]; row_num(2), col_num(1), 
11                  #SLCT2: [309, 228712, 212]; W.INSTANCEDELETED = var3
12                    #BLKUP2: [309, 243266, 212]; IDX_INTAN_BUREAUGUID(W)
13                      #SSEK2: [309, 243266, 212]; scan_type(ASC), IDX_INTAN_BUREAUGUID(OFFICE_WORKFLOWINSTANCE as W), scan_range['{0A000076-0000-0000-026A-41390000044F}','{0A000076-0000-0000-026A-41390000044F}']
14              #PRJT2: [3216, 4161536, 444]; exp_num(1), is_atom(FALSE) 
15                #HASH2 INNER JOIN: [3216, 4161536, 444]; RKEY_UNIQUE KEY_NUM(1); KEY(T.WORKFLOWINSTANCE_GUID=INS.WORKFLOWINSTANCE_GUID) KEY_NULL_EQU(0)
16                  #PRJT2: [1618, 4161536, 384]; exp_num(1), is_atom(FALSE) 
17                    #UNION ALL: [1618, 4161536, 384]
18                      #PRJT2: [455, 2325122, 384]; exp_num(10), is_atom(FALSE) 
19                        #SLCT2: [455, 2325122, 384]; NOT(S.BIAOTI IS NULL)
20                          #CSCN2: [455, 2360028, 384]; INDEX33558085(OFFICE_SHOUWEN_ALL as S)
21                      #PRJT2: [418, 1836414, 480]; exp_num(10), is_atom(FALSE) 
22                        #SLCT2: [418, 1836414, 480]; NOT(F.BIAOTI IS NULL)
23                          #CSCN2: [418, 1964832, 480]; INDEX33558717(OFFICE_FAWEN_ALL as F)
24                  #CSCN2: [512, 4373723, 60]; INDEX33558226(OFFICE_WORKFLOWINSTANCE as INS)
25            #SSCN: [207, 1713030, 78]; INDEX_OFFICE_WORKFLOW_EXHALE_1(OFFICE_WORKFLOW_EXHALE as E)
回答 0
暂无回答
扫一扫
联系客服