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