长春招聘律师:Oracle性能优化之优化排序操作
来源:百度文库 编辑:九乡新闻网 时间:2024/05/17 01:02:28
概念
服务器首先在sort_area_size指定大小的内存区域里排序,如果所需的空间超过sort_area_size,排序会在临时表空间里进行。在专用服务器模式下,排序空间在PGA中,在共享服务器模式下,排序空间在UGA中。如果没有建立large pool,UGA处于shared pool中,如果建立了large pool,UGA就处于large pool中,而PGA不在sga中,它是与每个进程对应单独存在的。
PGA:program global area,为单个进程(服务器进程或后台进程)保存数据和控制信息的内存区域。PGA与进程一一对应,且只能被起对应的进程读写,PGA在用户登录数据库创建会话的时候建立。
有关排序空间自动管理的两个参数:
Pga_aggregate_target: 10M-4000G,等于分配给oracle instance的所有内存减去SGA后的大小。
Workarea_size_policy: auto/manual,只有Pga_aggregate_target已定义时才能设置为auto。
这两个参数会取代所有的*_area_size参数。
措施:
尽可能避免排序;尽可能在内存中排序;分配合适的临时空间以减少空间分配调用。
2、需要进行排序的操作:
A、创建索引;
B、涉及到索引维护的并行插入
C、order by或者group by(尽可能对索引字段排序)
D、Distinct
E、union/intersect/minus
F、sort-merge join
G、analyze命令(仅可能使用estamate而不是compute)
3、诊断和措施
Select * from v$sysstat where name like ‘%sort%’;
Sort(disk):要求Io去临时表空间的排序数目
Sort(memory):完全在memory中完成的排序数目
Sort(rows):被排序的行数合计
Sort(disk)/ Sort(memory)<5%,如果超过5%,增加sort_area_size的值。
SELECT disk.Value disk,mem.Value mem,(disk.Value/mem.Value)*100 ratio FROM v$sysstat disk,v$sysstat mem WHERE mem.NAME='sorts (memory)' AND disk.NAME='sorts (disk)';
4、监控临时表空间的使用情况及其配置
Select tablespace_name,current_users,total_extents,used_extents,extent_hits,max_used_blocks,max_sort_blocks FROM v$sort_segment ;
Column
Description
CURRENT_USERS
Number of active users
TOTAL_EXTENTS
Total number of extents
USED_EXTENTS
Extents currently allocated to sorts
EXTENT_HITS
Number of times an unused extent was found in the pool
MAX_USED_BLOCKS
Maximum number of used blocks
MAX_SORT_BLOCKS
Maximum number of blocks used by an individual sort
临时表空间的配置:
A、initial/next设置为sort_area_size的整数倍,允许额外的一个block作为segment的header
B、pctincrease=0
C、基于不同的排序需要建立多个临时表空间
D、将临时表空间文件分散到多个磁盘上
服务器首先在sort_area_size指定大小的内存区域里排序,如果所需的空间超过sort_area_size,排序会在临时表空间里进行。在专用服务器模式下,排序空间在PGA中,在共享服务器模式下,排序空间在UGA中。如果没有建立large pool,UGA处于shared pool中,如果建立了large pool,UGA就处于large pool中,而PGA不在sga中,它是与每个进程对应单独存在的。
PGA:program global area,为单个进程(服务器进程或后台进程)保存数据和控制信息的内存区域。PGA与进程一一对应,且只能被起对应的进程读写,PGA在用户登录数据库创建会话的时候建立。
有关排序空间自动管理的两个参数:
Pga_aggregate_target: 10M-4000G,等于分配给oracle instance的所有内存减去SGA后的大小。
Workarea_size_policy: auto/manual,只有Pga_aggregate_target已定义时才能设置为auto。
这两个参数会取代所有的*_area_size参数。
措施:
尽可能避免排序;尽可能在内存中排序;分配合适的临时空间以减少空间分配调用。
2、需要进行排序的操作:
A、创建索引;
B、涉及到索引维护的并行插入
C、order by或者group by(尽可能对索引字段排序)
D、Distinct
E、union/intersect/minus
F、sort-merge join
G、analyze命令(仅可能使用estamate而不是compute)
3、诊断和措施
Select * from v$sysstat where name like ‘%sort%’;
Sort(disk):要求Io去临时表空间的排序数目
Sort(memory):完全在memory中完成的排序数目
Sort(rows):被排序的行数合计
Sort(disk)/ Sort(memory)<5%,如果超过5%,增加sort_area_size的值。
SELECT disk.Value disk,mem.Value mem,(disk.Value/mem.Value)*100 ratio FROM v$sysstat disk,v$sysstat mem WHERE mem.NAME='sorts (memory)' AND disk.NAME='sorts (disk)';
4、监控临时表空间的使用情况及其配置
Select tablespace_name,current_users,total_extents,used_extents,extent_hits,max_used_blocks,max_sort_blocks FROM v$sort_segment ;
Column
Description
CURRENT_USERS
Number of active users
TOTAL_EXTENTS
Total number of extents
USED_EXTENTS
Extents currently allocated to sorts
EXTENT_HITS
Number of times an unused extent was found in the pool
MAX_USED_BLOCKS
Maximum number of used blocks
MAX_SORT_BLOCKS
Maximum number of blocks used by an individual sort
临时表空间的配置:
A、initial/next设置为sort_area_size的整数倍,允许额外的一个block作为segment的header
B、pctincrease=0
C、基于不同的排序需要建立多个临时表空间
D、将临时表空间文件分散到多个磁盘上
Oracle性能优化之优化排序操作
Oracle性能优化之Rollback(undo)Segment优化 - 建站学
Oracle DBA优化数据库性能心得体会。
ORACLE SQL性能优化系列--(7)
ORACLE SQL性能优化系列--(9)
MongoDB性能优化之连接优化
jQuery性能优化指南
Asp.Net性能优化
网站性能优化
对oracle实例的内存(SGA和PGA)进行调整,优化数据库性能
IE8性能优化白皮书中文版
jdbc优化[手工原创] java oracle - DAO
SEO优化之整站优化技巧
Openlaszlo应用初始化性能优化过程
Hibernate批量处理的性能优化问题
12种jQuery代码性能优化方法
浅谈Qt Embedded的性能优化
MongoDB性能优化十大指标
IIS性能优化,为Web减轻负担
[python]用profile协助程序性能优化
AMD主板磁盘性能优化方法
集成显卡优化之葵花宝典
Oracle数据库在统计页面的优化实例 - 建站学
Oracle语句优化53个规则详解11