/***********************************************
Oracle DB 인덱스 생성
Oracle 19c 기준으로 작성되었습니다.
***********************************************/
/***********************************************
CUST, CUST_DTL 테이블, 인덱스 상태 조회
STR 계정 접속
***********************************************/
SELECT
OBJECT_TYPE,
OBJECT_NAME,
CREATED
FROM USER_OBJECTS
ORDER BY 2,1;
/***********************************************
통계 정보 생성
STR 계정 접속
***********************************************/
SELECT
TABLE_NAME,
TABLESPACE_NAME,
LAST_ANALYZED
FROM USER_TABLES
ORDER BY 1;
-- 통계 정보 생성
EXEC DBMS_STATS.GATHER_TABLE_STATS(OWNNAME=>'STR', TABNAME=>'CUST');
EXEC DBMS_STATS.GATHER_TABLE_STATS(OWNNAME=>'STR', TABNAME=>'CUST_DTL');
-- 통계 정보 삭제
EXEC DBMS_STATS.DELETE_TABLE_STATS(OWNNAME=>'STR', TABNAME=>'CUST');
EXEC DBMS_STATS.DELETE_TABLE_STATS(OWNNAME=>'STR', TABNAME=>'CUST_DTL');
/***********************************************
인덱스 추가 생성
테이블명: CUST
인덱스명: CUST_X1(CUST_NM)
STR 계정 접속
***********************************************/
SELECT *
FROM STR.CUST
WHERE CUST_NO = '20221125TKDN00000007';
-- CUST_NM 조회
-- 김영칠 3건, 김일영 2건, 김일삼 1건
SELECT *
FROM STR.CUST
WHERE CUST_NM = '김영칠';
CREATE INDEX STR.CUST_X1 ON STR.CUST
(CUST_NM)
TABLESPACE TS_STR_I;
SELECT
TABLE_NAME,
INDEX_NAME,
COLUMN_NAME,
COLUMN_POSITION
FROM USER_IND_COLUMNS
ORDER BY 1, 2;
/***********************************************
FBI 인덱스 추가 생성
테이블명: CUST
인덱스명: CUST_X1(CUST_NM)
STR 계정 접속
***********************************************/
SELECT *
FROM STR.CUST_DTL
WHERE MBL_NO = '015-0101-0101';
SELECT *
FROM STR.CUST_DTL
WHERE MBL_NO = '01501010101';
SELECT
MBL_NO,
REPLACE(MBL_NO,'-','')
FROM STR.CUST_DTL;
SELECT *
FROM STR.CUST_DTL
WHERE REPLACE(MBL_NO,'-','') = '01501010101';
CREATE INDEX STR.CUST_DTL_X1 ON STR.CUST_DTL
(REPLACE(MBL_NO,'-',''))
TABLESPACE TS_STR_I;
SELECT
A.TABLE_NAME,
A.INDEX_NAME,
B.INDEX_TYPE,
A.COLUMN_NAME,
A.COLUMN_POSITION
FROM
USER_IND_COLUMNS A,
USER_INDEXES B
WHERE A.TABLE_NAME = B.TABLE_NAME
AND A.INDEX_NAME = B.INDEX_NAME
ORDER BY 1, 2;
-- 인덱스 삭제
DROP INDEX STR.CUST_X1;
DROP INDEX STR.CUST_DTL_X1;
[출처] DB보다
댓글 없음:
댓글 쓰기