정보처리기사 CBT
종목 메뉴

개념 한 쪽

정보처리기사 SQL 성능 튜닝 — 물리적 설계와 동시성 제어

SQL 성능 튜닝은 물리 데이터베이스설계의 성능과 효율을 다루는 관점에서 출발한다. 응답 시간과 저장 공간 효율화, 트랜잭션 처리도를 구분하고, 무결성과 보안, 분산 데이터베이스의 투명성, 로킹 단위의 영향을 함께 판단한다.

2026-11-08 기준 · 정보처리기사 대시보드

이 개념을 문제로 확인하고 싶으면 이 개념 문제 10개 풀기 회원용

가입 없이 오늘의 10문제 바로 풀기 →

시험에 이렇게 나온다

출제기준 단원 「SQL 성능 튜닝」의 공개 문제 3개를 묻는 꼴별로 나누면 이렇습니다.

묻는 꼴문제 수무엇을 묻나
로킹 단위와 병행성 판단1로킹 단위 변화에 따른 공유도와 오버헤드의 방향을 가린다
무결성과 보안의 경계 구분1권한 있는 사용자의 오류 방지와 권한 없는 접근 차단을 구분한다
분산 데이터베이스 투명성 판단1데이터의 실제 저장 위치를 알 필요 없는 성질을 가린다

뜻

SQL 성능 튜닝의 바탕은 물리적 설계 단계에서 실제 성능과 효율을 최적화하는 관점이다. 물리적 설계는 응답 시간, 저장 공간 효율화, 트랜잭션 처리도를 고려하는 단계로 본다. 스키마 평가와 정제는 논리적 설계에서 모델의 타당성을 검증하는 작업으로 구분한다.

물리적 설계의 범위에는 저장 레코드 양식 설계, 레코드 집중 분석, 접근 경로 설계가 포함된다. 트랜잭션 인터페이스 설계는 사용자나 시스템과의 상호작용을 정하는 논리적 설계의 업무로 구분한다. 따라서 저장 구조와 접근 방식의 선택을 물리적 영역으로 보고, 구조와 상호작용의 설계를 논리적 영역으로 나누어 판단한다.

무결성과 보안은 보호 대상이 다르다. 무결성은 권한 있는 사용자가 잘못된 데이터를 입력하는 것을 방지하는 성질로 본다. 보안은 권한 없는 사용자가 데이터베이스에 접근하거나 데이터를 변조하는 것을 막는 성질로 본다.

분산 데이터베이스에서는 데이터의 실제 저장 위치를 알 필요 없는 성질을 위치 투명성이라고 한다. 장애 투명성, 병행 투명성, 중복 투명성은 각각 장애, 동시성, 중복과 관련된 별개의 성질로 구분한다. 분산 데이터베이스는 신뢰성과 가용성, 확장성, 지역 자치성을 높이는 대신 동기화와 분산 트랜잭션 처리의 복잡성으로 개발 및 유지보수 비용이 증가한다.

병행 제어의 로킹 단위가 작아지면 잠금 대상이 세분화되어 공유도는 증가한다. 그러나 관리해야 할 잠금의 수가 늘어나 로킹 오버헤드는 증가한다. 이때 공유도와 오버헤드의 방향을 함께 판단해야 한다.

예제

물리적 설계의 고려 사항을 묻는 자리에서 스키마 평가를 성능 요소로 넣으면 논리적 설계와 물리적 설계의 경계가 흐려진다. 트랜잭션 인터페이스 설계를 물리적 설계로 묶는 설명도 같은 이유로 어긋난다. 무결성은 권한 있는 사용자의 오류 방지로, 보안은 권한 없는 사용자의 접근 차단으로 구분해야 한다. 분산 데이터베이스의 위치 투명성을 장애나 중복의 성질과 바꾸어 설명하는 것도 함정이 된다. 분산 데이터베이스가 비용을 감소시킨다고 하거나, 로킹 단위가 작아질 때 오버헤드가 감소한다고 하면 원리와 반대가 된다.

대표 기출 3문항

병행제어의 로킹(Locking) 단위에 대한 설명으로 옳지 않은 것은?

  1. 데이터베이스, 파일, 레코드 등은 로킹 단위가 될 수 있다.
  2. 로킹 단위가 작아지면 로킹 오버헤드가 감소한다.
  3. 로킹 단위가 작아지면 데이터베이스 공유도가 증가한다.
  4. 한꺼번에 로킹 할 수 있는 객체의 크기를 로킹 단위라고 한다.
정답과 해설 보기

정답 ② · 데이터베이스 병행제어 기법인 로킹의 단위와 그에 따른 특성을 묻는 문제이다. 로킹 단위는 한 번에 잠글 수 있는 객체의 크기를 의미하며, 데이터베이스, 파일, 레코드, 필드 등이 모두 단위가 될 수 있다.

로킹 단위가 작아지면 동시성(공유도)은 증가하지만, 관리 대상이 늘어나 오버헤드는 증가한다.

데이터베이스 무결성과 보안의 차이점에 대한 설명 중 옳은 것은?

  1. 무결성은 권한이 있는 사용자로부터 데이터베이스를 보호하는 것이고, 보안은 권한이 없는 사용자로부터 데이터베이스를 보호하는 것이다.
  2. 무결성은 권한이 없는 사용자로부터 데이터베이스를 보호하는 것이고, 보안은 권한이 있는 사용자로부터 데이터베이스를 보호하는 것이다.
  3. 무결성과 보안은 모두 권한이 있는 사용자로부터 데이터베이스를 보호하는 것이지만, 보안은 사용자 계정과 비밀번호를 관리한다.
  4. 무결성과 보안은 모두 권한이 없는 사용자로부터 데이터베이스를 보호하는 것이지만, 무결성은 DBMS가 자동적으로 보장해 준다.
정답과 해설 보기

정답 ① · 문제는 무결성(integrity)과 보안(security)의 차이를 묻고 있다. 무결성은 권한 있는 사용자의 실수나 잘못된 입력으로부터 데이터의 정확성과 일관성을 보호하는 것을 의미하고, 보안은 권한이 없는 사용자의 불법적 접근으로부터 데이터베이스를 보호하는 것을 의미한다.

무결성은 권한 있는 사용자로부터의 오류 방지, 보안은 권한 없는 사용자로부터의 보호이므로 ①이 옳다.

분산 데이터베이스의 목표 중 접근하고자 하는 데이터베이스의 실제 위치를 인지 할 필요가 없는 것과 관계되는 것은?

  1. 장애 투명성
  2. 병행 투명성
  3. 중복 투명성
  4. 위치 투명성
정답과 해설 보기

정답 ④ · 분산 데이터베이스의 투명성 목표 중 데이터의 실제 저장 위치를 사용자가 인지할 필요 없게 하는 것을 묻는 문제이다. 위치 투명성은 데이터가 물리적으로 어느 사이트에 저장되어 있는지 사용자에게 숨겨주는 특성이다.

사용자가 데이터가 물리적으로 어디에 저장되어 있는지 알 필요 없는 특성을 위치 투명성이라고 합니다.

자주 묻는 물음

물리적 설계의 옵션 선택에서 성능과 효율을 어떻게 구분하는지 확인한다.
응답 시간, 저장 공간 효율화, 트랜잭션 처리도를 성능과 효율의 요소로 보고, 스키마 평가는 논리적 설계의 활동으로 구분한다.
무결성과 보안의 보호 대상을 어떻게 나누는지 확인한다.
무결성은 권한 있는 사용자의 잘못된 데이터 입력을 방지하는 것으로, 보안은 권한 없는 사용자의 접근과 변조를 막는 것으로 구분한다.
로킹 단위가 작아질 때 공유도와 오버헤드가 어떻게 달라지는지 확인한다.
로킹 단위가 작아지면 공유도는 증가하고, 관리 대상이 늘어나 로킹 오버헤드도 증가한다.
이 개념 문제 10개 풀기 회원용

정보처리기사 풀이 세트에서 이 개념의 문제 10개를 바로 풀어 보세요.