728x90

Programming/Oracle 126

인덱스 리빌딩(index rebuilding)

인덱스 리빌딩 주기적으로 해야한다?? 인프런에서 오라클 인스턴스 성능개선 관련(권철민강사님) 수업 중에 인덱스 리빌딩에 대한 부분이 나왔습니다 인덱스 리빌딩을 주기적으로 해야한다 통계자료 생성을 하니 인덱스 리빌딩은 따로 하지 않아도 된다하는 얘기들이 많아서 어떻게 작업을 해야할지 고민이 많았었는데요 오늘 강사님이 속시원히 해결책을 알려주셨습니다 더이상 헷갈리지 않아야 겠습니다 db_file_sequential_read의 개선방안으로 index rebuild가 있으나 문제 해결에 도움이 되지 않은 경우가 대부분으로 모니터링을 통해서 인덱스 리빌딩을 해야할지 결정 해야 한다고 합니다 강사님 답변으로 과거에는 branch를 4~5개 넘게 액세스를 하면 rebuild를 추천해서 analyze index 인덱스..

Programming/Oracle 2021.12.27

ORACLE 실제 실행계획 확인하기!

ORACLE 실제 실행계획 예상 실행계획만으로는 성능 개선이 어려울때가 있으므로 실제 실행계획을 보고 문제점을 찾을수 있어야 한다 실제 실행 계획 확인 하는 방법 GATHER_PLAN_STATISTICS를 힌트로 사용 OR 세션에 트레이스를 거는 방법이 있음 1) GATHER_PLAN_STATISTICS 사용 법 - SYS계정으로 접속하여 V_$SQL V_$SQL_PLAN_STATISTICS_ALL V_$SQL_PLAN V_$SESSION에 SELECT 권한을 추가 한다 GRANT SELECT ON V_$SQL TO USER_명 ; GRANT SELECT ON V_$SQL_PLAN_STATISTICS_ALL TO USER_명 ; GRANT SELECT ON V_$SQL_PLAN TO USER_명 ; GR..

Programming/Oracle 2021.12.02

Oracle ORA-12638 : credential retrieval failed

Oracle ORA-12638 : credential retrieval failed Oracle ORA-12638 : 신용 검색에 실패했습니다 프로그램 설치 후 디비 접속시 위와 같은 에러 발생하면 sqlnet.ora의 SQLNET.AUTHENTICATION_SERVICES= (NTS) 을 주석처리 한다 #SQLNET.AUTHENTICATION_SERVICES= (NTS) Cause The database and client always cross authenticate each other if NTS authentication is negotiated. This is regardless of whether the user will ultimately be authenticated by the datab..

Programming/Oracle 2021.11.25

오라클 user_job 실행 안될때

[ 오라클 user_job이 실행 안될때 조치 방법 ] 1) system계정으로 접속하여 아래 쿼리를 실행한다 select * from v$parameter where name like 'job%' ; 2) 쿼리 결과 job_queue_processes의 값이 0이면 user_job 실행 안됨 3) alter system set job_queue_processess = 1000 ; 으로 변경 4) user_job 실행 확인!!! JOB_QUEUE_PROCESSES는 DBMS_JOB 작업 및 Oracle Scheduler(DBMS_SCHEDULER) 작업의 실행을 위해 생성할 수 있는 인스턴스당 최대 작업 슬레이브 수를 지정합니다. DBMS_JOB과 Oracle Scheduler는 동일한 작업 조정자와 작..

Programming/Oracle 2021.11.25

계층형쿼리(START WITH ~ CONNECT BY사용법)

[ 계층형쿼리 작성 방법 ] SELECT [컬럼명] FROM [테이블명] WHERE [ 조건절 ] START WITH [ 최상위 조건 ] CONNECT BY [NOCYCLE] [ PRIOR 계층형 구조 조건 ] ORDER SIBLINGS BY [ 컬럼명 ] 1) START WITH 계층의 최상위 조건(ROOT)으로 사용될 데이터를 지정 2) CONNECT BY 상위계층과 하위계층 조건절 표시 CONNECT BY PRIOR 자식컬럼 = 부모컬럼 -> 부모에서 자식으로 트리 구성(TOP-DOWN방식) CONNECT BY PRIOR 부모컬럼 = 자식컬럼 -> 자식에서 부모로 트리 구성(BOTTOM-UP방식) NOCYCLE : 무한 루프 방지 3) ORDER SLBLINGS BY 사전순으로 정렬하는것이 아닌 계..

Programming/Oracle 2021.11.03

ora-30556

ora-30556 : either functional or bitmat join index is defined on the column to be modified 테이블의 컬럼 size 조정하는데 위와 같은 에러가 있는 경우 - 인덱스에 functional index가 있는 경우 발생함 ex) 인덱스 컬럼에 함수 사용한 경우 trim(busi_no) 와 같은 function을 쓴 컬럼을 인덱스 컬럼으로 사용 한 경우 [ 해결 방법 ] 인덱스 drop 후에 테이블의 컬럼 size를 조정하고 다시 인덱스를 재성해 주는것으로 해결

Programming/Oracle 2021.06.11

ORACLE JOB

[ ORACLE JOB 설정 ] 1. JOB 등록 DBMS_JOB.SUBMIT(JOB_NO, WHAT, NEXT_DATE, INTERVAL); declare job_no number; begin dbms_job.submit(job_no, 'dbms_output.put_line(''ok'');', sysdate, 'sysdate + 1'); end; [실행주기 예제 ] 항목 설명 'sysdate + 7' 주 1회 실행 'sysdate + 1' 다음날 1회 실행 'next_day(sysdate, ''MONDAY'')' 매주 월요일 실행 'null' 1회 실행 'sysdate + 1/24' 1시간에 1회 실행 'sysdate + 1/24/60' 1분에 1회 실행 'trunc(sysdate+1) + 2/24' ..

Programming/Oracle 2021.05.07

오라클에서 이메일 보내기

[ 오라클에서 이메일 보내기 ] - UTL_SMTP.write_data를 이용할 경우 한글이 지원되지 않음 create or replace procedure SP_SEND_EMAIL(send_email varchar2, receiver_email varchar2, title_email varchar2 , message_email varchar2) is begin declare v_From varchar2(80) := send_email||'@xx.co.kr'; v_Recipient varchar2(80) := receiver_email||'@xx.co.kr'; v_Subject varchar2(80) := title_email; v_mail_host varchar2(30) := 'mail.xx.co.kr..

Programming/Oracle 2021.05.07
728x90