当前位置: 代码迷 >> DB2 >> 优化SQL话语
  详细解决方案

优化SQL话语

热度:10485   发布时间:2013-02-26 00:00:00.0
优化SQL语句
一个左联查询如下所示:

SELECT A.OID,A.NAME,A.BITRHDAY,getcode(t.name) FROM EMP A LEFT JOIN tt as t ON A.OID=t.EMPOID

这条SQL执行的时间是6秒,我把getcode函数去掉的话,就变成了2秒,慢了3倍,
而单独执行getcode中的SQL是1毫秒,
getcode中的SQL也是加了索引的,EMP表的关链用字段OID也是加了索引的。

还想用这个getcode函数的同时,上面的SQL怎么样才能再提高执行效率呢?
我把getcode函数中的SQL直接放到上面的位置,速度也是一样的。

加上getcode函数后,还是2秒到3秒的执行时间才是理想的。
------解决方案--------------------------------------------------------
select *,getcode(name) from (
SELECT A.OID,A.NAME,A.BITRHDAY FROM EMP A LEFT JOIN tt as t ON A.OID=t.EMPOID
) as t
这样试试
------解决方案--------------------------------------------------------
不要轻易加索引,只有在需要的时候
不可能为每一种查询去建索引,优化那些最需要优化的,比如使用频率高的,或者关键查询
  相关解决方案