ORACLE/Admin (15) 썸네일형 리스트형 [ORACLE] LOB 컬럼 테이블스페이스 변경 Oracle 데이터베이스의 성능과 저장 공간 활용을 최적화하기 위해 LOB(Large Object) 컬럼과 관련 인덱스의 테이블스페이스 변경이 필요할 수 있다.아래는 LOB 컬럼 및 인덱스 테이블스페이스 변경을 위한 단계별 가이드이다. 1. 현재 LOB 컬럼과 테이블 확인dba_segments와 dba_lobs 뷰를 조인하여 LOB(Large Object) 세그먼트에 대한 정보를 검색select s.OWNER , TABLE_NAME , COLUMN_NAME from dba_segments s, dba_lobs l where s.SEGMENT_NAME = l.SEGMENT_NAME and s.OWNER = l.OWNER and SEGMENT_TYPE = 'LOBSEGMENT';결과 예시OWNER: LOB .. [Oracle] INTERSECT 명령어 Oracle의 INTERSECT 명령어 INTERSECT 명령어는 집합 연산자로, 두 테이블의 교집합을 반환합니다. 즉, 두 테이블 모두에 존재하는 행을 선택합니다. 선택한 열은 두 테이블에서 동일한 데이터 유형과 크기여야 합니다. INTERSECT 구문 예SELECT column_listFROM table1INTERSECTSELECT column_listFROM table2; INTERSECT 사용 예다음 예에서는 customers 테이블과 orders 테이블의 교집합을 찾아 두 테이블에 모두 존재하는 고객 ID와 주문 ID를 선택합니다.SELECT customer_id, order_idFROM customersINTERSECTSELECT customer_id, order_idFROM orders;.. [ORACLE] 통계정보 수집과 백업 쿼리 통계정보의 의미와 필요성 통계정보는 데이터베이스의 성능 최적화를 위해 사용되는 핵심 요소 중 하나입니다. 통계정보는 데이터베이스 엔진이 쿼리를 최적화하고 실행 계획을 수립하는 데 도움을 주는 데이터입니다. 여기에는 테이블의 크기, 데이터 분포, 인덱스 효과 등이 포함됩니다. 통계정보의 중요성: 쿼리 최적화: 데이터베이스 엔진은 쿼리를 실행할 때 최적의 경로를 선택하기 위해 통계정보를 활용합니다. 정확한 통계를 갖고 있으면 데이터 액세스 경로를 최적화하여 쿼리 성능을 향상시킬 수 있습니다. 인덱스 성능 향상: 인덱스의 선택과 사용은 데이터의 분포와 관련이 있습니다. 통계 정보를 통해 엔진은 어떤 인덱스를 사용할지 결정하고 효과적으로 데이터에 액세스할 수 있습니다. 통계정보에 포함되는 내용 테이블 통계: 테.. [ORACLE] OR-expansion과 USE_CONCAT, NO_EXPAND 힌트 OR-expansion 이란? OR-expansion은 조건절에 OR 조건이나 INLISTS 조건이 있을 때 내부적으로 여러 개의 쿼리로 나누어 처리하는 기능이다. OR-expansion 예시 예를들어 아래와 같은 쿼리가 있다. deptno, salary 에 대한 인덱스가 있다고 가정한다. select * from emp where deptno = 20 or salary > 5000; - OR-expansinon 이 발생하지 않은 경우 OR-expansinon 이 발생하지 않은 경우, 하나의 조건절에서 여러 개의 인덱스가 사용될 수 없기 때문에 아래 실행계획과 같이 OR 조건이 full scan으로 처리된다. -----------------------------------------------------.. [ORALCE] 특정 사용자만 파라미터 적용하기(LOGON TRIGGER) 오라클 LOGON TRIGGER를 사용하여 특정 사용자만 파라미터 적용하기 어떤 프로그램이 사용하는 계정에 literal SQL이 과도하게 발생하는 문제가 있는데 프로그램 수정이 어려워 그 계정에 대해서만 Cursor Sharing 파라미터를 적용하려고 한다. Cursor Sharing 파라미터는 literal SQL을 자동으로 Binding 하여 성능 개선에 도움을 준다. 하지만 안정적이지 않다거나 예측 불가능한 문제 발생 가능성.. 과 같은 이유로 사용하지 않는 것을 권고하고있다. 그래서 특정 계정에만 파라미터를 적용하는 방법을 강구하게 되었다. 그 결과 LOGON TRIGGER를 사용하여 특정 계정이 LOGON 할 시 ALTER SESSION SET PARAMETER를 수행하도록 설정해보았다. 특정.. [오라클] 스키마 전체 테이블에 대한 읽기 권한 부여 AAA라는 계정에 여러 테이블들이 있다. AAA_RO 라는 계정을 생성하여 AAA의 테이블에 대한 읽기권한만 부여하고 싶다. AAA 계정에 대한 테이블 읽기 권한을 부여하는 명령어가 있을 것 같지만 없다. (보안상의 이유?) 그럼 어떻게 권한을 부여해야할까? 우선 AAA_RO에게 AAA의 특정 테이블에 대한 읽기 권한을 부여하는 명령어는 아래와 같다. GRANT SELECT ON AAA.TABLE1 TO AAA_RO; -- AAA_RO 계정에 AAA 계정 TABLE1 테이블에 대한 읽기 권한 부여 AAA 계정의 모든 테이블 리스트를 검색한다. SELECT * FROM ALL_TABLES WHERE OWNER = 'AAA' AAA_RO에게 AAA 계정의 모든 테이블에 대한 읽기 권한을 부여하는 스크립트를 .. 오라클 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 : 수행할 프로시저 명 기입. ';' 빠.. 이전 1 2 다음