大神帮忙优化下这个查询语句,数据库:Oracle,语句如下
0
这个是ORACLE的一个查询语句
select * from
(
select * from t1
left t2
......
left t10
union all
select * from t1
left t2
......
left t5
) ta
where ta----条件
因为报表平台的限制,只能添加一个时间筛选,所以需要把两个表union起来,然后在大表外查询,但是这样很慢,我测试了,如果不用外面这个嵌套,把条件放到里面的两个表取,就会比较快!能有大神帮忙分析下吗?里面有一张表上亿的数据;
不知道各位大神有没有想过嵌套之类的查询时间的计算相关的知识,求指教!
select * from
(
select * from t1
left t2
......
left t10
union all
select * from t1
left t2
......
left t5
) ta
where ta----条件
因为报表平台的限制,只能添加一个时间筛选,所以需要把两个表union起来,然后在大表外查询,但是这样很慢,我测试了,如果不用外面这个嵌套,把条件放到里面的两个表取,就会比较快!能有大神帮忙分析下吗?里面有一张表上亿的数据;
不知道各位大神有没有想过嵌套之类的查询时间的计算相关的知识,求指教!
没有找到相关结果
重要提示:提问者不能发表回复,可以通过评论与回答者沟通,沟通后可以通过编辑功能完善问题描述,以便后续其他人能够更容易理解问题.
3 个回复
seng - 从事BI、大数据、数据分析工作 2015-10-14 回答
赞同来自: xiaob786
自己写的语句就把条件放到union all的每个语句里面把。
如果使用bi工具的修改逻辑层(如OBIEE设置多个数据源),也可以优化的。
老头子 - 专注是唯一的捷径 2015-10-14 回答
赞同来自:
悟 - 取是能力,舍是境界 2015-10-15 回答
赞同来自:
其次,真如你的示例的SQL所示的表都是相同的话,两个SQL是可以合并的,在select 部分做些数据的分别处理,这样应该会好很多。