반응형
SQL 쿼리를 사용하여 Oracle 스키마 크기를 표시하는 방법은 무엇입니까?
70개 이상의 테이블로 구성된 Oracle 스키마가 있습니다.테이블이 차지하는 HDD 공간을 표시할 수 있는 간단한 페이지를 만들고 싶습니다.SQL 쿼리로 이 값을 가져오려면 어떻게 해야 합니까?
P.S Oracle 아키텍처 버전을 입수하는 방법은 무엇입니까?
당신은 아마 원할 것입니다.
SELECT sum(bytes)
FROM dba_segments
WHERE owner = <<owner of schema>>
스키마 소유자로 로그인한 경우에도
SELECT SUM(bytes)
FROM user_segments
그러면 사용자가 소유한 개체에 할당된 공간이 테이블스페이스에 상관없이 제공됩니다.이러한 쿼리에 의해 할당된 것으로 계산되는 테이블에 빈 공간이 할당될 수 있습니다.
테이블스페이스 사용 가능한 공간 및 인덱스 없이 스키마 크기만 계산하려는 경우:
select
sum(bytes)/1024/1024 as size_in_mega,
segment_type
from
dba_segments
where
owner='<schema's owner>'
group by
segment_type;
모든 스키마에 대해
select
sum(bytes)/1024/1024 as size_in_mega, owner
from
dba_segments
group by
owner;
select T.TABLE_NAME, T.TABLESPACE_NAME, t.avg_row_len*t.num_rows from dba_tables t
order by T.TABLE_NAME asc
자세한 옵션은 http://www.dba-oracle.com/t_script_oracle_table_size.htm 을 참조하십시오.
SELECT table_name as Table_Name, row_cnt as Row_Count, SUM(mb) as Size_MB
FROM
(SELECT in_tbl.table_name, to_number(extractvalue(xmltype(dbms_xmlgen.getxml('select count(*) c from ' ||ut.table_name)),'/ROWSET/ROW/C')) AS row_cnt , mb
FROM
(SELECT CASE WHEN lob_tables IS NULL THEN table_name WHEN lob_tables IS NOT NULL THEN lob_tables END AS table_name , mb
FROM (SELECT ul.table_name AS lob_tables, us.segment_name AS table_name , us.bytes/1024/1024 MB FROM user_segments us
LEFT JOIN user_lobs ul ON us.segment_name = ul.segment_name ) ) in_tbl INNER JOIN user_tables ut ON in_tbl.table_name = ut.table_name ) GROUP BY table_name, row_cnt ORDER BY 3 DESC;``
위의 쿼리는 특정 사용자의 Table_name, Row_count, Size_in_MB(lob 열 크기 포함)를 제공합니다.
SELECT DS.TABLESPACE_NAME, SEGMENT_NAME, ROUND(SUM(DS.BYTES) / (1024 * 1024)) AS MB
FROM DBA_SEGMENTS DS
WHERE SEGMENT_NAME IN (SELECT TABLE_NAME FROM DBA_TABLES) AND SEGMENT_NAME='YOUR_TABLE_NAME'
GROUP BY DS.TABLESPACE_NAME, SEGMENT_NAME;
언급URL : https://stackoverflow.com/questions/9671219/how-to-display-oracle-schema-size-with-sql-query
반응형
'programing' 카테고리의 다른 글
Mongoose 인덱스를 만들지 않음 (0) | 2023.06.23 |
---|---|
c에서 구조 요소의 간격띄우기 찾기 (0) | 2023.06.18 |
표에 SELECT 1이 있는 이유는 무엇입니까? (0) | 2023.06.18 |
최소 두 개의 날짜를 선택합니다. (0) | 2023.06.18 |
다중 처리 - 파이프 대 대기열 (0) | 2023.06.18 |