728x90

분류 전체보기 294

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

채번 방법 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

인덱스 리빌딩(index rebuilding)

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

Programming/Oracle 2021.12.27

Apache 소프트웨어 Log4j 2에서 발생하는 취약점을 악용한 공격

Apache 소프트웨어 Log4j 2에서 발생하는 취약점을 악용한 공격 발생 Log4j 2.16.0 이하버전에서 서비스 거부 취약점(CVE-2021-45105)이 확인되어 아래와 같이 해결방안 및 보안 권고 사항 안내합니다 □ 개요 o Apache 소프트웨어 재단은 자사의 Log4j 2에서 발생하는 취약점을 해결한 보안 업데이트 권고[1] o 공격자는 해당 취약점을 이용하여 정상 서비스 중지 등의 피해를 발생시킬수 있으므로, 최신 버전으로 업데이트 권고 ※ Log4j 취약점을 이용한 침해사고 발생시 한국인터넷진흥원에 신고해 주시기 바랍니다. □ 주요 내용 o Apache Log4j 2에서 발생하는 서비스 거부 취약점(CVE-2021-45105)[2] ※ Log4j : 프로그램 작성 중 로그를 남기기 위해..

Etc 2021.12.20

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

Let’s Get IT SQL 프로그래밍(홍형경/길벗)

Let’s Get IT SQL 프로그래밍 SQL는 배우기 쉬운 언어임에도 불구하고 제대로 알고 잘 활용 하는 사람은 많지 않은것 같다 또한 다른 언어들에 비해 깊이 있게 연구하는 개발자가 적은것 같다. 하지만 시스템을 운영하는 과정에 생기는 많은 문제가 SQL에서 비롯되므로 SQL의 내부 원리와 실행 방식을 이해하는 것은 개발자의 필수 항목이라고 생각한다. 이 책은 MYSQL을 사용하여 기본 문법, 실습, 활용까지 두루두루 설명을 하고 있으며 초보자도 쉽게 이해 할수 있도록 설명이 잘 되어 있다. 책 앞부분에 Let’s Get IT 학습프로그램이 있어 학습 목표를 세울때 참고하면 좋을꺼 같다. 책 본문에서는 SQL문장을 분리해서 저자가 내용을 상세하게 설명 해주며 글을 읽다보면 저절로 왜 이렇게 사용 했..

Etc 2021.12.01

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
728x90