1번에 대한 답변:::::
SELECT name, phyrds, phywrts
FROM v$datafile df , v$filestat fs
WHERE df.file# = fs.file#
2번에 대한 답변:::::
연속된 공간으로 사용됩니다. 하지만 테이블이 하나가 아니고 보통 많이
생성 되어지므로 balancing이 안맞을 수가 있습니다.그 때 큰 테이블의
extent를 다른 곳으로 수동으로 stripe시켜 줄수가 있습니다.
alter table TEST allocate extent
( datafile '/d02/oracle/DEV/data_1b.dbf');
3번에 대한 답변:::::
수동으로 하는 방법은
ALTER TABLESPACE <tablespace name> COALESCE;
입니다.
보통 user별로 export받아서 import하는 방법을 많이 씁니다.
temp성의 table은 한번씩 truncate시켜 주시면 좋겠죠.
확장 방법과 체크 sql을 올려드리도록 하겠습니다.
ALTER TABLESPACE <tablespace name> ADD DATAFILE '<full path and file
name>' SIZE <integer> <k|m> ;
ALTER <segment_type> <segment_name> STORAGE ( next <integer> <k|m>
pctincrease <integer>);
ALTER DATABASE DATAFILE '<full path and file name>' RESIZE <integer>
<k|m>
select tablespace_name, sum(bytes) sum, max(bytes) max, count(*) count
FROM dba_free_space
WHERE tablespace_name = '<tablespace name>';
select tablespace_name, owner, segment_name, segment_type, next_extent
from dba_segments
where tablespace_name in ('<tablespace_name','...')
and next_extent = <no_of_bytes>;
select seg.tablespace_name
,seg.owner
,seg.segment_name
,seg.segment_type
,seg.next_extent
from dba_segments seg
,(select tablespace_name, max(bytes) max
from dba_free_space
group by tablespace_name) free
where seg.tablespace_name = free.tablespace_name
and seg.next_extent > free.max
order by tablespace_name,owner,segment_type,segment_name;
SELECT next_extent, pct_increase
FROM dba_tables
WHERE table_name = '<table name>' AND owner = '<owner>';
도움이 된지 모르겠습니다.
laalaal~
|