Skip to content

📌 구 교재용. 데이터셋 A~E가 어느 계정에 있는지를 단일 컨테이너 기준으로 적은 문서다. 『튜너의 1년』 본편에서는 같은 데이터셋이 컨테이너 4대로 나뉜다(고객사/README.md). (A·B → ora-hanorder · C → ora-burger · D → ora-dist · E + SQL BOOSTER 원본 → ora-newshop)

00. 실습 데이터셋 종합 안내 (어디에 무엇이 있는가) ​

이 프로젝트에서 쓰는 모든 실습 데이터셋의 위치와 계정, 빌드 방법, ERD, 용도를 한곳에 모았다. "A·B는 어디에?", "SQL BOOSTER 파일은?", "성능고도화(Hero)는 무슨 파일을 쓰나?" 같은 질문은 이 문서 하나로 답한다. 환경 자체(Docker/계정/권한)는 Oracle 실습환경 구축가이드에서 다룬다.


1. 데이터셋 5종 한눈에 ​

#데이터셋계정도메인규모빌드 방법ERD·조감도주로 쓰는 단계
A기본 샘플(SCOTT+주문)sqlp사원/주문EMP14·CUST2만·ORDERS20만00_sample_schema_setup.sql 실행스키마A_ERD_조감도.md1·2·3 전체 기본
BSQL BOOSTER 쇼핑몰sqlp쇼핑몰 주문T_ORD10만·T_ORD_BIG 100만00_SQLBOOSTER_실습스키마_setup.sql 실행스키마B_ERD_조감도.md대용량 튜닝·Hero
C튜닝에센셜(버거)dev/tester패스트푸드 주문주문 N(권장 100만) + CF비교·파티션오라클튜닝에센셜/README.md데이터_조감도_ERD_인덱스.md인덱스·CF·파티션 심화
DSQL 파워업(유통)pup/pup유통 18테이블CF10 50만·CF11 110만오라클SQL파워업/README.md데이터_조감도_ERD_인덱스.md주차별 평행 실습·조인
E이커머스(정규화 30)ecommerce이커머스 3NF~48.5만 행·인덱스0이커머스_데이터셋_구축가이드.md이커머스_ERD_조감도.md조인체인·계층·SCD2

A·B는 sqlp 계정에 함께 올라간다(기본 실습용). C·D·E는 테이블명이 충돌하지 않도록 전용 계정(dev/pup/ecommerce)에 따로 올린다. 🔸 B는 빌드 방법이 2가지다. ① 축소판(위 표, sqlp, 한 번에 빠르게 / Hero가 쓰는 T_ORD_BIG 100만) ② 책 원본 챕터별 빌드: SQL_BOOSTER/README(ORA_SQL_TEST, C1~C11 따라 치기).


2. A·B는 정확히 어디에 있나 (질문 답) ​

A. 기본 샘플 스키마 (SCOTT + 주문) ​

B. SQL BOOSTER 쇼핑몰 스키마 ← 여기 있다 ​

SQL BOOSTER 책 정리 노트는 1_시험준비_SQLP합격/11_SQLBOOSTER_정리/에 있고, 스키마 B 생성 스크립트와 ERD는 10_본편_튜너의_1년/00_자료준비/고객사/L1_ora-hanorder/로 옮겨 두었다.

  • 스키마 생성(SQL 파일): 11_SQLBOOSTER_정리/실습/00_SQLBOOSTER_실습스키마_setup.sql. sqlp로 실행하면 M_RGN/M_ITM/M_CUS/T_ORD/T_ORD_DET/T_ITM_EVL과 T_ORD_BIG(100만, 무인덱스)를 직접 만든다(원서의 15GB 대신 CONNECT BY로 만든 축소판).
  • 책 정리/매핑: 00_개요_및_매핑.md (공개 사이트에는 없음) · PART별 01_PART1… (공개 사이트에는 없음)·02_PART2… (공개 사이트에는 없음)·03_PART3… (공개 사이트에는 없음).
  • 단원별 실습 SQL: 실습/01_단원별_실습SQL.md (공개 사이트에는 없음).
  • ERD: 스키마B_ERD_조감도.md.
  • 📂 (추가) 책 원본을 챕터별로 따라 치기: 계정은 ORA_SQL_TEST이고, 안내는 데이터생성기/SQL_BOOSTER/README.md에 있다. C1(기본 9테이블+FK 7개)→C6(T_ORD_BIG 대용량)→C7/C8 순으로 책 그대로 구축한다. 위의 11_… 축소판(sqlp)과는 별개로 공존한다(같은 도메인, 다른 계정과 구성). ERD: 데이터_조감도_ERD_인덱스.md
  • ⚠️ M_CUS.CUS_ID/T_ORD_BIG.CUS_ID는 VARCHAR2('CUS_000123') 형식이다. 스키마 A의 cust_id(NUMBER)와 타입이 다르므로 두 스키마를 한 쿼리에서 섞으면 안 된다.

3. ★ 심화 성능고도화(Hero, 3_심화_성능고도화/16_Hero_성능고도화/)가 쓰는 파일 ​

Hero 랩(Lab01~10)은 새 데이터셋이 아니라 A·B를 그대로 쓴다(내부 구조와 실측이 중심이라 데이터보다 권한과 대용량이 중요하다).

선행 준비 (Hero 시작 전 한 번):

  1. 스키마 A: sqlp로 00_sample_schema_setup.sql을 실행해 ORDERS/CUSTOMERS/EMP/DEPT를 만든다(모든 랩이 사용).
  2. 스키마 B의 T_ORD_BIG(100만): sqlp로 00_SQLBOOSTER_실습스키마_setup.sql을 실행한다(9/10 랩이 대용량 실측에 사용).
  3. 측정 권한: 00_sqlp_권한부여.sql(SELECT_CATALOG_ROLE 등). 일부 랩은 DBA/SYSDBA 권한(V$/X$/10046/10053 트레이스)이 필요하므로 각 랩 상단의 경고를 참고한다.
  4. (선택) 일부 랩은 스크립트 안에서 파티션 테이블이나 결합 인덱스 같은 임시 객체를 직접 CREATE하고 끝에서 DROP한다(원복).

실제 실행 코드: 각 랩 본문 Lab0N_*.md와 실행 스크립트 16_Hero_성능고도화/실습SQL/Lab0N_*.sql (공개 사이트에는 없음) (10개).

랩주제주 사용
Lab01 아키텍처SGA/PGA·프로세스A + B(대용량 부하)
Lab02 버퍼캐시CBC·LRU·X$BHA + B(T_ORD_BIG)
Lab03 Redo/UndoITL·CR·1555A + B
Lab04 Lock/Latchenqueue·2세션A + 자체 임시테이블(T_ORD_BIG 미사용)
Lab05 SharedPool바인드·커서A + B
Lab06 Call/I-Oarray·prefetchA + B
Lab07 인덱스CF·IOT·비트맵A + B
Lab08 조인NL/해시 내부A + B
Lab09 옵티마이저10053·통계·변환A + B
Lab10 소트/파티션/병렬work area·granuleA + B + 스크립트 생성 파티션테이블

정리: Hero = 스키마 A + 스키마 B(T_ORD_BIG) + 측정/DBA 권한. C(dev), D(pup), E(ecommerce)는 Hero에 필요 없다(이 셋은 SQL 활용과 중급 실습용 대체 데이터셋이다).


4. 학습 단계별 데이터셋 매핑 ​

단계폴더주력 데이터셋
1. 시험준비(합격)1_시험준비_SQLP합격/A(기본), B(SQL BOOSTER), + 주차별 평행 실습에 D(pup)
2. 중급 딥다이브2_중급실전_딥다이브/A·B (실습SQL), 보조로 C·D·E
3. 심화 Hero3_심화_성능고도화/A + B(T_ORD_BIG) + DBA 권한
(선택 심화 실습)—C 튜닝에센셜(CF·파티션), D 파워업(유통 대용량 조인), E 이커머스(정규화 조인체인)

5. 빠른 설치 순서 (전체를 다 쓰려면) ​

1) 환경: Oracle_실습환경_구축가이드.md (Docker oracle-free + sqlp 권한)
2) A:   sqlp 로 00_sample_schema_setup.sql           → 00_환경점검.sql
3) B:   sqlp 로 11_…/실습/00_SQLBOOSTER_실습스키마_setup.sql
   └ 여기까지면 1·2단계 + Hero 학습 가능
4) C:   데이터생성기/오라클튜닝에센셜/README.md       (dev 계정, 선택)
5) D:   데이터생성기/오라클SQL파워업/README.md         (pup 계정, 선택)
6) E:   이커머스_데이터셋_구축가이드.md                (ecommerce 계정, 선택)

각 데이터셋의 테이블과 관계, 인덱스 상세는 위 표의 ERD·조감도 링크에서 확인한다.