DB현황 분석의 기초가 될 수 있는 자료가 필요해 오라클 DB에서 사용할 수 있는 쿼리문을 작성해 보았다.
이 자료로 최근에 사용되지 않는 table을 예측해 볼 수 있고,
데이터가 많은 table, DML 상황을 확인해 볼 수 있을 것이다
/*
오라클 DB
모든 테이블의 생성일, 레코드수, 최근 접근내역 등을 확인할 수 있는 쿼리문
*/
WITH O AS (SELECT owner, object_name, created, last_ddl_time
FROM ALL_OBJECTS WHERE object_type = 'TABLE'
),
T AS ( /* ANALYZE 수행후 생성되는 컬럼 데이터 */
SELECT owner, table_name, num_rows, avg_row_len, last_analyzed
FROM ALL_TABLES
),
M AS ( /* 최근 테이블 사용내역, 접근내역 확인 */
SELECT table_owner, table_name, inserts, updates, deletes, truncated, timestamp
FROM ALL_TAB_MODIFICATIONS
)
SELECT O.owner, O.object_name
, O.created -- 생성일
, O.last_ddl_time -- 마지막 DDL 변경일시
, T.num_rows -- 레코드 수
, T.avg_row_len -- 평균 레코드 길이
, T.last_analyzed -- 마지막 분석(Analyze) 일시
, M.inserts -- 입력수
, M.updates -- 수정수
, M.deletes -- 삭제수
, M.truncated -- TRUNCATE수
, M.timestamp -- 마지막 DML 일시
FROM O LEFT JOIN T ON (O.owner = T.owner AND O.object_name = T.table_name)
LEFT JOIN M ON (O.owner = M.table_owner AND O.object_name = M.table_name)
ORDER BY owner, object_name ;
'정보관리(데이터베이스, DB) > 오라클' 카테고리의 다른 글
| ORA-28547 해결방법 (0) | 2025.11.10 |
|---|---|
| 기술 [Tibero/Oracle]DB 테이블 및 상세정보 추출 (0) | 2025.08.20 |
| 오라클 파티션 테이블 조회 방법 (0) | 2025.02.07 |
| [Oracle] TRUNCATE, DELETE, DROP 차이, 테이블 데이터 삭제 (1) | 2024.09.04 |
| 서브쿼리 Push에 대해 알아보자 (0) | 2024.09.03 |