Refigo Blog

<오라클 성능 고도화 원리와 해법1> Ch03 오라클 성능 관리 - 도입

오라클 성능 고도화 원리와 해법1 - Ch03 오라클 성능 관리 - 도입 프로젝트에 참여할 때마다 기본적인 튜닝 교육을 실시해 보지만, 교육에 열의를 보이던 개발자조차도 실제 성능 문제에 맞닥뜨렸을 때 스스로 문제를 해결하지 못하는 경우가 대부분이다. 교육 내용이 실질적인 성과로 연결되지 못하는 이유를 따져 보니, 튜닝 절차와 방법론에 대한 언급 없...

<오라클 성능 고도화 원리와 해법1> Ch02-04 동시성 구현 사례

오라클 성능 고도화 원리와 해법1 - Ch02 트랜잭션과 Lock - 04 동시성 구현 사례 지금까지 동시성 제어의 개념과 기본적인 구현 패턴을 살펴봤고, 이들 개념을 실제 프로젝트에 적용해서 효과적으로 동시성 문제를 해결했던 사례를 2가지만 소개하고자 한다. (1) 일련번호 채번 동시성 높이기 첫 번째는 Locking을 최소화하면서 채번 테이블...

<오라클 성능 고도화 원리와 해법1> Ch02-03 비관적 vs. 낙관적 동시성 제어

오라클 성능 고도화 원리와 해법1 - Ch02 트랜잭션과 Lock - 03 비관적 vs. 낙관적 동시성 제어 동시성 제어를 위해, 앞에서 설명한 트랜잭션 고립화 수준을 변경하는 DBMS 기능을 사용할 수 없는 경우가 있다. 특히, n-Tier 구조가 지배적인 요즘 같은 개발 환경에서 더욱 그렇고, 그럴 때는 트랜잭션의 동시성 제어를 개발자가 직접 구...

<오라클 성능 고도화 원리와 해법1> Ch02-02 트랜잭션 수준 읽기 일관성

오라클 성능 고도화 원리와 해법1 - Ch02 트랜잭션과 Lock - 02 트랜잭션 수준 읽기 일관성 (1) 트랜잭션 수준 읽기 일관성이란? 문장 수준 읽기 일관성(Statement-Level Read Consistency)은 쿼리가 시작된 시점을 기준으로 데이터를 일관성 있게 읽어들이는 것을 말하며, 앞장에서 충분히 설명하였다. 트랜잭션 수준 읽...

<오라클 성능 고도화 원리와 해법1> Ch02-01 트랜잭션 동시성 제어

오라클 성능 고도화 원리와 해법1 - Ch02 트랜잭션과 Lock - 01 트랜잭션 동시성 제어 (1) 동시성 제어 오랜 기간 시스템을 운영하다 보면 데이터 구조가 점점 복잡해지고 데이터 정합성도 많이 흐트러져 새로운 업무 요건에 빠르게 대응할 수 없는 상황에 직면하게 된다. 결국, 엄청난 예산을 들여 신 시스템 구축에 착수하게 되고 대규모 인력이...

<오라클 성능 고도화 원리와 해법1> Ch02 트랜잭션과 Lock - 도입

오라클 성능 고도화 원리와 해법1 - Ch02 트랜잭션과 Lock - 도입 1장에서 아키텍처를 설명하면서 오라클만의 독특한 읽기 일관성 모델을 비교적 자세히 설명했다. DB2, SQL Server, Sybase 등은 Lock을 통해 읽기 일관성을 구현하지만, 오라클은 Undo 데이터를 이용해 읽기 일관성을 구현한다는 게 핵심이다. 즉, Undo에 저...

<오라클 성능 고도화 원리와 해법1> Ch01-11 Shared Pool

오라클 성능 고도화 원리와 해법1 Ch01 오라클 아키텍처 - 11 Shared Pool 이제 SGA의 가장 중요한 구성 요소 중 하나인 Shared Pool에 대해 간단히 살펴보자. (간단히 설명하는 이유는 중요성이 떨어지기 때문이 아니라 너무 중요한 내용이어서 뒤에서 더 자세히 다루려는 것이다.) (1) 딕셔너리 캐시 Shared Pool은 ...

<오라클 성능 고도화 원리와 해법1> Ch01-10 대기 이벤트

오라클 성능 고도화 원리와 해법1 Ch01 오라클 아키텍처 - 10 대기 이벤트 (1) 대기이벤트란? 우리 사회는 매우 분업화된 조직 사회다. 분업해서 일을 진행하다 보면 내가 계속 일을 진행하기 위해선 다른 사람이 일을 마치기를 기다려야만 할 때가 많다. 만약 앞 사람의 작업이 오래 걸릴 것 같으면 눈빠지게 기다리는 것보다 잠시 잠을 청하는 게 ...