728x90

Programming/Oracle 126

AWR 변경

1) AWR 변경 - 10분 간격 , TOTSQL = 30개로 변경 DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS ( [RETENTION => retention_time], [INTERVAL => interval_time], [TOPNSQL => topn_sql_number] ) ; sysdba 권한을 가지고 있는 system계정에서 실행 2) 변경 내역 확인 3) 삭제 DBMS_WORKLOAD_REPOSITORY.DROP_SNAPSHO_RANGE ( LOW_SNAP_ID => snap_id, HIGH_SNAP_ID => snapid [DBID => dbid] ) ; 4) 보관주기 변경(default : 8일을 15일로 변경) DBMS_WORKLOAD_REPOS..

Programming/Oracle 2022.04.21

오라클 히든 파라미터 조회(optim_peek_user_binds)

오라클 히든 파라미터 조회 방법 : hidden parameter는 맨 앞에 "_"가 붙어 있다 1) sys계정으로 접속(또는 sqlplus '/as sysdba' 등의 Admin계정으로 접속) - PL/SQL DEVELOPER에서는 connect us : SYSDBA 선택 후 SYS계정으로 접속 2) 쿼리 실행 SELECT KSPPINM, KSPPSTVL FROM X$KSPPI X, X$KSPPCV Y WHERE X.INDX = Y.INDX AND X.KSPPINM LIKE '%optim_peek_user_binds%' AND SUBSTR(X.KSPPINM, 1, 1) = '_' 3) 히든 파라미터(hidden parameter) 변경 ① ALTER SYSTEM SET "파라미터명" = 변경값 SCOP..

Programming/Oracle 2022.04.19

랜덤 패스워드 만들기(오라클)

랜덤 패스워드 만들기 . 6자리 . 문자(알파벳 대,소문자 4자리) 포함 . 숫자 1자리 포함(0~9사이) . 특수문자 1자리 포함(!@#$^&*) STRING OPTION 문자열 형태 U 혹은 u : 대문자 알파벳의 문자열 L 혹은 l : 소문자 알파벳의 문자열 A 혹은 a : 대소문자 구분 없이 임의의 알파벳의 문자열 X 혹은 x : 임의의 대문자 알파벳 혹은 숫자의 문자열 P 혹은 p : 임의의 출력 가능한 문자들의 배열 LENGTH 문자열 길이 VALUE 지정된 범위 내에서 임의의 숫자를 생성 만약 범위가 지정되지 않는다면 기본값인 0과 1 사이의 숫자를 생성함 예제 SELECT DBMS_RANDOM.STRING('a', 4)||trunc(DBMS_RANDOM.value(0,9))|| (selec..

Programming/Oracle 2022.04.14

오라클 이메일 보내기(한글깨짐보완/return값)

오라클을 이용한 이메일 보내기 create or replace package PA_SEND_EMAIL is gn_err_no number; gs_err_msg varchar2(200); PROCEDURE sp_send_email( P_fromemail IN VARCHAR2, P_toemail IN VARCHAR2, P_subject IN VARCHAR2, P_body IN VARCHAR2); FUNCTION sf_send_email( parm_gbn char ) return varchar2 ; PRAGMA RESTRICT_REFERENCES (sf_send_email, WNDS); end PA_SEND_EMAIL; / create or replace package body PA_SEND_EMAIL is ..

Programming/Oracle 2022.04.14

채번 테이블을 이용한 채번(동시성제어)

채번 방법 1) SELECT ~ MAX 방법 . 트랜잭션이 많이 발생하지 않는 트랜잭션에 사용 . 별도의 객체(테이블, 시퀀스, 사용자함수)를 생성 할 필요없어 간단함 . 중복 오류 발생 가능성 있음 . 적절한 인덱스가 없으면 성능 이슈 발생 함 2) 채번 함수 사용(사용자 정의 함수) . 중복 오류(최초에 발생) 발생 가능성 있음 . 동시성 저하(동시 채번이 발생하면 후행 채번은 선행 세션의 트랜잭션 완료될때까지 대기) . 관리비용 증가(채번 테이블 추가 생성) 3) 시퀀스 객체 사용 . 차례대로 증가하는 숫자 값을 얻어 낼때 매우 편리 . 트랜잭션의 commit, rollback과 별개로 처리 . NEXTVAL로 시퀀스 값을 발급 받은 후에 ROLLBACK 하면 새로 받은 값은 사라짐 . START ..

Programming/Oracle 2022.01.17

oracle merge문

1. MERGE : 데이터의 존재 여부에 따라 데이터를 INSERT 하거나 UPDATE 할때 유용하게 사용 1) 한 문장으로 INSERT와 UPDATE를 동시에 처리 2) 한 건의 데이터는 INSERT와 UPDATE 중 하나만 수행 3) 대상이 이미 존재하면 UPDATE, 존재하지 않으면 INSERT MERGE INTO EMP T1 // UPDATE 되거나 INSERT 될 테이블 USING ( SELECT ... FROM DEPT // MERGE 대상의 처리 방법을 결정 할 비교 데이터 집합 WHERE ... ) T2 WHEN MATCHED THEN UPDATE SET T1.EMP_NM = T2.EMP_NM // 비교 대상 데이터가 MERGE 대상에 이미 있음 ,T1.EMP_CD = T2.EMP_CD W..

Programming/Oracle 2022.01.10

오라클 통계자료 생성 주기(DBMS_STATS.GATHER_TABLE_STATS)

오라클 통계자료 생성 주기 와 비율 통계자료 생성은 매일이라도 조금씩 해야한다 혹은 데이타 쌓이는 양이 비슷하면 안해도 된다 통계생성 비율은 몇%가 적정한가의 문제로 많은 고민을 했습니다 시스템이 24시간 풀가동이기 때문에 통계자료를 생성할 시간을 확보하는게 힘든 것이 현실이라 적정한 비율, 주기로 많은 고민을 하였습니다. 저와 같은 고민이 있으신 분들은 아래 처럼 주기와 비율을 생성해 주시면 됩니다. 통계정보 생성은 6개월~1년 정도(또는 1~2년) 주기로 해주는게 좋습니다. 하지만, 대용량의 테이블일 경우, 통계 정보 생성에 시간이 많이 들기 때문에 시스템 정기 점검 시간을 고려해서 하는 것이 필요합니다. 데이터가 큰 변화없이 일정하게 증가하는 시스템이라면 통계정보 생성 주기를 더 늦추어도 상관없습니..

Programming/Oracle 2021.12.28
728x90