ORACLE (33) 썸네일형 리스트형 오라클 Hash Join 원리와 use_hash 힌트 사용법 오라클 Hash Join 원리와 use_hash 힌트 사용법 해시 조인(Hash Join)은 관계형 데이터베이스의 조인 방식 중 하나로, 대용량 데이터를 효율적으로 조인하는 데 유용하며, 메모리를 활용한 고속 연산이 특징이다. 작동 원리 1. Build Phase (작은 테이블 적재) 두 테이블 중 크기가 작은 쪽을 Inner Table로 선택하여 메모리에 해시 테이블을 생성한다. 2. Probe Phase (큰 테이블 스캔) Inner Table을 해시 함수로 해싱한 해시 테이블을 활용하여 Outer Table(큰 테이블)을 스캔한다. 3. 결과 반환 해시 테이블에서 매칭되는 해시 버킷을 찾으면, 해당 버킷에 속하는 Inner Table의 행과 Outer Table의 현재 처리 중인 행을 조인하여 결과.. ORACLE JOB 등록 및 관리(DBMS_JOB) ORACLE JOB 등록 및 관리(DBMS_JOB) Oracle 에서 제공하는 DBMS_JOB 패키지를 이용하여 스케줄링 관리를 할 수 있다. Job 등록(submit) 예시 procedure_name 이라는 프로시저를 매일 새벽 6시에 수행 DECLARE X NUMBER; BEGIN SYS.DBMS_JOB.SUBMIT ( JOB => X , WHAT => 'PROCEDURE_NAME;', NEXT_DATE => SYSDATE, INTERVAL => 'TRUNC(SYSDATE + 1) + 1/24*6', NO_PARSE => FALSE ); END; Job 등록(submit) 파라미터 JOB : JOB Number. 자동으로 할당되므로 건드릴 필요 없음. WHAT : 수행할 프로시저 명 기입. ';' 빠.. [기술공유] 오라클 계정과 스키마의 차이가 무엇일까? 오라클의 스키마는 설명하기 어려운 추상적임이 있다. 오라클을 공부하던 초반에 아무리 개념이나 관련 글을 찾아봐도 마음에 와닫지 않았고, 그래서 뭐지? 어디에 쓰는거지? 계정과의 차이점은 뭐지? 하는 의문이 들었다. 또한 표준적으로 사용되는 스키마와 개념과 상이하고, DBMS마다 스키마의 개념이 달라 혼동은 가중된다.하지만 실제 DB를 운영하고 업무를 하며 스키마의 개념을 확실히 알 수 있었다. 오라클의 스키마의 개념을 알아보고, 예제를 통해 계정(USER)과의 차이를 알아보자. 스키마란?스키마의 정의는 한 계정이 소유하는 테이블, 뷰, 인덱스 등의 오브젝트들의 집합이다.아래와 같이 user와 object가 존재한다고 하자.users- user1objects- user1.table1- user1.table.. ORACLE Temp file 관리 명령어 정리 temp 파일 경로 변경을 위해서는 신규 temp 테이블스페이스 생성 > 신규 temp 테이블스페이스를 default로 변경 > 기존 temp 삭제 순서로 진행하여야한다.-- 신규 temp 테이블스페이스 생성 create temporary tablespace TEMP파일명 tempfile '/oratemp/temp01.dbf' size 1G; -- default temp 변경 alter database default temporary tablespace TEMP파일명; -- 기존 temp 삭제 drop tablespace TEMP파일명; -- OS상의 데이터파일도 함께 삭제 drop tablespace TEMP파일명 including contents and datafiles; ORALCE Redo Log 관리 명령어 정리 온라인 리두로그 그룹 추가-- 온라인 리두 그룹 추가 alter database add logfile '/oracle_redo/redo01.rdo' size 200M; -- 온라인 리두 그룹 여러 개 추가 alter database add logfile ('/oracle_redo/redo01.rdo','/oracle_redo/redo02.rdo') size 200M; 온라인 리두로그 그룹 삭제-- 온라인 리두로그 그룹 삭제 alter database drop logfile group 1; 온라인 리두로그 멤버 추가멤버 추가 시 그룹의 기존 멤버와 동일한 크기로 생성하기 때문에 사이즈 명시하지 않음.-- 온라인 리두로그 멤버 추가 alter database add logfile member '/orared.. ora-14404 테이블스페이스 DROP 시 파티션 테이블의 위치 때문에 발생한 오류 테이블스페이스 DROP 중 아래와 같은 오류가 발생했다.ORA-14404: 분할영역된 테이블이 다른 테이블스페이스에 분할영역것을 포함하고있습니다.원인삭제하려는 테이블스페이스 내에 존재하는 파티션 테이블이나 인덱스의 일부가 다른 테이블스페이스에 존재하기 때문에 발생하는 오류이다.-- 파티션의 일부가 다른 테이블스페이스에 존재하는 파티션 찾는 명령어 select * from dba_tab_partition where TABLE_NAME in ( select TABLE_NAME from dba_tab_partitions where TABLESPACE_NAME = '삭제대상테이블스페이스명' group by TABLE_NAME ) and TABLESPACE_NAME '삭제대상테이블스페이스명' ; 해결방법 1해당 .. ORA-00604 ORA-02429 테이블스페이스 DROP 시 발생한 제약조건 오류 데이터가 있는 테이블스페이스를 삭제하려고 아래 명령을 수행하였는데 ORA-00604, ORA-02429가 발생하였다.drop tablespace 테이블스페이스명 including contents and datafiles cascade constraints;ORA-00604: 순환 SQL 레벨 1 에 오류가 발생했습니다 ORA-02429: 고유/기본 키 적용을 위한 인덱스를 삭제할 수 없습니다. 원인제약조건 때문에 발생한 오류이다. 나는 두 테이블스페이스에 data와 index를 분리하여 관리하고있었는데 index가 저장된 테이블스페이스를 먼저 drop하려고 하니 data가 저장된 테이블스페이스 내 테이블에 인덱스에 대하여 제약조건이 걸려있어 오류가 발생한 것이었다. data가 저장된 테이블스페이스부터 d.. no archive mode 변경 작업 순서DB Mount > no archive mode 설정 > DB OPEN 작업 명령어-- DB Shutdown shutdown immediate; -- Mount로 startup startup mount; -- noarchive mode로 변경 alter database noarchivelog; -- DB Open alter database open; 확인 명령어archive log list; -- Database log mode No Archive Mode 확인 alter system switch logfile; -- logfile switch 여러 번 발생시킨 후 archive 경로에 archive log file 생성되지 않는 것 확인 이전 1 2 3 4 5 다음 목록 더보기