如何实现公用查询结果集

yuppy 2013-09-13 10:33:49
项目中有不少报表 会使用同一个查询结果集,根据不同的维度来展示。我们现在的做法就是在很多查询中写同样的(或者基本类似)的WITH子查询。 现在这个查询结果集的逻辑出现了一些变化(或者项目组中其他人也需要使用这个结果集),现在想把这个结果集抽出来。想问下大家有没有什么思路。

1、视图的可能就不考虑了,因为会有不少的查询条件,如果都冗余到视图中,势必造成其他的查询不是基于一个最小的结果集来统计。
2、自己用过FUNCTION 返回集合类型对象,再用table() 做成子查询的办法。但性能可能有问题。

想问下各位大侠有没有好的思路。只要思路就行。先谢谢啦。
...全文
142 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
shenlele088 2013-12-10
  • 打赏
  • 举报
回复
1、若实时变化,是否就无法共享数据了。 若不实时变化,其实是可以用物化视图的。将刷新时间设置短些。 但是若是变化很频繁就不适用物化视图了。 2、若是一个小表可以钉在cache里 3、若是多表关联,且多表还是频繁变化,我感觉只能设计的好些,sql写的好些了 不过,我感觉你的需求还是不会频繁变化的,否则也不涉及共享了。 若是同一session,golbal template table 也可。
yuppy 2013-09-13
  • 打赏
  • 举报
回复
引用 6 楼 gioh0022 的回复:
[quote=引用 5 楼 yuppy 的回复:] [quote=引用 2 楼 gioh0022 的回复:] 物化视图就是为了给这类问题来提升性能的吧
其实现在这个查询,性能都不是问题。关键是维护问题。统计逻辑有变更之后,很多的点都要来改。[/quote] 那就做个包,把可以封装的都封装起来咯[/quote] 谢谢啦。 问题是包没有办法返回一个结果集 可以直接和表来关联。 用table()有点担心心能。 所以看看有没有其他思路。
  • 打赏
  • 举报
回复
引用 5 楼 yuppy 的回复:
[quote=引用 2 楼 gioh0022 的回复:] 物化视图就是为了给这类问题来提升性能的吧
其实现在这个查询,性能都不是问题。关键是维护问题。统计逻辑有变更之后,很多的点都要来改。[/quote] 那就做个包,把可以封装的都封装起来咯
yuppy 2013-09-13
  • 打赏
  • 举报
回复
引用 2 楼 gioh0022 的回复:
物化视图就是为了给这类问题来提升性能的吧
其实现在这个查询,性能都不是问题。关键是维护问题。统计逻辑有变更之后,很多的点都要来改。
yuppy 2013-09-13
  • 打赏
  • 举报
回复
引用 1 楼 u010412956 的回复:
物化视图呢?
还是谢谢了。
yuppy 2013-09-13
  • 打赏
  • 举报
回复
因为需要即时的查询,物化视图可能不太满足需求。
引用 1 楼 u010412956 的回复:
物化视图呢?
  • 打赏
  • 举报
回复
物化视图就是为了给这类问题来提升性能的吧
u010412956 2013-09-13
  • 打赏
  • 举报
回复
物化视图呢?

17,088

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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