无论是自己解决的问题还是别人帮我解决的,我都把它总结一下记下来,总结经验吸取教训,这在以后会很有用。
这是以前的一个sql语句每次查询大概要用8S钟:
select count(1) as "count"
from T_IMS_CALLLOG l
inner join t_Tms_User u
on l.deviceno = u.user_id
left join T_TMS_CUSTOMER_DATA c
on l.calleeno = c.mobile
where flag = 1
and CALLIDNUM = -1
and RECORDPATH is not null
and CALLEENO = '18915509192'
and l.callbegin != l.callend
原先我以为是T_IMS_CALLLOG表和t_Tms_User、T_TMS_CUSTOMER_DATA链接造成的超时,实际上他们三个表链接要花费大概9s钟。后来请了个高手过来,他说应该给CALLEENO 字段加个索引。然后就把索引加上了,索引是这样加的:
create index T_IMS_CALLLOG_TEST on T_IMS_CALLLOG <CALLEENO> NOLOGGING;
再次查询上面的语句,奇迹出现了耗时只用了0.015s,擦..........