기존 테이블스페이스의 MAXSIZE를 결정하는 방법
제가 판단해야 할 것은MAXSIZE생성시 테이블스페이스로 설정되어 있던 것 (오라클 10g)
제가 뭔가 명백한 것을 놓치고 있다고 확신합니다만, 그 정보는 즉시 정보에 나타나지 않습니다.DBA_TABLESPACES.
11g에서는 이 쿼리가 답을 알려주겠지만 10g에 있고 유용한 열이 누락되어 있다는 것을 알게 되었습니다.
select tablespace_name, max_size
from dba_tablespaces
/
10g 안에 당신은 해야할 것입니다.
select tablespace_name
, initial_extent + (next_extent * (max_extents-1)) as calc_max_size
from dba_tablespaces
/
기본 최대 크기입니다.실제로 테이블스페이스에 할당된 데이터 파일의 크기에 따라 제한을 받게 되며, 이는 이론적 최대치보다 훨씬 적을 수 있습니다.
편집하다
@폴의 발언은 타당합니다.제 생각에 정확한 답은 테이블 스페이스의 최대 크기는 무의미하고, 정말로 거의 허구적인 개념이라고 말하는 것입니다.테이블스페이스의 크기는 실제로 해당 데이터 파일에 의해 결정되며 잠재적인 최대 크기는 할당할 수 있는 최대 데이터 파일 수에 의해 결정됩니다.SQL Reference에서는 이 주제에 대해 다음과 같이 말합니다.
- 빅 파일 테이블 공간에는 최대 약 40억(232개)의 블록을 포함할 수 있는 데이터 파일 또는 임시 파일이 하나만 포함됩니다.단일 데이터 파일 또는 임시 파일의 최대 크기는 32K 블록이 있는 테이블 공간의 경우 128TB(TB)이고 8K 블록이 있는 테이블 공간의 경우 32TB입니다.
- 작은 파일 테이블 공간은 기존 Oracle 테이블 공간으로, 1022개의 데이터 파일 또는 임시 파일을 포함할 수 있으며, 각 파일은 약 400만 개([2에서 22]의 힘)의 블록을 포함할 수 있습니다.
그래서 아마도 이것이 더 유용한 질문일 것입니다.
select tablespace_name
, count(*) as no_of_data_files
, sum(maxblocks) as max_size
from dba_data_files
group by tablespace_name
/
...현재 할당된 데이터 파일에만 적용된다는 점에 유의해야 합니다.
편집2
MAXSIZE는 테이블스페이스가 아닌 데이터 파일에 적용됩니다.그렇기 때문에 MAXSIZE 키워드는 CREATE TABLESPACE가 아닌 filespec 절에 대한 설명서에서 논의됩니다.
이 모든 것은 데이터 파일이 자동 확장 가능한지 여부에 달려 있습니다.
따라서 DBA로부터 올바른 정보를 얻을 수 있습니다.DATA_FILES:
AUTOEXTENSIVEL이 YES로 설정되어 있으면 MAXBYTE의 총 합계가 필요합니다.
AUTOEXTIBLE이 NO로 설정되어 있으면 바이트의 총합이 필요합니다.
DBA에서 MAX_SIZE_TABLESPACE는 테이블스페이스 자체의 최대 크기와는 무관합니다.Oracle 문서에 따르면 다음과 같습니다.
"세그먼트의 기본 최대 크기"
따라서 올바른 질문은 다음과 같습니다.
select TABLESPACE_NAME, sum(decode(AUTOEXTENSIBLE, 'YES', MAXBYTES, BYTES)) MAX_SIZE
from DBA_DATA_FILES
group by TABLESPACE_NAME;
이것은 11g에서 테스트가 완료되었지만 10g에서도 작동할 것입니다.각 테이블스페이스의 최대 크기를 바이트 단위로 제공합니다.
TEMP 테이블스페이스에 대해서도 마찬가지입니다.
select TABLESPACE_NAME, sum(decode(AUTOEXTENSIBLE, 'YES', MAXBYTES, BYTES)) MAX_SIZE
from DBA_TEMP_FILES
group by TABLESPACE_NAME;
최대 크기는 dba_data_files 속성입니다.
dba_data_files에서 tablespace_name, maxbytes/1024/1024 MAX_SIZE 선택;
select tablespace_name, round(sum(bytes)/1024/1024, 2) as free_space from dba_free_space group by tablespace_name;
언급URL : https://stackoverflow.com/questions/2364024/how-to-determine-maxsize-of-existing-tablespace
'programing' 카테고리의 다른 글
| UI 탐색 모음 - 제목을 프로그래밍 방식으로 설정하시겠습니까? (0) | 2023.09.09 |
|---|---|
| 하나의 SqlCommand를 사용하여 레코드를 삽입하고 새로 생성된 ID를 반환하는 방법? (0) | 2023.09.09 |
| HTML div 태그의 테두리를 설정하는 방법 (0) | 2023.09.09 |
| jquery, 클래스별로 다음 요소 찾기 (0) | 2023.09.09 |
| 타임리프, 프래그먼트 및 기본 파라미터 (0) | 2023.09.09 |