SQL 그룹함수

SQL 그룹함수

SQL에서 GROUPING SETS, ROLLUP, CUBE와 같은 그룹핑 함수들은 집계 쿼리를 보다 유연하게 만들 수 있도록 도와줍니다. 각 기능의 개념과 예제를 설명하겠습니다. 1. GROUPING SETS GROUPING SETS는 여러 개의 GROUP BY 조건을 한 번에 처리할 수 있도록 도와줍니다. 개별적인 GROUP BY를 조합하여 원하는 그룹핑 조합만 선택적으로 사용할 수 있습니다. 예제 결과 예시 department job total_salary HR … Read more

Snapshot too old(ORA-01555) in Oracle

Snapshot too old(ORA-01555) in Oracle

Oracle “Snapshot too old” 오류와 해결 방법 📌 오류 개요 Oracle에서 “Snapshot too old” 오류는 UNDO 영역 부족으로 인해 발생하는 오류입니다.특히 긴 시간 실행되는 쿼리(대량 데이터 조회, 분석 쿼리 등)에서 많이 발생합니다. (쿼리가 오래 수행되는 동안 UNDO영역에 기존 수행중이던 쿼리에 대한 데이터가 삭제됨) 1. “Snapshot too old” 오류 원인 오라클은 트랜잭션의 일관성을 유지하기 위해 UNDO … Read more

Write Ahead Logging (WAL)

Write Ahead Logging (WAL)

Oracle의 Write-Ahead Logging (WAL) Oracle에서는 Write-Ahead Logging (WAL) 개념이 Redo Log와 Undo Log를 통해 구현됩니다. WAL은 데이터를 디스크의 데이터 파일에 기록하기 전에, 먼저 로그(redo log)에 기록하는 기법으로, 장애 발생 시 데이터 복구 및 트랜잭션의 무결성을 보장하는 핵심 기술입니다. Fast Commit시 사용되는 기법이기도 합니다. 1. Write-Ahead Logging (WAL)의 개념 2. Oracle의 WAL 구조 Oracle의 WAL은 Redo … Read more

MVCC(Multi-Version Concurrency Control, 다중 버전 동시성 제어)

MVCC(Multi-Version Concurrency Control, 다중 버전 동시성 제어)

다중 버전 동시성 제어(MVCC, Multi-Version Concurrency Control)는 데이터베이스 시스템에서 동시성을 관리하는 기법으로, 트랜잭션이 동시에 실행될 때 읽기 작업과 쓰기 작업이 충돌하지 않도록 여러 개의 데이터 버전을 유지하는 방식입니다. 🔹 MVCC의 주요 개념 🔹 MVCC의 장점과 단점 ✅ 장점 ❌ 단점 🔹 MVCC를 사용하는 대표적인 DBMS MVCC는 트랜잭션이 많은 환경에서 높은 동시성과 성능을 제공하는 중요한 기법이며, … Read more

트랜잭션 동시성 제어 (Transaction Concurrency Control)

트랜잭션 동시성 제어 (Transaction Concurrency Control)

트랜잭션 동시성 제어는 다수의 트랜잭션이 동시에 실행될 때 데이터의 일관성을 유지하고, 데이터 충돌을 방지하는 기술입니다. 이를 통해 데이터베이스 무결성을 보장하고, 병렬 처리 성능을 극대화할 수 있습니다. 1. 동시성 문제 여러 트랜잭션이 동시에 수행될 때 다음과 같은 문제가 발생할 수 있습니다. 2. 동시성 제어 기법 동시성 문제를 해결하기 위해 여러 기법이 사용됩니다. (1) 락킹 (Locking) 트랜잭션이 … Read more

버퍼락 (Buffer Lock, Oracle ver)

버퍼락 (Buffer Lock, Oracle ver)

Oracle의 버퍼락(Buffer Lock) 은 Oracle 데이터베이스에서 데이터 블록(buffer cache) 내의 충돌을 방지하기 위해 사용되는 잠금 메커니즘입니다. 일반적으로, 여러 프로세스가 동일한 블록을 액세스하려 할 때 발생하는 동시성 문제를 해결하기 위해 존재합니다. (Row Lock과 다름) 1. 버퍼락의 개념 참고로 오라클은 데이터를 읽는 최소 단위가 블록 단위입니다. Row한줄을 읽어도 블록단위로 읽어옵니다. (한 블록 내에는 수백개의 Row가 있을 수도 … Read more