oracle400多条数据排序之后十几分钟不出来怎么办

oracle的版本是11.2.0.4

查询结果是由两个结果union all 组成的
其中一个比较复杂
把两个结果做了视图
如果select的话是秒出的,如果order by的话,第一个表8秒出,160多条数据,第二个表36秒出,260多条数据
加起来400多条数据,列也就十二个左右,order by 三个列排序
按理400多条数据,客户端排序也应该很快
但是我现在
select * from view1
union all select * from view2
也就44秒出来了,但是我如果
select * from (select * from view 1 union all select * from view2) order by col1,col2,col3
那就一百分钟分钟都不出来,但是同样的数量,在测试环境就7秒直接出来了

网上查了很久,show parameter看不到,但还是修改了work_area_size这类,

那个是生产环境,重启是不可能重启的,也就设置一些参数,用的deferr,重新开了plsql

代码是你们dba写的?TL看到这种代码逻辑没说什么?order by如果你了解TSQL执行顺序的话也很容易弄清楚逻辑,光查询慢还是查询前做了排序慢?无疑后者更费时,并且也不是楼上说到的光改个索引就能解决的,要么你从根本上利用分区表优化代码,要么重新捋清楚代码逻辑重新写,不然数据越积越多,相信我到达100G的时候你们业务部门会经常找你们麻烦的

你直接UNION ALL肯定会很快,不需要额外的排序,但是如果你UNION ALL之后再排序就会相对慢点,这几个排序字段有索引吗