为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【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)
已解决,视图里的语句连接有问题