walkuere 2023-07-27 09:12 采纳率: 55.6%
浏览 6
已结题

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

  • 写回答

2条回答 默认 最新

  • 喝茶品人生 2023-07-27 14:41
    关注

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

    本回答被专家选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 8月10日
  • 专家已采纳回答 8月2日
  • 修改了问题 7月27日
  • 修改了问题 7月27日
  • 展开全部

悬赏问题

  • ¥15 孟德尔随机化结果不一致
  • ¥20 求用stm32f103c6t6在lcd1206上显示Door is open和password:
  • ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
  • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
  • ¥15 谁有desed数据集呀
  • ¥20 手写数字识别运行c仿真时,程序报错错误代码sim211-100
  • ¥15 关于#hadoop#的问题
  • ¥15 (标签-Python|关键词-socket)
  • ¥15 keil里为什么main.c定义的函数在it.c调用不了
  • ¥50 切换TabTip键盘的输入法