修改默认的临时表空间注意:
修改不受影响,如果当前正在使用老的TEMPSPACE,就继续使用,但是新的使用临时段的就使用新的TEMPSPACE,
如果你要删除老的TEMPSPACE,并且正在被使用那么删除操作会一直等待直到排序完成
等待事件为
enq: TS - contention
这个时候通过语句
SELECT se.username username,
se.SID sid,
se.serial# serial#,
se.status status,
se.sql_hash_value,
se.prev_hash_value,
se.machine machine,
su.TABLESPACE tablespace,
su.segtype,
su.CONTENTS CONTENTS
FROM v$session se,
v$sort_usage su
WHERE se.saddr=su.session_addr;
来KILL掉还在使用老的的临时表空间的会话,通过tablespace可以看出
所以删除前最好确认没有正在使用需要删除的临时表空间,通过
SQL> select * from v$sort_usage;
USERNAME USER SESSION_ADDR SESSION_NUM SQLADDR SQLHASH SQL_ID TABLESPACE CONTENTS SEGTYPE SEGFILE# SEGBLK# EXTENTS BLOCKS SEGRFNO#
------------------------------ ------------------------------ ---------------- ----------- ---------------- ---------- ------------- ------------------------------- --------- --------- ---------- ---------- ---------- ---------- ----------
SYS SYS 000007FF5E503150 39 000007FF5D7FA850 356401299 9m7787camwh4m TEMP5 TEMPORARY SORT 203 9 500 64000 1
SYS SYS 000007FF5E4EC568 6 000007FF5D7FA850 356401299 9m7787camwh4m TEMP6 TEMPORARY SORT 204 9 6 768 1
SQL> select * from v$sort_segment;
TABLESPACE_NAME SEGMENT_FILE SEGMENT_BLOCK EXTENT_SIZE CURRENT_USERS TOTAL_EXTENTS TOTAL_BLOCKS USED_EXTENTS USED_BLOCKS FREE_EXTENTS FREE_BLOCKS ADDED_EXTENTS EXTENT_HITS FREED_EXTENTS FREE_REQUESTS MAX_SIZE MAX_BLOCKS MAX_USED_SIZE MAX_USED_BLOCKS MAX_SORT_SIZE MAX_SORT_BLOCKS RELATIVE_FNO
------------------------------- ------------ ------------- ----------- ------------- ------------- ------------ ------------ ----------- ------------ ----------- ------------- ----------- ------------- ------------- ---------- ---------- ------------- --------------- ------------- --------------- ------------
TEMP5 0 0 128 1 593 75904 593 75904 0 0 593 0 0 0 593 75904 593 75904 593 75904 0
TEMP6 0 0 128 1 141 18048 141 18048 0 0 141 0 0 0 141 18048 141 18048 141 18048 0
确定老的没有使用了才删除。
修改不受影响,如果当前正在使用老的TEMPSPACE,就继续使用,但是新的使用临时段的就使用新的TEMPSPACE,
如果你要删除老的TEMPSPACE,并且正在被使用那么删除操作会一直等待直到排序完成
等待事件为
enq: TS - contention
这个时候通过语句
SELECT se.username username,
se.SID sid,
se.serial# serial#,
se.status status,
se.sql_hash_value,
se.prev_hash_value,
se.machine machine,
su.TABLESPACE tablespace,
su.segtype,
su.CONTENTS CONTENTS
FROM v$session se,
v$sort_usage su
WHERE se.saddr=su.session_addr;
来KILL掉还在使用老的的临时表空间的会话,通过tablespace可以看出
所以删除前最好确认没有正在使用需要删除的临时表空间,通过
SQL> select * from v$sort_usage;
USERNAME USER SESSION_ADDR SESSION_NUM SQLADDR SQLHASH SQL_ID TABLESPACE CONTENTS SEGTYPE SEGFILE# SEGBLK# EXTENTS BLOCKS SEGRFNO#
------------------------------ ------------------------------ ---------------- ----------- ---------------- ---------- ------------- ------------------------------- --------- --------- ---------- ---------- ---------- ---------- ----------
SYS SYS 000007FF5E503150 39 000007FF5D7FA850 356401299 9m7787camwh4m TEMP5 TEMPORARY SORT 203 9 500 64000 1
SYS SYS 000007FF5E4EC568 6 000007FF5D7FA850 356401299 9m7787camwh4m TEMP6 TEMPORARY SORT 204 9 6 768 1
SQL> select * from v$sort_segment;
TABLESPACE_NAME SEGMENT_FILE SEGMENT_BLOCK EXTENT_SIZE CURRENT_USERS TOTAL_EXTENTS TOTAL_BLOCKS USED_EXTENTS USED_BLOCKS FREE_EXTENTS FREE_BLOCKS ADDED_EXTENTS EXTENT_HITS FREED_EXTENTS FREE_REQUESTS MAX_SIZE MAX_BLOCKS MAX_USED_SIZE MAX_USED_BLOCKS MAX_SORT_SIZE MAX_SORT_BLOCKS RELATIVE_FNO
------------------------------- ------------ ------------- ----------- ------------- ------------- ------------ ------------ ----------- ------------ ----------- ------------- ----------- ------------- ------------- ---------- ---------- ------------- --------------- ------------- --------------- ------------
TEMP5 0 0 128 1 593 75904 593 75904 0 0 593 0 0 0 593 75904 593 75904 593 75904 0
TEMP6 0 0 128 1 141 18048 141 18048 0 0 141 0 0 0 141 18048 141 18048 141 18048 0
确定老的没有使用了才删除。