首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >sql使用函数时性能较低

问sql使用函数时性能较低
EN

Stack Overflow用户
提问于 2017-03-11 02:49:31
回答 2查看 407关注 0票数 0

我有以下功能:

代码语言:javascript
复制
Create function code_status
( p_code varchar, p_daytime date);

Select status into l_value from table1 where code=p_code and daytime=p_daytime;

Return l_value;

End;

我在下面的sql查询中使用了它:

代码语言:javascript
复制
Select code, daytime, code_status(code, daytime) from table2
where daytime = '12 Jan 2017'

这个函数的查询速度很慢,有没有办法改善它,我觉得这里不需要函数?

谢谢

EN

回答 2

Stack Overflow用户

发布于 2017-03-11 03:57:17

这个函数真的不是必需的。它基本上是从一个查找表(table1)中获取单个值(status)。因此,加入它来获取状态,如下所示:

代码语言:javascript
复制
Select t2.code, t2.daytime, t1.status 
from table2 t2
left join table1 t1 on (t1.code=t2.code and t1.daytime=t2.daytime)
where t2.daytime = to_date('12 Jan 2017', 'DD Mon YYYY');

其中table1是状态查找表,table2是驱动表。

票数 1
EN

Stack Overflow用户

发布于 2017-03-11 03:09:51

对于此查询:

代码语言:javascript
复制
Select status into l_value
from table1
where code = p_code and daytime = p_daytime;

你想要一个索引。最好的索引是table1(code, daytime, status)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42725694

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档