|
select * from sys.v_$sort_segment;
---
ABLESPACE_NAME SEGMENT_FILE SEGMENT_BLOCK EXTENT_SIZE
------------------------------ ------------ ------------- -----------
URRENT_USERS TOTAL_EXTENTS TOTAL_BLOCKS USED_EXTENTS USED_BLOCKS FREE_EXTENTS
------------ ------------- ------------ ------------ ----------- ------------
REE_BLOCKS ADDED_EXTENTS EXTENT_HITS FREED_EXTENTS FREE_REQUESTS MAX_SIZE
---------- ------------- ----------- ------------- ------------- ----------
AX_BLOCKS MAX_USED_SIZE MAX_USED_BLOCKS MAX_SORT_SIZE MAX_SORT_BLOCKS
--------- ------------- --------------- ------------- ---------------
ELATIVE_FNO
TEMP 8 244977 1024
374 448 459140 374 383308 74
75832 448 976 0 0 448
459140 448 459140 1 1029
8
我详细看了你的输出,你的db_block_size是多少?现在先假设你的db_Block_size=8k
你要注意到临时段使用的一个特点,多个排序不能共享一个extent,但可以共享一个排序段,
因此可以考虑稍微减小extent大小,提高空间利用率,
从你的查询中可以看到高峰期有373个使用排序段的并发用户,最大排序块1029说明最大的排序
也不是很大,特点就是小而多,因此你不想增大temp表空间的前提下,应该提高利用率,
推荐
1.sort_area_size调大到256k,假如你内存足够,256K*400用户也不过100MB内存,更大的sort_area_size意味着更多的排序再内存中进行。
2. extent大小可以改为256k*4+1db_block_size=1032k,因为要放下header block
3.表空间改为我推荐的local managerment and temp file
4.调整后在高峰期用我给你提供的语句查询,再补充查询
SELECT * FROM V$SYSSTAT
WHERE NAME LIKE '%sort%'; |
|