ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 使用PROGRAM GLOBAL AREA

使用PROGRAM GLOBAL AREA

原创 Linux操作系统 作者:yxg0313 时间:2008-03-27 14:09:56 0 删除 编辑
一、PGA组件

1、  SQL工作区(位图合并区域,创建位图区域,散列区域,排序区域)

2、  会话数据(用户数据,连接数据)

3、  私有SQL区域(包含运行时区域和持久性区域)

 

二、PGA配置

1、  专用服务器模式:这种模式具有专门为一个用户进程服务的ORACLE数据库服务器。它是默认的服务器模式。

2、  共享服务器模式:正式的名称是MTS(多线程服务器),这种模式具有ORACLE数据库服务器,或者处理网络上的所有用户进程请求的服务器。

三、ADVICE功能

    select * from v$pga_target_advice;

四、PGA诊断

1、v$process

进程使用和分配的PGA内存情况

select decode(background,1,(select name from v$bgprocess where paddr=p.addr),'user') process,pga_used_mem,pga_alloc_mem,pga_max_mem from v$process p order by 2;

后台进程与用户进程使用的内存汇总

select decode(background,1,'background','user') process,count(*) processes_count ,sum(pga_used_mem)/1024/1024 used,sum(pga_alloc_mem)/1024/1024 alloc,sum(pga_freeable_mem)/1024/1024 free,sum(pga_max_mem)/1024/1024 max from v$process group by decode(background,1,'background','user');

1       background        8          9.36958599090576   26.3917770385742         0                31.1417770385742

2       user            393       1190.42155456543          1588.58399963379    132.6875        2284.87432098389

2、v$sql_workarea

执行数量和每种类型操作使用的内存

select operation_type,count(*),sum(estimated_optimal_size),sum(total_executions) from v$sql_workarea group by operation_type;

正在使用临时段的会话及这些会话段当前使用的空间数量

select s.username,sw.operation_type,sw.tablespace,sw.tempseg_size/1024/1024 size_in_mb from v$sql_workarea_active sw,v$session s where s.sid=sw.sid;

所有会话以及每一个会话是哟内的工作区空间数量

select s.username,sw.operation_type,sw.actual_mem_used/1024 used_in_kb from v$sql_workarea_active sw,v$session s where sw.sid=s.sid order by sw.actual_mem_used desc;

五、PGA统计

select name,value,unit from v$pgastat;

select name workarea_execution,round(value/((select sum(value) from v$sysstat where name like '%workarea executions%'))*100) pct from v$sysstat where name like '%workarea executions%';

六排序

排序操作:unique distict orderby group by connect by create index union minus intersect

磁盘的排序率应该控制在5%以内

select disk.value disk ,mem.value memory,round((disk.value/mem.value)*100 ,2) sort_ratio from v$sysstat disk ,v$sysstat mem where disk.name='sorts (disk)' and mem.name='sorts (memory)';

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10756358/viewspace-218015/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2008-03-06

  • 博文量
    34
  • 访问量
    45127