๐Ÿ‘จโ€๐Ÿ’ป Oracle DBMS

 

1. Oracle DBMS

1.1 Oracle DBMS ๊ตฌ์กฐ

๊ตฌ๋ถ„ ์„ค๋ช…
Database Data files ๋ฐ์ดํ„ฐ ํŒŒ์ผ์—๋Š” ์‹ค์ œ ์‚ฌ์šฉ์ž ๋ฐ์ดํ„ฐ, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ์ดํ„ฐ, ๋ฉ”ํƒ€ ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.
Control files ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‹œ์ž‘ํ•  ๋•Œ ํ•„์š”ํ•œ ํŒŒ์ผ์˜ ์ด๋ฆ„, ์œ„์น˜ ๋ฐ ์ƒํƒœ์™€ ๊ฐ™์€ ์ •๋ณด์™€ Online Redo Log ํŒŒ์ผ์— ๋Œ€ํ•œ ๋ฉ”ํƒ€ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.
Control files Redo log file์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ๋ฐœ์ƒํ•˜๋ฉด ์ด๋ฅผ ์ €์žฅํ•˜๊ณ  ๋ฐ์ดํ„ฐ ๋ณต๊ตฌ์— ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
Instance SGA Data buffer cache ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ธ์Šคํ„ด์Šค์˜ SGA ๋‚ด์— ์กด์žฌํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์ž…๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ ํŒŒ์ผ์—์„œ ์ฝ์€ ๋ฐ์ดํ„ฐ ๋ธ”๋ก์˜ ๋ณต์‚ฌ๋ณธ์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.
Redo log buffer ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ๋ฐœ์ƒํ•˜๋ฉด ๋จผ์ € Redo log buffer์— ๋ณ€๊ฒฝ ์‚ฌํ•ญ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. Redo๋Š” ์‹œ์Šคํ…œ์— ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•  ๊ฒฝ์šฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ณต๊ตฌ๋ฅผ ์œ„ํ•ด ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
Background Process SMON ์˜ค๋ผํด ์ธ์Šคํ„ด์Šค๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ํ”„๋กœ์„ธ์Šค ์ž…๋‹ˆ๋‹ค. ์ธ์Šคํ„ด์Šค ๋ณต๊ตฌ, ๋ฐ์ดํ„ฐ ํŒŒ์ผ์˜ ๋นˆ ๊ณต๊ฐ„์„ ์—ฐ๊ฒฐ, ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ์ž„์‹œ ์„ธ๊ทธ๋จผํŠธ๋“ค์„ ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
PMON ์˜ค๋ผํด ์„œ๋ฒ„์—์„œ ์‚ฌ์šฉ๋˜๋Š” ํ”„๋กœ์„ธ์Šค๋“ค์„ ๊ฐ์‹œํ•˜๋Š” ํ”„๋กœ์„ธ์Šค์ž…๋‹ˆ๋‹ค. ์ข€๋น„ ํ”„๋กœ์„ธ์Šค ํ‚ฌ, SGA ๋ฆฌ์†Œ์Šค ์ •๋ฆฌ, ์ปค๋ฐ‹๋˜์ง€ ์•Š์€ ํŠธ๋žœ์žญ์…˜์„ ๋กค๋ฐฑํ•ฉ๋‹ˆ๋‹ค.
DBWR Buffer Cache์— ์ˆ˜์ •๋œ(Dirty) ๋ฒ„ํผ์˜ ๋‚ด์šฉ์„ ๋ฐ์ดํ„ฐ ํŒŒ์ผ์— ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค.
LGWR Redo log buffer์˜ ๋‚ด์šฉ์„ Online redo log file์— ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค.
CKPT SGA ์ƒ์— ๋ณ€๊ฒฝ๋œ ๋ฒ„ํผ ์บ์‹œ์™€ ๋ฆฌ๋‘ ๋กœ๊ทธ ๋ฒ„ํผ๋ฅผ ๋””์Šคํฌ ์ƒ์˜ ๋ฐ์ดํ„ฐ ํŒŒ์ผ์— ์ €์žฅํ•˜๋„๋ก DBWR์™€ LGWR๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ฐ ํŒŒ์ผ์˜ ํ—ค๋” ๋ถ€๋ถ„์— ์ฒดํฌ ํฌ์ธํŠธ ์ด๋ฒคํŠธ ์‹œ์ ์„, ์ปจํŠธ๋กค ํŒŒ์ผ์—๋Š” ๋ฐœ์ƒ๋œ ์ฒดํฌ ํฌ์ธํŠธ ์ด๋ฒคํŠธ์˜ ์ •๋ณด๋ฅผ ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ธฐ๋ก์„ ํ†ตํ•ด </span>3๊ฐ€์ง€ ํŒŒ์ผ(Data file, Control file, Redo log file)์˜ ๋™๊ธฐํ™”๋ฅผ ๋ณด์žฅ</span>ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ ์ •๋ณด๊ฐ€ ์ผ์น˜ํ•˜์ง€ ์•Š์œผ๋ฉด ๋ณต๊ตฌ๊ฐ€ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค.
PGA Sort Area ์ •๋ ฌ ์ž‘์—…์„ ์œ„ํ•œ ๊ณต๊ฐ„์ž…๋‹ˆ๋‹ค. ๋ฉ”๋ชจ๋ฆฌ ๋‚ด์—์„œ ์ •๋ ฌ๋˜์–ด ๋น ๋ฅธ ์†๋„๋ฅผ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ pga ํฌ๊ธฐ๋ฅผ ์ดˆ๊ณผํ•  ๊ฒฝ์šฐ ๋””์Šคํฌ์—์„œ ์ •๋ ฌ์ด ์ผ์–ด๋‚˜๋ฏ€๋กœ ์ˆ˜ํ–‰ ์†๋„๊ฐ€ ์ €ํ•˜๋ฉ๋‹ˆ๋‹ค.
Cursor State SQL์˜ ํŒŒ์‹ฑ ์ •๋ณด๊ฐ€ ๊ธฐ๋ก๋˜์–ด ์žˆ๋Š” ์ฃผ์†Œ๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

โ‰๏ธ PGA: ํ”„๋กœ์„ธ์Šค์— ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ์™€ ์ œ์–ด์ •๋ณด๊ฐ€ ํฌํ•จ๋œ ๋น„ ๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์ž…๋‹ˆ๋‹ค.


์˜ค๋ผํด ์•„ํ‚คํ…์ฒ˜


์˜ค๋ผํด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ๋งŽ์€ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋™์‹œ์— ๋ฐ์ดํ„ฐ์— ์—‘์„ธ์Šคํ•˜๋ฏ€๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณดํ˜ธํ•˜๋Š” Lock์€ ๋ฌผ๋ก  ๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์ธ SGA์ƒ์— ์œ„์น˜ํ•œ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์— ๋Œ€ํ•œ Lock ๋งค์ปค๋‹ˆ์ฆ˜(Latch)๋„ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

Random Access ๋ถ€ํ•˜์˜ ์›์ธ ROWID ํš๋“ โ†’ Hash Function(DBA) โ†’ Cache Buffer Chain Latch ํš๋“(Wait) โ†’ Buffer Lock์ด ๊ฑธ๋ฆฐ ๊ฒฝ์šฐ ๋Œ€๊ธฐ ์ด๋ฒคํŠธ ๋ฐœ์ƒ(Wait) โ†’ LRU ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ์˜ํ•ด ํŠน์ • ๋ธ”๋ก์ด Age Out๋œ๋‹ค๋ฉด LRU Latch ํš๋“ ํ•„์š”(Wait)

1.2 Buffer Pinning

์ธ๋ฑ์Šค Leaf ๋…ธ๋“œ๋ฅผ ์Šค์บ”ํ•˜๋ฉฐ RowID๋ฅผ ์ฝ์„ ๋•Œ ๋ฐ”๋กœ ๋‹ค์Œ RowID๋ฅผ ํ•จ๊ป˜ ์ฝ์Šต๋‹ˆ๋‹ค.
๋งŒ์•ฝ ๋™์ผํ•œ DBA(DB Block Address)๋ผ๋ฉด Age Out์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด Pin์„ ๊ฑธ์–ด๋‘ก๋‹ˆ๋‹ค.
Pin์„ ๊ฑธ์–ด๋‘๋Š” ๊ฒƒ๊ณผ ๋™์‹œ์— RowID๋ฅผ PGA์— ์ €์žฅํ•˜์—ฌ ๋ฐ”๋กœ ์ฐพ์•„๊ฐˆ ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
Buffer Pinning์€ Logical Read(Buffer์—์„œ ์ฝ๋Š” ๊ฒƒ)๋กœ ์žกํžˆ์ง€ ์•Š์•„ ์ฟผ๋ฆฌ ์„ฑ๋Šฅ์„ ๋†’์ด๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

๋ฒ„ํผ ํ”ผ๋‹

1.3 Clustering Factor

์ธ๋ฑ์Šค๋ฅผ ์ˆœ์ฐจ์ ์œผ๋กœ ์ฝ์—ˆ์„ ๋•Œ ์ด์ „ RowID์™€ ๋‹ค์Œ RowID์˜ DBA๊ฐ€ ๋™์ผํ•œ ์ •๋„๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ง€ํ‘œ์ž…๋‹ˆ๋‹ค.
์ด์ „ RowID์™€ ๋‹ค์Œ RowID์˜ DBA๊ฐ€ ์ƒ์ดํ•  ๊ฒฝ์šฐ +1 ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
Clustering Factor๊ฐ€ ์ข‹์œผ๋ฉด Buffer Pinning ๊ธฐ๋ฒ•์œผ๋กœ ์–ป๋Š” ์ด์ ์ด ๊ทน๋Œ€ํ™”๋ฉ๋‹ˆ๋‹ค.
ํ†ต์ƒ์ ์œผ๋กœ์ธ๋ฑ์Šค์˜ ์†์ต๋ถ„๊ธฐ์ ์€ 10 ~ 15%๋ผ๊ณ  ํ•˜์ง€๋งŒ, ์ •ํ™•ํžˆ๋Š”ํด๋Ÿฌ์Šคํ„ฐ๋ง ํŒฉํ„ฐ์— ์˜ํ•ด์„œ ์ขŒ์šฐ๋ฉ๋‹ˆ๋‹ค.

C.F ์ˆ˜์น˜๊ฐ€ ๋‚ฎ์Œ (ํด๋Ÿฌ์Šคํ„ฐ๋ง ํŒฉํ„ฐ๊ฐ€ ์ข‹์Œ) C.F ์ˆ˜์น˜๊ฐ€ ๋†’์Œ (ํด๋Ÿฌ์Šคํ„ฐ๋ง ํŒฉํ„ฐ๊ฐ€ ๋‚˜์จ)
โ€ข C.F ์ˆ˜์น˜๊ฐ€ ๋ธ”๋ก ์ˆ˜์— ๊ทผ์ ‘
โ€ข R.A ํšจ์œจ์ด ์ข‹์Œ (Buffer Pinning ํšจ๊ณผ)
โ€ข C.F ์ˆ˜์น˜๊ฐ€ ๋กœ์šฐ ์ˆ˜์— ๊ทผ์ ‘
โ€ข R.A ํšจ์œจ์ด ๋‚˜์จ

ํด๋Ÿฌ์Šคํ„ฐ๋ง ํŒฉํ„ฐ

์ธ๋ฑ์Šค์— ์ปฌ๋Ÿผ์ด ์ถ”๊ฐ€๋  ๊ฒฝ์šฐ ํด๋Ÿฌ์Šคํ„ฐ๋ง ํŒฉํ„ฐ์— ์˜ํ–ฅ์„ ์ฃผ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

๊ตฌ๋ถ„ ๋ณ€๊ฒฝ ์ „ ๋ณ€๊ฒฝ ํ›„
์ธ๋ฑ์Šค ์‚ฌ์›๋ช… ์‚ฌ์›๋ช… + ๊ธ‰์—ฌ
์ •๋ ฌ ์ˆœ์„œ ์‚ฌ์›๋ช… + RowID ์‚ฌ์›๋ช… + ๊ธ‰์—ฌ + RowID
ํด๋Ÿฌ์Šคํ„ฐ๋ง ํŒฉํ„ฐ ์ข‹์Œ(๋‚ฎ์Œ) ๋‚˜์จ(๋†’์Œ)