본문 바로가기
  • Round and Round

1장 sql 처리 과정과 i/o5

[SQLP] 1-5. I/O 메커니즘 🧷 I/O 메커니즘🖇️ 블록 단위 I/O오라클을 비롯한 대부분의 DBMS에서 I/O는 블록(Block) 단위로 수행된다. 이는 특정 레코드를 읽거나 쓰기 위해 해당 레코드가 포함된 블록 전체를 읽고 써야 함을 의미한다. 오라클의 기본 블록 크기는 8KB이며, 단 1바이트를 읽더라도 최소 8KB를 읽어야 한다. 이 원칙은 테이블뿐만 아니라 인덱스에서도 동일하게 적용된다. 예를 들어, 다음 두 개의 SQL 문을 비교해 보자.SELECT COL FROM TBL WHERE NUM > 100;SELECT * FROM TBL WHERE NUM > 100; 두 쿼리가 동일한 실행 계획을 사용한다면, 서버에서 발생하는 I/O 작업량은 동일하다. 특정 레코드 하나만 읽더라도 해당 레코드가 포함된 블록 전체를 읽어야 .. 2025. 2. 11.
[SQLP] 1-4. 라이브러리 캐시 최적화 🧷 라이브러리 캐시 최적화🖇️ 바인드 변수1. SQL 공유 및 재사용 단점사용자 정의 함수/ 프로시저, 트리거, 패키지 등 의 경우 이러한 오브젝트들은 Stored Object로 분류되며, 생성 시 고유한 이름을 갖는다. 생성과 동시에 컴파일된 상태로 데이터 딕셔너리에 저장되며, 사용자가 삭제하지 않는 한 영구적으로 보관된다. 실행 시에는 라이브러리 캐시에 적재되어 여러 사용자가 공유하며 재사용할 수 있다.SQL의 경우 SQL은 Transient Object로 분류되며, 고유한 이름이 없고 SQL 텍스트 자체가 이름 역할을 한다. 데이터 딕셔너리에 저장되지 않고, 처음 실행 시 최적화 과정을 거쳐 동적으로 생성된 내부 프로시저가 라이브러리 캐시에 적재된다. 이를 통해 여러 사용자가 동일한 SQL을 공.. 2025. 2. 9.
[SQLP] 1-3. SQL 공유 및 재사용 🧷 SQL 공유 및 재사용🖇️ 소프트 파싱 VS 하드 파싱SGA(System Global Area)는 서버 프로세스와 백그라운드 프로세스가 공통적으로 액세스 하는 데이터와 제어구조를 캐싱하는 메모리 공간이다. SGA 구성요소 중에 SQL파싱, 최적화, 로우 소스 생성 과정을 거쳐 생성한 내부 프로시저를 반복 재사용할 수 있도록 캐싱해 두는 공간을  라이브러리 캐시(Library Cache) 이라고 한다.  소프트 파싱(Soft Parsing) : SQL 파싱 후 라이브러리 캐시에 해당 SQL이 존재하면 바로 실행한다.하드 파싱(Hard Parsing) : 라이브러리 캐시에 SQL이 존재하지 않으면 최적화 및 로우 생성 과정을 거친다.하드 파싱이 느린 이유   하드 파싱(Hard Parsing)은 옵티.. 2025. 2. 9.
[SQLP] 1-2. SQL 파싱과 최적화 🧷 SQL 파싱과 최적화🖇️ SQL 이란?SQL : Structured Query Language SQL은 데이터베이스에서 데이터를 질의, 조작, 정의, 제어하기 위한 구조적(Structured)이고 집합적(Set-Based)이며 선언적(Declarative)인 언어이다. 오라클 PL/SQL, SQL Server T-SQL처럼 절차적(Procedural) 프로그래밍 기능을 제공하는 확장 언어도 있지만, SQL은 집합 기반의 결과를 얻기 위한 선언적 언어이다. 사용자는 SQL을 통해 원하는 데이터 결과를 선언하지만, 그 결과 집합을 만드는 과정은 절차적일 수밖에 없다. 이러한 과정을 처리하는 DBMS 내부 엔진이 바로 SQL 옵티마이저(Optimizer)이며, 사용자가 작성한 SQL을 효율적으로 처리할.. 2025. 2. 9.
[SQLP] 1-1. Oracle 아키텍처 🧷 Oracle 아키텍처Oracle 은 데이터베이스와 이를 액세스 하는 프로세스 사이에 SGA(System Global Area)라고 하는 공유 메모리 캐시 영역을 두어 구성된다.데이터베이스(Database) : 디스크에 저장된 데이터 집합으로, 주요 파일로는 데이터 파일(Datafile), Redo Log 파일, Control 파일이 포함된다.인스턴스(Instance) : SGA (공유 메모리 영역)와 이를 액세스 하는 프로세스 집합으로 구성된다.기본적으로 Oracle에서는 하나의 데이터베이스에 대해 하나의 인스턴스가 접근하지만, RAC(Real Application Cluster) 환경에서는 하나의 데이터베이스를 여러 개의 인스턴스가 동시에 액세스 할 수 있다. ✅ RAC (Real Applicat.. 2025. 2. 9.