반응형
단일 쿼리에서 모든 테이블 공간 이름, 할당된 크기, 여유 크기, 용량을 가져오는 방법?
데이터베이스의 모든 테이블 영역에 대한 정보를 아래 형식으로 가져오려면 어떻게 해야 합니까?
TABLESPACE_NAME | FILE_NAME | ALLOCATED_MB | FREE_MB | CAPACITY |
모든 테이블 공간의 일별 크기를 다른 테이블에 자동으로 저장하는 방법이 있습니까?사실 나는 매일 테이블 공간에 대한 체크리스트를 준비해야 합니다.따라서 매일 테이블 공간 크기에 대한 정보를 저장하는 테이블을 기준으로 자동으로 테이블 공간 크기 세부 정보를 이메일로 보내는 프런트 엔드를 생성하고 싶지 않습니다.
아래 쿼리를 사용하여 Oracle에서 모든 테이블스페이스 세부 정보를 가져옵니다.DBA 테이블에 액세스하는 데 필요한 권한이 있다고 가정합니다.
SELECT a.file_name,
substr(A.tablespace_name,1,14) tablespace_name,
trunc(decode(A.autoextensible,'YES',A.MAXSIZE-A.bytes+b.free,'NO',b.free)/1024/1024) free_mb,
trunc(a.bytes/1024/1024) allocated_mb,
trunc(A.MAXSIZE/1024/1024) capacity,
a.autoextensible ae
FROM (
SELECT file_id, file_name,
tablespace_name,
autoextensible,
bytes,
decode(autoextensible,'YES',maxbytes,bytes) maxsize
FROM dba_data_files
GROUP BY file_id, file_name,
tablespace_name,
autoextensible,
bytes,
decode(autoextensible,'YES',maxbytes,bytes)
) a,
(SELECT file_id,
tablespace_name,
sum(bytes) free
FROM dba_free_space
GROUP BY file_id,
tablespace_name
) b
WHERE a.file_id=b.file_id(+)
AND A.tablespace_name=b.tablespace_name(+)
ORDER BY A.tablespace_name ASC;
Select a.tablespace_name,a.file_name,a.bytes/1024/1024 TABLESPACE_SIZE_MB,
Sum(b.bytes)/1024/1024 FREE_IN_MB from dba_free_space b,dba_data_files a
Where a.tablespace_name = b.tablespace_name
AND a.file_id = b.file_id
GROUP by a.tablespace_name, a.file_name,a.bytes/1024/1024
Order by a.tablespace_name, a.file_name;
이 쿼리를 실행하면 도움이 될 수 있습니다.
위 내용이 유용합니다.이것이 여기에도 도움이 되기를 바랍니다.
https://ora-data.blogspot.in/2016/12/how-to-find-details-of-tablespace.html
다른 명령을 사용하여 테이블스페이스 세부사항을 확인합니다. 위 명령이 작동하지 않을 수 있습니다.
SQL>select round((bytes/1024)/1024,0) "Used Space(MB)",
round(total,0) "Allocated size(MB)",
round(max,0) "Maximum allowable(MB)",
round(max-(BYTES/1024)/1024,0) "Effective free(MB)",
round(((max-(BYTES/1024)/1024)/max)*100,2) "FREE(%)"
from SYS.SM$TS_USED,
(select sum((BYTES/1024)/1024) total, sum((decode(MAXBYTES,0,bytes,maxbytes)/1024)/1024) max
from dba_data_files where tablespace_name='&1') where tablespace_name='&1';
Oracle에서는 아래 링크를 참조하십시오.
https://forums.oracle.com/thread/2160787
COLUMN TABLE_NAME FORMAT A32
COLUMN OBJECT_NAME FORMAT A32
COLUMN OWNER FORMAT A10
SELECT
owner, table_name, TRUNC(sum(bytes)/1024/1024) Meg
FROM
(SELECT segment_name table_name, owner, bytes
FROM dba_segments
WHERE segment_type = 'TABLE'
UNION ALL
SELECT i.table_name, i.owner, s.bytes
FROM dba_indexes i, dba_segments s
WHERE s.segment_name = i.index_name
AND s.owner = i.owner
AND s.segment_type = 'INDEX'
UNION ALL
SELECT l.table_name, l.owner, s.bytes
FROM dba_lobs l, dba_segments s
WHERE s.segment_name = l.segment_name
AND s.owner = l.owner
AND s.segment_type = 'LOBSEGMENT'
UNION ALL
SELECT l.table_name, l.owner, s.bytes
FROM dba_lobs l, dba_segments s
WHERE s.segment_name = l.index_name
AND s.owner = l.owner
AND s.segment_type = 'LOBINDEX')
WHERE owner in UPPER('&owner')
GROUP BY table_name, owner
HAVING SUM(bytes)/1024/1024 > 10 /* Ignore really small tables */
ORDER BY SUM(bytes) desc
;
SQL에서 아래 참조
언급URL : https://stackoverflow.com/questions/19240276/how-to-get-all-table-space-name-allocated-size-free-size-capacity-from-single
반응형
'programing' 카테고리의 다른 글
NSSortDescriptor를 사용하여 배열을 정렬합니다. (0) | 2023.09.10 |
---|---|
필드를 com.sun.proxy로 설정할 수 없습니다.$프록시 (0) | 2023.09.10 |
두 데이터 프레임 간의 차이 찾기 (0) | 2023.09.05 |
부트스트랩 4에서 드롭다운의 화살표를 제거하는 방법은 무엇입니까? (0) | 2023.09.05 |
PowerShell에서 데이터 세트를 순환하려면 어떻게 해야 합니까? (0) | 2023.09.05 |