SQL语句中自定义函数应用问题
SQL语句中自定义函数应用问题
SELECT t_id FROM db_trainstatus WHERE t_status_item =pkg_get_dz_data.uf_getstatusitemid('厂修')
会比
SELECT t_id FROM db_trainstatus WHERE t_status_item ='0101'
慢10倍以上。
表db_trainstatus 大约3000行记录,pkg_get_dz_data.uf_getstatusitemid('厂修')内部是通过DECODE语句返回代码。
如修改为:SELECT t_id FROM db_trainstatus WHERE t_status_item =(select pkg_get_dz_data.uf_getstatusitemid('厂修') from dual)则速度与直接使用常量一致。
不知道在ORACLE中这种函数是如果执行的???
问题点数:0、回复次数:8Top
1 楼xinpingf(白开心)回复于 2003-12-02 17:02:58 得分 0
在查询中使用函数,每处理一行就要调用一次(My God!)Top
2 楼jiezhi(风满袖)回复于 2003-12-02 18:28:24 得分 0
優化你的函數吧Top
3 楼wwl007(疑难杂症)回复于 2003-12-02 18:30:04 得分 0
函数 不是什么时候都好用的 函数相当于 in ,一般适合在select 里面使用 不适合 在 where 里面使用Top
4 楼freshman113(逍遥子)回复于 2003-12-11 08:53:08 得分 0
有高手吗?Top
5 楼freshman113(逍遥子)回复于 2003-12-15 20:39:49 得分 0
帮忙啊Top
6 楼wwl007(疑难杂症)回复于 2003-12-19 19:26:02 得分 0
函数贴出来Top
7 楼beckhambobo(beckham)回复于 2003-12-20 16:22:11 得分 0
肯定是函数没有作优化Top
8 楼myx7852(无极)回复于 2003-12-20 16:28:48 得分 0
函数贴出来才能看看有没有错误的地方
Top




