DDL 작업 이력 조회
목적: 데이터베이스 객체에 대한 ALTER, DROP, CREATE 등의 DDL 작업 이력을 확인
SELECT ACTION_NAME, SQL_TEXT, TIMESTAMP
FROM DBA_AUDIT_TRAIL
WHERE ACTION_NAME IN ('ALTER TABLE', 'DROP TABLE', 'CREATE TABLE')
ORDER BY TIMESTAMP DESC;
DBA_AUDIT_TRAIL에서 ALTER TABLE, DROP TABLE, CREATE TABLE과 관련된 작업들을 시간 역순으로 조회
최근 생성된 테이블 목록 조회
목적: 최근에 생성된 테이블 정보를 조회
SELECT OWNER
, OBJECT_NAME
, SUBOBJECT_NAME
, OBJECT_TYPE
, CREATED
, LAST_DDL_TIME
, TIMESTAMP
, STATUS
, TEMPORARY
FROM ALL_OBJECTS
WHERE OWNER IN ('OWNER_NAME')
--AND OBJECT_TYPE = 'TABLE'
ORDER BY CREATED DESC;
ALL_OBJECTS에서 특정 소유자(OWNER_NAME)의 객체 중에서 테이블들을 생성일자(CREATED)를 기준으로 내림차순으로 조회
컬럼 추가 이력 조회
목적: 특정 테이블에 추가된 컬럼들의 정보를 조회
SELECT TABLE_NAME, COLUMN_NAME, COLUMN_ID
FROM ALL_TAB_COLUMNS
WHERE TABLE_NAME = 'TABLE_NAME'
ORDER BY COLUMN_ID;
ALL_TAB_COLUMNS에서 특정 테이블(TABLE_NAME)의 컬럼 이름과 ID를 조회
최근 생성된 인덱스 목록 조회
목적: 최근에 생성된 인덱스 정보를 조회
SELECT OWNER
, OBJECT_NAME
, SUBOBJECT_NAME
, OBJECT_TYPE
, CREATED
, LAST_DDL_TIME
, TIMESTAMP
, STATUS
, TEMPORARY
FROM ALL_OBJECTS
WHERE OWNER IN ('OWNER_NAME')
AND OBJECT_TYPE = 'INDEX'
AND OBJECT_NAME NOT LIKE 'SYS%'
ORDER BY CREATED DESC;
ALL_OBJECTS에서 특정 소유자(OWNER_NAME)의 INDEX 타입 객체 중에서 시스템 객체가 아닌 것을 생성일자(CREATED)를 기준으로 내림차순으로 조회
최근 생성된 인덱스 생성 쿼리 조회
목적: 최근에 생성된 인덱스들의 생성 쿼리를 조회
SELECT 'CREATE INDEX ' || AI.INDEX_NAME || ' ON ' || AI.TABLE_NAME || ' (' || LISTAGG(AIC.COLUMN_NAME, ', ') WITHIN GROUP (ORDER BY AIC.COLUMN_POSITION) || ') ' || 'TABLESPACE TABLESPACE_NAME;' AS CI
FROM ALL_INDEXES AI
JOIN ALL_IND_COLUMNS AIC ON AI.INDEX_NAME = AIC.INDEX_NAME AND AI.TABLE_NAME = AIC.TABLE_NAME AND AI.OWNER = AIC.INDEX_OWNER
JOIN DBA_OBJECTS do ON AI.INDEX_NAME = do.OBJECT_NAME AND do.OWNER = AI.OWNER
WHERE AI.OWNER IN ('OWNER_NAME')
AND AI.INDEX_NAME NOT LIKE '%SYS%'
GROUP BY AI.INDEX_NAME, AI.TABLE_NAME, AI.OWNER, do.CREATED
ORDER BY do.CREATED DESC;
ALL_INDEXES와 ALL_IND_COLUMNS을 조인하여 최근에 생성된 인덱스들의 생성 쿼리를 작성함
도움 받았습니다,,,