728x90

Programming/Oracle 129

지정 컬럼에 대한 트리거 실행

TRIGGER란 : 이벤트가 발생하면 데이터베이스에 의해 자동으로 수행 [ 테이블의 지정된 column에 대해서 트리거 실행 시키는 방법!!! ] 예제) TB_TEST의 acc_nm1, acc_nm2, acc_nm3, acc_nm4, acc_nm5, acc_short_nm, acc_eng_nm 데이타 변경시 TB_TEST_LOG에 이력 남기기 트리거) create or replace trigger TR_TEST_U after UPDATE of acc_nm1, acc_nm2, acc_nm3, acc_nm4, acc_nm5, acc_short_nm, acc_eng_nm on TB_TEST referencing new as new old as old for each row declare begin insert..

Programming/Oracle 2022.09.29

Oracle expdp/impdp(데이타펌프)

Datapump 10g부터는 Datapump를 사용해서 기존 보다 빠르게 작업을 할 수 있으나 적은 양의 데이터를 이동시킬때는 Export와 Import 유틸리티를 이용하는게 더 빠름. Datapump는 Directory 객체를 생성하여 사용하고(OS파일에 I/O 할 수 없슴) export/import 작업을 진행하는 유저에게 해당 객체에 대해 읽기, 쓰기 권한을 부여 해야한다(필수!!!) expdp : 디렉터리에 dmp 파일에 저장 impdp : 디렉터리에서 dmp 파일을 읽어 데이터베이스에 생성 ◈ DATAPUMP 필요 권한 . create session · create table · create directory · read, write on directory ◈ DATAPUMP 장점 . 필요한 디..

Programming/Oracle 2022.07.15

오라클 자동 통계자료 수집, 공간 어드바이스, 튜닝 어드바이스 on/off

오라클 자동 통계 수집 기능 - 옵티마이저 통계 수집 (Automatic Optimizer Statistics Collection) - 공간 어드바이저 (Automatic Space Advisor) - SQL 튜닝 어드바이저 (Automatic SQL Tuning Advisor) 오라클 자동 통계자료 수집, 공간 어드바이스, 튜닝 어드바이스 기능 on/off 방법 1) 상태 확인(system계정으로 접속) select * from dba_autotask_operation ; 2) 기능 off(system계정에서 실행) - disable 하고 싶은 client_name을 적용한다 dbms_auto_task_admin.disable (client_name => 'auto optimizer stats coll..

Programming/Oracle 2022.05.25

PK인덱스 컬럼 순서 변경 하기!

PK인덱스 컬럼 순서 변경 변경 전 : C1 + C2 + C3 변경 후 : C1 + C3 + C2 1. 신규 Unique index 생성 create unique index uk_emp on emp (c1, c3, c2) nologging ; alter index uk_emp logging ; 2. 기존 PK 제약조건을 삭제 alter table emp drop constraint pk_emp ; 3. 신규 PK 제약조건 생성 alter table emp add constraint pk_emp primary key (c1, c3, c2); 4. 신규 Unique 인덱스명을 PK 인덱스명으로 변경 alter index uk_emp rename to pk_emp ; [ 예제 ] 변경 전 pk : PART_D..

Programming/Oracle 2022.05.24

오라클 파티션 인덱스(GLOBAL -> LOCAL인덱스 변경하기!)

오라클 파티션 인덱스 GLOBAL로 만들어진 인덱스를 LOCAL인덱스로 변경하는 방법 => 재생성 해야함 먼저 같은 항목으로는 이름만 다르게 인덱스 생성이 안되므로 아래와 같이 진행한다 1) 임시 글로벌 인덱스를 추가 2) GLOBAL 인덱스 DROP 3) 신규 LOCAL 인덱스 생성 1) 임시 글로벌 인덱스 생성(지정한게 없으면 자동으로 global index로 생성됨) create index IDX_WG030_4_G on TA_WG030(ORDER_NO, ORDER_DETAIL_NO) tablespace SWERP_INDEX invisible nologging parallel 8; alter index IDX_WG030_4_G logging; alter index IDX_WG030_4_G parall..

Programming/Oracle 2022.05.23

오라클 파티션 local 인덱스 생성

오라클 파티션 local 인덱스 생성 인덱스 조회 select * from user_indexes where table_name = 'TAB_WG01' ; 파티션 인덱스 조회 select * from user_part_indexes where table_name = 'TAB_WG01' ; 파티션 LOCAL 인덱스 생성(nologging, parallel 8로 생성) - nologging : 인덱스 생성시 LOG를 생성하지 않음, 인덱스 생성 속도를 빠를게 함 - 인덱스 생성 후 parallel 1로 변환하지 않으면 해당 index를 사용하는 쿼리가 parallel로 수행되어 시스템 부하 발생 create index IDX_WG01_1 on TAB_WG01 (STYLE_NO , PART_NO_TO , SL..

Programming/Oracle 2022.05.18

통계정보 locking

통계정보 locking : 코드 or 마스터 테이블에 적용 ① EXEC DBMS_STATS.LOCK_TABLE_STATS(user_name, table_name); ② EXEC DBMS_STATS.UNLOCK_TABLE_STATS(user_name, table_name); 통계정보 locking 상태 확인 SELECT OWNER, TABLE_NAME, STATTYPE_LOCKED FROM DBA_TAB_STATISTICS WHERE OWNER = 'SCOTT' AND TABLE_NAME = 'DEPT'; ① STATTYPE_LOCKED = ALL이면 LOCKING 상태로 통계정보 생성 불가 ② STATTYPE_LOCKED = NULL이면 통계정보 생성 가능 LOCKING 상태에서 통계자료 생성하면 아래와..

Programming/Oracle 2022.05.18

DBMS_STATS(통계정보)

dbms_stats는 통계정보 이력 관리가 가능하다 partitioned table에 대해서 analyze로 통계 정보를 만들 경우 부정확한 통계정보를 추출 할수도 있어 DBMS_STATS package를 사용하여 통계 정보를 사용 할 것을 권고함. DBMS_STATS는 문제가 발생하면 현재 DATA DICTIONARY에 있는 통계 정보를 삭제 후 USER STATISTICS TABLE에 저장되어 있는 이전 통계정보를 IMPORT하여 이전과 동일하게 변경하는 것이 가능함. 1) 통계정보 테이블 생성 DBMS_STATS.CREATE_STAT_TABLE(table_owner, table_name, tablespace_name); . TABLESPACE_NAME DEFAULT값 = NULL . EXEC DBM..

Programming/Oracle 2022.05.18
728x90