当发现Oracle的Order by严重的影响了SQL性能,我们该怎么办?

时间:2024-04-06 12:44:34

原因分析:由于内存区域不够,Oracle 使用磁盘的内存空间进行排序操作,这样就导致了I/O影响SQL性能

解决方式:

1.在排序字段上加索引,但是这个对性能的提升不明显,因为排序是在返回的结果集中完成。

2.可以尝试配置PGA,使其进行自动管理这块内存区域,让Oracle的排序在内存中完成。

不用重启DB,直接在线修改。

SQL>alter system set workarea_size_policy=auto scope=both;

System altered.

SQL>alter system set pga_aggregate_target=512m scope=both;

System altered.

SQL>show parameter workarea --这样查看设置结果

SQL>show parameter pga

当发现Oracle的Order by严重的影响了SQL性能,我们该怎么办?