분류 전체보기 13

Oracle Statspack Report

Statspack 이란 ? - Oracle Database에 대한 부하 및 resource 사용량의 문석이나 성능 문제 분석을 위하여 사용되는 툴 - 성능관련 통계정보들이 PERFSTAT USER에 누적되어 저장되므로 원하는 기간별로 비교 분석이 가능하다. - DBMS_JOB이나 OS Utillity( ex : cron ) 등을 사용하여 주기적으로 Data를 수집 할 수 있다. Collecting Snapshots Level level Information Collected 0 일반 성능 통계 정보 집 5 ( default) resource를 많이 사용하는 SQL에 대한 정보 포함 6 Level 5 + SQL 상세 실행 계획정보를 포함 7 Level 6 + 세그먼트 정보 포함 10 Level 7 + Pa..

Oracle 2024.01.12

Forward Proxy & Reverse Proxy

1. Proxy 프록시 서버는 클라이언트가 자신을 통해서 다른 네트워크 서비스에 간접적으로 접속할 수 있게 해 주는 컴퓨터 시스템이나 응용프로그램을 가리킨다. 서버와 클라이언트 사이에 중계기로써 대리로 통신을 수행하는 것을 가리켜 '프록시', 그 중계 기능을 하는 것을 프록시 서버라고 부른다. 클라이언트와 서버 간의 통신을 직접하지 않고 중계 서버인 프록시 서버를 사용하여 보안 트래픽 분산 등.. 여러 장점을 가질 수 있도록 해줌 2. Forward Proxy 일반적으로 프록시라고 하면 포워드 프록시 입니다. 클라이언트가 서버로 요청할 때 직접 요청하지 않고 먼저 프록시 서버를 통해 요청하는 방식입니다. 이 방식을 좀 더 쉽게 이해하자면 회사 내부 인트라넷에서 인터넷상에 있는 서버에 요청할 때 먼저 프록..

카테고리 없음 2023.12.18

Oracle Partition 테이블 종류와 개념

파티션 테이블 - 하나의 테이블을 물리적으로 나눠놓은 것 , 물리적으로 나눠놨지만 논리적으로는 하나의 테이블로 간주된다. 왼쪽 그림 처럼 하나의 테이블에 전체 데이터가 들어가 있는 Non-Partitioned 테이블이 일반적인 테이블이라면 오른쪽 그림은 월 별로 다른 세그먼트에 EMP 데이터를 나눠서 넣을 수 있습니다. 이렇게 나눠서 넣어놔도 사용자는 1~3월치 데이터가 하나의 EMP 테이블에 들어있는 것 처럼 사용할 수 있습니다. ● 저장공간을 가지는 개념이 Segment에 해당 파티션을 사용하는 목적 1. 개선된 가용성 - 파티션은 독립적으로 관리된다. - Backup and Restore를 파티션별로 작업할 수 있다. - 같은 테이블에서 Unavailable한 파티션은 다른 파티션에 영향을 주지 않..

Oracle 2023.10.11

Oracle ROWID

ROWID 란? ● 테이블에서 행의 위치를 지정하는 논리적인 주소 값 ● DB 전체에서 중복되지 않는 유일한 값으로 테이블에 새로운 데이터를 입력하면 자동적으로 생성 ● 테이블의 특정 레코드를 랜덤하게 접근하기 위해 주로 사용 - ROWID 조회 / 분석 SELECT ROWID, COLUMN A, COLUMN B, ..., FROM EMP; ■ AAAVRE(32bit) : 처음 6자리는 데이터 오브젝트 번호이며 오브젝트의 고유 번호이다. ■ AAE(10bit) : 그 다음 3자리는 상대적 파일 번호이며 각각의 데이터파일에 할당되는 번호 입니다. ■ AAAACU(22bit) : 그 다음 6자리는 블록 번호이며 데이터 블록의 위치를 알려주는 번호 입니다. ■ AAA(16bit) : 그 다음 3자리는 블록 내..

Oracle 2023.09.20

Oracle Index

Index란 ? ● 인덱스는 데이터베이스 분야에 있어서 테이블에 대한 동작의 속도를 높여주는 자료 구조를 일컫는다. ● 테이블 내의 1개 혹은 여러 개의 컬럼을 이용하여 생성될 수 있다. ● 인덱스를 저장하는데 필요한 디스크 공간은 보통 테이블을 저장하는 데 필요한 디스크 공간보다 작다. ● 인덱스는 한번 생성되면 오라클에 의해 내부적으로 자동 관리 된다. > 쉽게 말해서 데이터의 검색 속도를 향상 시키기 위해 사용되며, 포인터를 이용하여 데이터를 랜덤 액세스한다. 1) 인덱스 사용 목적 - 일부 SQL 쿼리 성능 향상 - 테이블의 행에 직접 빠르게 접속 가능 - 인덱스 경로를 사용한 신속한 자료 검색 - DB의 모든 블록을 전부 안읽고 블록 주소를 찾아 해당 블록만 메모리에 복사함 > 테이블이 수정/삭..

Oracle 2023.09.19

NL Join / Sort Merge Join / Hash Join

1. NL Join(Nested Loops Join) - 2개 이상의 테이블에서 하나의 집합을 기준으로 순차적으로 상대방 Row를 결합하여 원하는 결과를 조합하는 조인 방식이며, 데이터가 많지 않은 경우에 유용하게 사용한다. - 실행계획에서 먼저 실행되는 테이블이 Driving Table, 나중에 실행되는 테이블이 Driven Table이라고 한다. Driving Table : DEPT / Driven Table : EMP 기본 메커니즘 /* C, JAVA */ for(i=0; i 조인 시도 3) 후행 테이블의 인덱스에 선행 테이블의 조인 키가 존재하는지 확인 > 선행 테이블의 조인 값이 후행 테이블에 존재하지 않으면 선행 테이블 뎅디터는 필터링 됨 4) 인덱스에서 추출한 레코드 식별자를 이용하여 후행 ..

Oracle 2023.09.19

SQL 트레이스

SQL 트레이스란 - SQL을 튜닝할 때 가장 많이 사용되는 도구이며, 사전 실행계획과 AutoTrace 결과만으로 부하원인을 찾을 수 없을 때 SQL 트레이스를 통해 쉽게 찾아낼 수 있다. 1. 자기 세션에 트레이스 걸기 현재 자신이 접속해 있는 세션에만 트레이스를 설정하는 방법 - 세션레벨 Event 비활성화 - SQL_TRACE = TRUE로 실행했을 경우 SQL> ALTER SESSION SET SQL_TRACE = FALSE; - LEVEL 지정하여 활성화 했을 경우 SQL> ALTER SESSION SET EVENTS '10046 TRACE NAME CONTEXT OFF'; 위와 같이 트레이스를 설정하고 SQL을 수행한 후에는 user_dump_dest 파라미터로 지정된 서버 디렉토리 밑에 트..

Oracle 2023.09.13

Voting Disk , OCR

Voting Disk : Split Brain 현상을 방지하기 위해 각 Node의 상태를 확인 및 관리하는 용도의 Disk / 장애시 어떤 노드를 제거할지 검사하는 용도로 사용 - Split Brain : Cluster로 구성된 두 시스템간의 네트워크가 일시적으로 동시에 단절되거나 기타 시스템상의 이유로, Cluster상의 모든 노드들이 각자 자신이 Primary라고 인식하게 되는 상황이다 Split Brain 현상이 발생하면, 각 노드가 동시에 Primary가 되면서 이중 가동 현상이 발생한다. 이렇게 이중으로 가동되면서 각 노드들은 동시에 스토리지에 접근하기 때문에 데이터 동기화 및 복제에 비정상적인 트랜잭션이 발생할 수 있어 다양한 문제로 전체 서비스가 불능상태에 빠질 수 있다. Voting dis..

Oracle 2023.09.06

Oracle RAC

Oracle RAC(Real Application Cluster)란 ? - Oracle DB를 위한 고가용성 솔루션이며 2개 이상의 노드(인스턴스)가 공유 디스크를 이용하여 하나의 DB로 클러스터링된다. - 여러개의 instance가 하나의 Database를 액세스 할 수 있음, 이는 application에서 접속할 수 있는 통로는 여러개 이며 Database는 하나인 형태 - RAC로 연결된 n개의 인스턴스에서 동일한 datafile을 공유하여 액세스 한다. 하지만 Database 작업에 사용할 수 있는 CPU나 메모리 등의 Resource는 서로 공유하지 않으며 해당 Node의 Resource만을 사용한다. Cluster : 두개 이상의 독립된 서버들과 Disk를 하나로 연결하는 기법이다. 사용자가 ..

Oracle 2023.09.05

AutoTrace

AutoTrace : SQL을 튜닝하는데 필요한 정보들을 많이 포함하고 있다. 실행계획 옵션 1. set autotrace on : SQL을 실제 수행하고 그 결과와 함께 실행계획 및 실행통계를 출력 2. set autotrace on explain : SQL을 실제 수행하고 그 결과와 함께 실행계획 및 실행통계를 출력한다. 3. set autotrace on statistics : SQL을 실제 수행하고 그 결과와 함께 실행계획 출력 4. set autotrace traceonly : SQL을 실제 수행하고 그 결과와 함께 실행통계를 출력 5. set autotrace traceonly explain : SQL을 실제 수행하지 않고 실행계획만을 출력 6. set autotrace traceonly st..

Oracle 2023.09.04