关于自定义函数导致SQL查询过慢的解决方案

在做报表的过程中,有一张报表是要查询对应币种的汇率,而汇率在另外一张表中,而查询汇率的条件是根据报表的统计日期(页面传入的参数),去汇率表中查询该统计日期的上一个月的汇率,如果没有上个月的汇率,则查询最新的对应币种的汇率,因此,自定义了一个获取汇率的函数,放在SQL中,其传入的参数为对应的币种代码和统计日期,这样,此函数就没有办法建立函数索引,这样导致查询结果很慢,150万的数据导出要10多分钟。

后来做了改进,由于统计日期确定后,其对应的汇率也就确定了,因此另建一张汇率表,其存的汇率就是我们想要的汇率,我们在页面查询的时候执行存储过程,将我们想要币种和对应的汇率存入该表即可。

我们在SQL语句中只需查询该表中的对应币种的汇率即可,而不再需要调用获取汇率的函数了,这样速度就快了很多,时间缩短了将近一半。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值