如何提高oracle视图的查询速度?
用sql建立了一个视图,把oracle中的26个表连接(union)来了,浏览视图发现有点慢,但是整体数据量不是特别大,大概67w吧,有木有优化的办法啊?...
用sql建立了一个视图,把oracle中的26个表连接(union)来了,浏览视图发现有点慢,但是整体数据量不是特别大,大概67w吧,有木有优化的办法啊?
展开
6个回答
推荐于2017-07-02
展开全部
为什么要把26个表 union 起来,每个表都要查一次,太费劲了
如果经常用到这个表查询的话,可以建立一个 物化视图 materialized view ,并根据相应的字段(哪个 字段查询次数比较多),建立索引,这样查询效率会不会好些
另外,如果是按日期或者按地区等分的表,可以放在一个表中,以分区表的形式存在,查询时,只查询那个分区就可以了,你可以看一下 partition list
如果经常用到这个表查询的话,可以建立一个 物化视图 materialized view ,并根据相应的字段(哪个 字段查询次数比较多),建立索引,这样查询效率会不会好些
另外,如果是按日期或者按地区等分的表,可以放在一个表中,以分区表的形式存在,查询时,只查询那个分区就可以了,你可以看一下 partition list
展开全部
我是用的sqlserver视图是我感觉使程序的维护性更高,缺点就是占了点空间而已,比方很多的查询都差不多都是使用固定几张表联结出来的查询,如果在存储过程里每个都要自己去联接查询,那么以后要改个列或列的计算表达式要改下,那还要去找每条存储过程,改起来要太费时了吧。SQLSERVER中 感觉性能方法都一样视图只是个虚拟表,到查询的时候,我看SQL执行计划,还是重新把相关表联接起来,最终显示结果集。希望对你有帮助,期待别人讲解
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果各表数据不重复的话,可以使用union all
union会对被union起来的表做distinct操作,而union all对于被union起来的各表不做distinct操作
union会对被union起来的表做distinct操作,而union all对于被union起来的各表不做distinct操作
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
把oracle中的26个表连接(union)来了?
26个表????
强烈不建议操作。
什么数据要26个表来处理?
26个表????
强烈不建议操作。
什么数据要26个表来处理?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
添加索引 会大大增加查询速度
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |