发表于: 2008.07.23 14:42
分类: @EBS
出处: http://2jliu.itpub.net/post/21805/467190
---------------------------------------------------------------
sort_area_size是当查询需要排序的时候,数据库会话将使用这部分内存进行排序,当内存大小不足的时候,使用临时表空间进行磁盘排序。由于磁盘排序效率和内存排序效率相差好几个数量级,所以这个参数的设置很重要。
当出现大量排序时的磁盘I/O操作时,可以考虑增加sort_area_size的值。sort_area_size是Oracle用于一次排序所需的最大内存数,在排序结束但是结果列返回之前,Oracle会释放sort_area_size大小的内存,但是会保留sort_area_retained_size大小的内存,知道最后一行结果列返回以后,才释放所有的内存。
会导致排序的语句有 Select DISTINCT , MINUS , INTERSECT , UNION 和 min()、max()、count() 操作;而不会导致排序的语句有 Update , 带BETWEEN子句的Select 等等。
监控内存和硬盘的排序比率,最好使它小于 .10,增sort_area_size
Select name, value FROM v$sysstat Where name IN ('sorts (memory)', 'sorts (disk)');
sorts (memory) 59310076
sorts (disk) 4789











