Oracle & Tibero 스키마 내 객체 찾기 고급편 – 실무 활용 예제 모음

데이터베이스 운영 시 특정 객체(테이블, 컬럼, 인덱스, 뷰, 프로시저 등)를 빠르게 찾아야 할 때가 많습니다. Oracle과 Tibero는 데이터 딕셔너리 뷰를 통해 객체 검색이 가능하며, 고급 검색 기법을 활용하면 대규모 스키마에서도 원하는 객체를 손쉽게 찾을 수 있습니다. 이번 글에서는 Oracle & Tibero에서 스키마 내 객체를 찾는 실무 활용 예제를 정리합니다.

Oracle 스키마 객체 찾기 (고급편)

테이블 이름 일부로 검색

-- 테이블명에 'EMP' 포함된 객체 찾기
SELECT table_name
FROM user_tables
WHERE table_name LIKE '%EMP%';
SQL

특정 컬럼을 가진 테이블 찾기

-- 'EMAIL' 컬럼이 있는 모든 테이블 조회
SELECT table_name, column_name, data_type
FROM user_tab_columns
WHERE column_name = 'EMAIL';
SQL

인덱스/제약조건 검색

-- 특정 테이블에 걸린 인덱스 조회
SELECT index_name, uniqueness
FROM user_indexes
WHERE table_name = 'EMPLOYEES';

-- 특정 컬럼이 PK인지 확인
SELECT constraint_name, constraint_type
FROM user_constraints
WHERE table_name = 'EMPLOYEES'
AND constraint_type = 'P';
SQL

뷰/프로시저/패키지 찾기

-- 뷰 검색
SELECT view_name FROM user_views WHERE view_name LIKE '%EMP%';

-- 프로시저 검색
SELECT object_name
FROM user_procedures
WHERE object_type = 'PROCEDURE'
AND object_name LIKE '%CALC%';
SQL

💡 Oracle TIP

  • ALL_OBJECTS, DBA_OBJECTS 뷰를 활용하면 권한이 허용된 범위 전체를 검색 가능
  • 대규모 DB에서는 OBJECT_TYPE 컬럼으로 TABLE, VIEW, PROCEDURE 등 필터링하면 속도 개선

Tibero 스키마 객체 찾기 (고급편)

Tibero도 Oracle과 거의 동일한 구조의 데이터 딕셔너리 뷰를 제공합니다.

테이블 이름 일부로 검색

SELECT table_name
FROM user_tables
WHERE table_name LIKE '%ORD%';
SQL

특정 컬럼이 포함된 테이블 찾기

SELECT table_name, column_name, data_type
FROM user_tab_columns
WHERE column_name = 'PHONE';
SQL

인덱스/제약조건 검색

-- 특정 테이블의 인덱스 확인
SELECT index_name, uniqueness
FROM user_indexes
WHERE table_name = 'CUSTOMERS';

-- UNIQUE 제약조건 조회
SELECT constraint_name, constraint_type
FROM user_constraints
WHERE table_name = 'CUSTOMERS'
AND constraint_type = 'U';
SQL

프로시저/함수 찾기

SELECT object_name, object_type
FROM user_objects
WHERE object_type IN ('PROCEDURE','FUNCTION')
AND object_name LIKE '%UTIL%';
SQL

💡 Tibero TIP

  • Oracle과 거의 동일하게 동작하지만, 일부 user_procedures 뷰 컬럼이 다를 수 있으므로 user_objects를 함께 쓰는 게 안정적입니다.
  • 성능을 위해 DBA_ 뷰보다는 USER_/ALL_ 뷰를 우선 활용하세요.

실무 활용 팁

  • 마이그레이션 검증: Oracle → Tibero 이전 시, 두 DB에서 같은 검색 쿼리를 실행해 객체 일관성을 비교 가능
  • 운영 점검 자동화: 자주 사용하는 검색 쿼리를 스크립트로 묶어두면 운영 시 빠른 점검 가능
  • DB 문서화: 특정 패턴의 객체(예: *_HIST 테이블)를 일괄 검색해 운영 매뉴얼에 반영
  • 보안/권한 점검: 특정 사용자 계정이 접근 가능한 객체를 ALL_ 뷰로 확인 가능

마무리

Oracle과 Tibero 모두 데이터 딕셔너리 뷰를 활용해 스키마 내 다양한 객체를 검색할 수 있습니다. 단순 테이블 검색을 넘어 컬럼, 인덱스, 제약조건, 프로시저 등까지 조회하면 운영과 개발 효율성이 크게 높아집니다. 실무에서는 이 검색 기법들을 자동화하여 점검·문서화 도구로 활용하는 것이 가장 효과적입니다.

관련 포스팅들

위로 스크롤