基于函数索引问题

billlyh 2015-04-22 09:59:00
一个视图中因为调用了一个函数,查询很慢,大概结构如下:
select a.cola,a.colb,b.cola,b.colb,c.cola,c.colb,f_test(a.cola,b.colb,c.colc)t from a,b,c where ........
传的参数是不同表的列,可以通过加基于函数索引,使查询变快吗,哪位帮忙下下??????
...全文
199 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
ifvlr 2015-04-23
  • 打赏
  • 举报
回复
函数里面竟可能不要出现select查询语句,因为一旦有查询,就有IO损耗。 如果函数中不可避免有查询语句的话,你可以考虑在函数中加一个deterministic关键字,加载 is的前面。 这个关键字的作用你可以去网上搜索,简单的说是 当你在调用函数时如果传入的参数和之前传入过的参数一致,那么oracle将不会进行计算而直接返回以前计算过的那个值,相当于给函数加了一个索引。
小灰狼W 2015-04-23
  • 打赏
  • 举报
回复
恐怕不能,还会使插入变得很慢 想办法优化这个函数吧

3,494

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧