技术开发 频道

Oracle性能优化之优化排序操作

  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、将临时表空间文件分散到多个磁盘上

0
相关文章