Refigo Blog

<오라클 성능 고도화 원리와 해법1> Ch06-05 Direct Path I/O

오라클 성능 고도화 원리와 해법1 - Ch06-05 Direct Path I/O 일반적인 블록 I/O는 DB 버퍼 캐시를 경유한다. 즉, 읽고자 하는 블록을 먼저 버퍼 캐시에서 찾아보고, 찾지 못할 때만 디스크에서 읽는다. 데이터 변경도 버퍼 캐시에 적재된 블록에서 이루어지며, DBWR 프로세스가 주기적으로 변경된 블록(Dirty 버퍼 블록)들을 데...

<오라클 성능 고도화 원리와 해법1> Ch06-02 Memory vs. Disk I/O

오라클 성능 고도화 원리와 해법1 - Ch06-02 Memory vs. Disk I/O (1) I/O 효율화 튜닝의 중요성 디스크를 경유한 입출력은 물리적으로 액세스 암(Arm)이 움직이면서 헤드를 통해 데이터를 읽고 쓰기 때문에 느리다. 반면, 메모리를 통한 입출력은 전기적 신호에 불과하기 때문에 디스크 I/O에 비해 비교할 수 없을 정도로 빠르...

<오라클 성능 고도화 원리와 해법1> Ch06-01 블록 단위 I/O

오라클 성능 고도화 원리와 해법1 - Ch06-01 블록 단위 I/O 오라클을 포함한 모든 DBMS에서 I/O는 블록(Block)53) 단위로 이뤄진다. 블록 단위로 I/O 한다는 것은, 하나의 레코드에서 하나의 컬럼만을 읽으려 할 때에도 레코드가 속한 블록 전체를 읽게 됨을 의미한다. 이는 데이터베이스 I/O 성능과 튜닝 원리를 이해하는 데에 매우...

<오라클 성능 고도화 원리와 해법1> Ch06 I/O 효율화 원리 - 개요

오라클 성능 고도화 원리와 해법1 - Ch06 I/O 효율화 원리 - 개요 3장 후반부에 밝혔듯이 데이터베이스 성능 튜닝의 3대 핵심 요소는 다음과 같다. 라이브러리 캐시 최적화 데이터베이스 Call 최소화 I/O 효율화 및 버퍼 캐시 최적화 지금까지 4장과 5장에서 라이브러리 캐시 최적화와 데이터베이스 Call 최소화 원리에 ...

<오라클 성능 고도화 원리와 해법1> Ch05-08 PL/SQL 함수 호출 부하 해소 방안

오라클 성능 고도화 원리와 해법1 - Ch05-08 PL/SQL 함수 호출 부하 해소 방안 다시 한 번 강조하지만, 사용자 정의 함수는 &lt;① 소량의 데이터 조회 시에만 사용&gt;하는 것이 좋다. &lt;② 대용량 데이터를 조회할 때는 부분범위 처리 가능한 상황에서 제한적으로 사용&gt;해야 하며, 되도록이면 &lt;③ 조인 또는 스칼라 서브쿼...

<오라클 성능 고도화 원리와 해법1> Ch05-07 PL/SQL 함수의 특징과 성능 부하

오라클 성능 고도화 원리와 해법1 - Ch05-07 PL/SQL 함수의 특징과 성능 부하 (1) PL/SQL 함수의 특징 오라클은 PL/SQL로 작성된 함수/프로시저의 이식성을 고려해, 오라클 서버가 아닌 Oracle Forms, Oracle Reports 같은 제품에서도 수행될 수 있도록 설계하였다. 그래서 PL/SQL로 작성한 함수와 프로시저를...

<오라클 성능 고도화 원리와 해법1> Ch05-06 페이지 처리의 중요성

오라클 성능 고도화 원리와 해법1 - Ch05-06 페이지 처리의 중요성 클라이언트/서버 환경에서 대용량 데이터를 조회할 때는 커서를 닫지 않은 채 사용자 이벤트(스크를 바를 내리거나 ‘다음’ 버튼을 클릭하는 등)가 발생할 때마다 결과 집합을 Fetch 하도록 구현할 수 있었다. 하지만 웹 애플리케이션 환경에서는 커서를 계속 오픈한 채로 결과 집합을...