본문 바로가기

oracle159

[병렬] Parallel DML 시 실제로 모든 프로세스가 일하는지? Parallel DML을 사용하여 DML을 수행하다가, 신경쓰지 않은 부분이 있었는데 그것은 바로 실제로 프로세스들이 다 일을 할까? 였습니다. 세션에서만 보면 당연히 프로세스들이 parallel 힌트를 준 만큼 생성되어 있었기 때문에 잘 수행되고 있다고 생각했지만, 속도적인 부분에서 차이가 있는것을 알게되었고, 테스트를 통해 어떤 차이 때문에 그렇게 되는지 확인해보고자 했습니다. 테스트는 이전에 통계정보 EXPORT,IMPORT 했을 때 사용했던 테이블과 INSERT문을 사용했습니다. INSERT 시 여러 옵션들을 사용해서 프로세스들의 일하는 것을 확인해보았습니다. https://bae9086.tistory.com/455 테스트 결과를 간단히 앞에 이야기하면 /*+ enable_parallel_dml .. 2023. 1. 19.
세션 모니터링 쿼리 현재 ACTIVE인 세션 중에 어떤 SQL을 수행하고, 어떤 유저에서 수행중인지 등 기본적인 정보를 쉽게 알기위한 쿼리입니다. 쿼리 select p.inst_id, p.spid, s.sid, s.serial#, s.process, s.status as SESS_STATUS, t.status as TX_STATUS, s.username, s.osuser, substr(s.machine,instr(s.machine,'\',-1)+1) machine, s.module, sc.command_name, s.event, s.sql_id, TO_CHAR(SYSDATE - (S.LAST_CALL_ET/86400), 'YYYYMMDD HH24:MI:SS') AS EXEC_TIME, s.seconds_in_wait wai.. 2023. 1. 18.
[에러 해결] PK 중복 관련 ORA-00001: unique constraint primary key violated ORA-00001: unique constraint primary key violated 테이블 컬럼작업을 하는 중 데이터가 들어있는 테이블이 있어서, 데이터 백업 후 삭제 -> 테이블 작업 -> 데이터 복구 순서로 작업을 수행하려고 했습니다. 작업 후 복구 중에 데이터가 들어와서 기존 데이터와 중복되는 상황이 발생! 그래서 기존 데이터가 하나도 안들어가는 경우가 발생하였습니다. 여러 테이블의 작업을 수행했는데, 두가지 방법으로 해결하였습니다. 1. INSERT 시 exist 문을 활용하여 PK중복제거 한 데이터만 INSERT하기 2.임시 테이블을 만들어 임시테이블에 INSERT 후 RENAME 하기. 아래는 최대한 비슷하게 구성한 테스트 시나리오입니다. 준비 테스트 테이블 생성. CREATE TABLE.. 2023. 1. 13.
Oracle 데이터 중복값 쿼리로 확인하기 테이블 내에서 중복값을 확인해야 할 일이 있어서 아래글을 참고하여 확인 후에, 제가 한번 더 테스트하여 정리하고자 글을 올립니다. 출처 : https://gent.tistory.com/485 [Oracle] 오라클 중복 데이터를 찾는 2가지 방법 오라클에서 중복 데이터를 추출하거나 찾기 위해서는 GROUP BY 절과 집계 함수를 사용하거나, OVER 절과 분석함수를 사용하는 방법이 있다. GROUP BY 절을 사용할 경우 중복 칼럼에 대한 건수만 조회 gent.tistory.com 제가 겪었던 상황은 특정 파티션테이블의 인덱스가 UNUSABLE상태로 빠져있어서 rebuild를 시도했는데, 중복값이 있어서 rebuild가 안되는 상황이었습니다. 그래서 실제로 데이터가 중복값이 있는지 확인해보았습니다. 저는.. 2022. 12. 8.