programing

오라클의 테이블 수

showcode 2023. 6. 9. 22:12
반응형

오라클의 테이블 수

MySQL에 "SHOW TABLES"가 있는 것처럼 Oracle DB에서 테이블 수를 어떻게 계산합니까?약간의 연구를 통해 저는 다음과 같은 질문을 받았습니다.

select owner, count(*) from dba_tables

MySQL에 표준 명령이 있는 것처럼 Oracle에도 표준 명령이 있습니까?

시도:

SELECT COUNT(*) FROM USER_TABLES;

글쎄요, 저는 제 컴퓨터에 오라클이 없습니다. 저는 mysql을 실행합니다(OP 코멘트).

작성 당시 이 사이트는 다양한 데이터베이스 유형에서 테스트하기에 적합했습니다.

네, 당신의 질문은 확실히 작동할 것입니다. 조금만 수정하면 됩니다.참조는 여기를 참조하십시오. http://download.oracle.com/docs/cd/B19306_01/server.102/b14237/statviews_2105.htm#i1592091

실행:

SELECT TABLE_NAME FROM DBA_TABLES;

테이블 목록을 가져옵니다.

실행:

SELECT Count(*) FROM DBA_TABLES;

테이블 개수를 확인합니다.

count 선택((*) all_count_from(여기서 owner='count_name')

다음 문서에서는 데이터 사전 보기에 대해 설명합니다.

all_filename: http://docs.oracle.com/cd/B19306_01/server.102/b14237/statviews_4473.htm#REFRN26286

user_filename: http://docs.oracle.com/cd/B19306_01/server.102/b14237/statviews_2105.htm#i1592091

dba_message: http://docs.oracle.com/cd/B19306_01/server.102/b14237/statviews_4155.htm#i1627762

이러한 보기에 대한 쿼리를 실행하여 필요한 항목을 계산할 수 있습니다.

@Anurag Thakre의 답변에 무언가를 더 추가하려면:

소유자에 대한 실제 카운트 수를 제공하는 이 쿼리를 사용합니다.

SELECT COUNT(*),tablespace_name  FROM USER_TABLES group by tablespace_name;

또는 테이블 소유자별:

SELECT COUNT(*), owner  FROM ALL_TABLES group by owner;

테이블스페이스 자체는 고유한 객체 소유자를 식별하지 않습니다.여러 사용자가 동일한 테이블스페이스에 개체를 생성할 수 있으며 단일 사용자가 다양한 테이블스페이스에 개체를 생성할 수 있습니다.테이블과 인덱스를 서로 다른 테이블스페이스로 구분하는 것이 일반적입니다.

제가 사용하는 것 중 가장 간단한 것은 아래와 같습니다.

select owner, count(*) from dba_tables group by owner;

소유자 목록과 소유자당 테이블 수를 보려면 다음을 시도하십시오.

    SELECT distinct owner, count(table_name) FROM dba_tables GROUP BY owner;

특정 스키마/사용자에 속하는 테이블의 수를 알고 싶다면 다음과 유사한 SQL도 사용할 수 있습니다.

SELECT Count(*) FROM DBA_TABLES where OWNER like 'PART_OF_NAME%';
REM setting current_schema is required as the 2nd query depends on the current user referred in the session

ALTER SESSION SET CURRENT_SCHEMA=TABLE_OWNER;

SELECT table_name,
         TO_NUMBER (
            EXTRACTVALUE (
               xmltype (
                  DBMS_XMLGEN.getxml ('select count(*) c from ' || table_name)),
               '/ROWSET/ROW/C'))
            COUNT
    FROM dba_tables
   WHERE owner = 'TABLE_OWNER'
ORDER BY COUNT DESC;

테이블 소유자와 관련된 실제 카운트 수를 제공하는 이 쿼리를 사용

SELECT COUNT(*),tablespace_name  FROM USER_TABLES group by tablespace_name;
select COUNT(*) from ALL_ALL_TABLES where OWNER='<Database-name>';

.....

이 쿼리는 특정 스키마에서 카운트되는 모든 개체를 찾습니다.

select owner, object_type, count(*) from dba_objects where owner='owner_name' group by owner, object_type order by 3 desc;

언급URL : https://stackoverflow.com/questions/5062809/count-number-of-tables-in-oracle

반응형