以下语句执行时长在1秒以内
select T1.STAFF_ID STAFF_ID,
T2.STAFF_NO STAFF_NO,
T2.STAFF_NAME STAFF_NAME,
T4.DEPT_ID DEPT_ID,
T4.DEPT_NAME DEPT_NAME,
T1.CALLER CALLER,
T1.CALLEE CALLEE,
decode(sign(T1.CALL_TIME - to_date('20050101', 'yyyymmdd')),
1,
to_char(T1.CALL_TIME, 'yyyy/mm/dd hh24:mi:ss'),
'--') CALL_TIME,
decode(sign(T1.ANS_TIME - to_date('20050101', 'yyyymmdd')),
1,
to_char(T1.ANS_TIME, 'yyyy/mm/dd hh24:mi:ss'),
'--') ANS_TIME,
decode(sign(T1.CLR_TIME - to_date('20050101', 'yyyymmdd')),
1,
to_char(T1.CLR_TIME, 'yyyy/mm/dd hh24:mi:ss'),
'--') CLR_TIME,
decode(sign(T1.ANS_TIME - to_date('20050101', 'yyyymmdd')),
1,
trunc((T1.CLR_TIME - T1.ANS_TIME) * 86400),
0) DURATION,
T3.CALL_END_REASON_ID CALL_END_REASON_ID,
T3.CALL_END_REASON CALL_END_REASON
from (select ASSOCIATE_MERGE_ID,
CALLER_USER_TYPE,
CALL_ID,
CALL_SEQ,
NODE_ID,
TERM_ID,
TERM_TYPE,
STAFF_ID,
CALL_TIME,
DIRECTION,
JOIN_MODE,
PRELINK_TIME,
RELEASE_TIME,
IAI_TIME,
ACM_TIME,
ANS_TIME,
CLR_TIME,
PRIMARY_CALLER,
PRIMARY_CALLEE,
CALLER,
CALLEE,
FINISH_REASON,
CALL_TYPE,
QUEUE_START_TIME,
QUEUE_FINISH_TIME,
ACD_NO
from DM_TERM_CALL_LOG_09
where DIRECTION = 1
and STAFF_ID in
('110', '1145', '1151', '206', '2073', '2113', '22',
'252', '2735', '317', '321', '3433', '3434', '3435',
'421', '4393', '48', '51', '60')
and CALL_TIME >=
to_date('2007/9/10 10:44:53', 'yyyy/mm/dd HH24:MI:SS')
and CALL_TIME <=
to_date('2007/9/13 10:44:54', 'yyyy/mm/dd HH24:MI:SS')) T1,
ECC_STAFF_MANAGER T2,
DM_CALL_END_REASON T3,
ECC_DEPT_MANAGER T4
where T1.STAFF_ID = T2.STAFF_ID
and T2.DEPT_ID = T4.DEPT_ID
and T1.FINISH_REASON = T3.CALL_END_REASON_ID但如果在语句的外层加上一个count(*),执行效率就狂低,执行时间在10秒以上
select count(*)
from (select T1.STAFF_ID STAFF_ID,
T2.STAFF_NO STAFF_NO,
T2.STAFF_NAME STAFF_NAME,
T4.DEPT_ID DEPT_ID,
T4.DEPT_NAME DEPT_NAME,
T1.CALLER CALLER,
T1.CALLEE CALLEE,
decode(sign(T1.CALL_TIME - to_date('20050101', 'yyyymmdd')),
1,
to_char(T1.CALL_TIME, 'yyyy/mm/dd hh24:mi:ss'),
'--') CALL_TIME,
decode(sign(T1.ANS_TIME - to_date('20050101', 'yyyymmdd')),
1,
to_char(T1.ANS_TIME, 'yyyy/mm/dd hh24:mi:ss'),
'--') ANS_TIME,
decode(sign(T1.CLR_TIME - to_date('20050101', 'yyyymmdd')),
1,
to_char(T1.CLR_TIME, 'yyyy/mm/dd hh24:mi:ss'),
'--') CLR_TIME,
decode(sign(T1.ANS_TIME - to_date('20050101', 'yyyymmdd')),
1,
trunc((T1.CLR_TIME - T1.ANS_TIME) * 86400),
0) DURATION,
T3.CALL_END_REASON_ID CALL_END_REASON_ID,
T3.CALL_END_REASON CALL_END_REASON
from (select ASSOCIATE_MERGE_ID,
CALLER_USER_TYPE,
CALL_ID,
CALL_SEQ,
NODE_ID,
TERM_ID,
TERM_TYPE,
STAFF_ID,
CALL_TIME,
DIRECTION,
JOIN_MODE,
PRELINK_TIME,
RELEASE_TIME,
IAI_TIME,
ACM_TIME,
ANS_TIME,
CLR_TIME,
PRIMARY_CALLER,
PRIMARY_CALLEE,
CALLER,
CALLEE,
FINISH_REASON,
CALL_TYPE,
QUEUE_START_TIME,
QUEUE_FINISH_TIME,
ACD_NO
from DM_TERM_CALL_LOG_09
where DIRECTION = 1
and STAFF_ID in
('110', '1145', '1151', '206', '2073', '2113', '22',
'252', '2735', '317', '321', '3433', '3434', '3435',
'421', '4393', '48', '51', '60')
and CALL_TIME >=
to_date('2007/9/10 10:44:53', 'yyyy/mm/dd HH24:MI:SS')
and CALL_TIME <=
to_date('2007/9/13 10:44:54', 'yyyy/mm/dd HH24:MI:SS')) T1,
ECC_STAFF_MANAGER T2,
DM_CALL_END_REASON T3,
ECC_DEPT_MANAGER T4
where T1.STAFF_ID = T2.STAFF_ID
and T2.DEPT_ID = T4.DEPT_ID
and T1.FINISH_REASON = T3.CALL_END_REASON_ID)
大家有遇到这种情况吗?有什么处理方式呀?
select T1.STAFF_ID STAFF_ID,
T2.STAFF_NO STAFF_NO,
T2.STAFF_NAME STAFF_NAME,
T4.DEPT_ID DEPT_ID,
T4.DEPT_NAME DEPT_NAME,
T1.CALLER CALLER,
T1.CALLEE CALLEE,
decode(sign(T1.CALL_TIME - to_date('20050101', 'yyyymmdd')),
1,
to_char(T1.CALL_TIME, 'yyyy/mm/dd hh24:mi:ss'),
'--') CALL_TIME,
decode(sign(T1.ANS_TIME - to_date('20050101', 'yyyymmdd')),
1,
to_char(T1.ANS_TIME, 'yyyy/mm/dd hh24:mi:ss'),
'--') ANS_TIME,
decode(sign(T1.CLR_TIME - to_date('20050101', 'yyyymmdd')),
1,
to_char(T1.CLR_TIME, 'yyyy/mm/dd hh24:mi:ss'),
'--') CLR_TIME,
decode(sign(T1.ANS_TIME - to_date('20050101', 'yyyymmdd')),
1,
trunc((T1.CLR_TIME - T1.ANS_TIME) * 86400),
0) DURATION,
T3.CALL_END_REASON_ID CALL_END_REASON_ID,
T3.CALL_END_REASON CALL_END_REASON
from (select ASSOCIATE_MERGE_ID,
CALLER_USER_TYPE,
CALL_ID,
CALL_SEQ,
NODE_ID,
TERM_ID,
TERM_TYPE,
STAFF_ID,
CALL_TIME,
DIRECTION,
JOIN_MODE,
PRELINK_TIME,
RELEASE_TIME,
IAI_TIME,
ACM_TIME,
ANS_TIME,
CLR_TIME,
PRIMARY_CALLER,
PRIMARY_CALLEE,
CALLER,
CALLEE,
FINISH_REASON,
CALL_TYPE,
QUEUE_START_TIME,
QUEUE_FINISH_TIME,
ACD_NO
from DM_TERM_CALL_LOG_09
where DIRECTION = 1
and STAFF_ID in
('110', '1145', '1151', '206', '2073', '2113', '22',
'252', '2735', '317', '321', '3433', '3434', '3435',
'421', '4393', '48', '51', '60')
and CALL_TIME >=
to_date('2007/9/10 10:44:53', 'yyyy/mm/dd HH24:MI:SS')
and CALL_TIME <=
to_date('2007/9/13 10:44:54', 'yyyy/mm/dd HH24:MI:SS')) T1,
ECC_STAFF_MANAGER T2,
DM_CALL_END_REASON T3,
ECC_DEPT_MANAGER T4
where T1.STAFF_ID = T2.STAFF_ID
and T2.DEPT_ID = T4.DEPT_ID
and T1.FINISH_REASON = T3.CALL_END_REASON_ID但如果在语句的外层加上一个count(*),执行效率就狂低,执行时间在10秒以上
select count(*)
from (select T1.STAFF_ID STAFF_ID,
T2.STAFF_NO STAFF_NO,
T2.STAFF_NAME STAFF_NAME,
T4.DEPT_ID DEPT_ID,
T4.DEPT_NAME DEPT_NAME,
T1.CALLER CALLER,
T1.CALLEE CALLEE,
decode(sign(T1.CALL_TIME - to_date('20050101', 'yyyymmdd')),
1,
to_char(T1.CALL_TIME, 'yyyy/mm/dd hh24:mi:ss'),
'--') CALL_TIME,
decode(sign(T1.ANS_TIME - to_date('20050101', 'yyyymmdd')),
1,
to_char(T1.ANS_TIME, 'yyyy/mm/dd hh24:mi:ss'),
'--') ANS_TIME,
decode(sign(T1.CLR_TIME - to_date('20050101', 'yyyymmdd')),
1,
to_char(T1.CLR_TIME, 'yyyy/mm/dd hh24:mi:ss'),
'--') CLR_TIME,
decode(sign(T1.ANS_TIME - to_date('20050101', 'yyyymmdd')),
1,
trunc((T1.CLR_TIME - T1.ANS_TIME) * 86400),
0) DURATION,
T3.CALL_END_REASON_ID CALL_END_REASON_ID,
T3.CALL_END_REASON CALL_END_REASON
from (select ASSOCIATE_MERGE_ID,
CALLER_USER_TYPE,
CALL_ID,
CALL_SEQ,
NODE_ID,
TERM_ID,
TERM_TYPE,
STAFF_ID,
CALL_TIME,
DIRECTION,
JOIN_MODE,
PRELINK_TIME,
RELEASE_TIME,
IAI_TIME,
ACM_TIME,
ANS_TIME,
CLR_TIME,
PRIMARY_CALLER,
PRIMARY_CALLEE,
CALLER,
CALLEE,
FINISH_REASON,
CALL_TYPE,
QUEUE_START_TIME,
QUEUE_FINISH_TIME,
ACD_NO
from DM_TERM_CALL_LOG_09
where DIRECTION = 1
and STAFF_ID in
('110', '1145', '1151', '206', '2073', '2113', '22',
'252', '2735', '317', '321', '3433', '3434', '3435',
'421', '4393', '48', '51', '60')
and CALL_TIME >=
to_date('2007/9/10 10:44:53', 'yyyy/mm/dd HH24:MI:SS')
and CALL_TIME <=
to_date('2007/9/13 10:44:54', 'yyyy/mm/dd HH24:MI:SS')) T1,
ECC_STAFF_MANAGER T2,
DM_CALL_END_REASON T3,
ECC_DEPT_MANAGER T4
where T1.STAFF_ID = T2.STAFF_ID
and T2.DEPT_ID = T4.DEPT_ID
and T1.FINISH_REASON = T3.CALL_END_REASON_ID)
大家有遇到这种情况吗?有什么处理方式呀?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货