--找到当前进程的SID
select sid from v$mystat where rownum=1;
--查看执行目标语句之前的PGA/UGA使用情况, Direct temp使用情况。Direct temp使用次数多的话,说明对临时文件读取频繁
select * from v$statname a,v$sesstat b
where a.statistic#=b.statistic#
and b.sid=52
and (a.name like '%ga memory%' or a.name like '%direct temp%')
--记录当前的结果,然后执行目标语句
select * from ra_customer_trx_all order by creation_date desc
--然后在此查看内存使用语句
select * from v$statname a,v$sesstat b
where a.statistic#=b.statistic#
and b.sid=52
and (a.name like '%ga memory%' or a.name like '%direct temp%')
--观测结果, 如果"physical reads/writes direct temporary tablespace"使用次数很大,那么就采取增加pga的方式,然后再次调试
SQL>show parameters sort_area_size;
SQL>alter session set sort_area_size=1074741800 --1G
SQL>show parameters sort_area_size;
--再次执行排序语句,以及查看结果
-----------------------------------------------------------------
当然,还有更加不错的选择,让数据库系统自动把握,在合适的时间使用合适的内存
show parameter workarea_size_policy; -- 需要设置为auto
show parameter pga_aggregate_target; -- PGA使用的总内存
show parameter memory_target; -- 或者是SGA和PGA的总量 2G
select sid from v$mystat where rownum=1;
--查看执行目标语句之前的PGA/UGA使用情况, Direct temp使用情况。Direct temp使用次数多的话,说明对临时文件读取频繁
select * from v$statname a,v$sesstat b
where a.statistic#=b.statistic#
and b.sid=52
and (a.name like '%ga memory%' or a.name like '%direct temp%')
--记录当前的结果,然后执行目标语句
select * from ra_customer_trx_all order by creation_date desc
--然后在此查看内存使用语句
select * from v$statname a,v$sesstat b
where a.statistic#=b.statistic#
and b.sid=52
and (a.name like '%ga memory%' or a.name like '%direct temp%')
--观测结果, 如果"physical reads/writes direct temporary tablespace"使用次数很大,那么就采取增加pga的方式,然后再次调试
SQL>show parameters sort_area_size;
SQL>alter session set sort_area_size=1074741800 --1G
SQL>show parameters sort_area_size;
--再次执行排序语句,以及查看结果
-----------------------------------------------------------------
当然,还有更加不错的选择,让数据库系统自动把握,在合适的时间使用合适的内存
show parameter workarea_size_policy; -- 需要设置为auto
show parameter pga_aggregate_target; -- PGA使用的总内存
show parameter memory_target; -- 或者是SGA和PGA的总量 2G