[์๋ก์ด ๋์ฉ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์๋ฃจ์ ] ์ 1๋ถ ์์ธ์ค ์ํฅ ์์์ ์ดํด1
์ 1์ฅ ๋ฐ์ดํฐ ์ ์ฅ๊ตฌ์กฐ์ ํน์ง
1.1 table, index ๋ถ๋ฆฌํ
* ๊ด๊ณํ DB ์ด์ ์๋ Key์ ์ญํ ์ด ์ค์ (ํค๋ฅผ ์ฐพ๋ ๊ฒ์ด ๊ณง ๋ฐ์ดํฐ๋ฅผ ์ฐพ๋ ๊ฒ)
key๋ฅผ ์์ธ์ค ํ ๋, data์ ์์น๋ฅผ ๋ฐ๋ก ํ์ ํ ์ ์์ผ๋ฉด? ๊ตณ์ด ํค ์์ ๋ฐ์ดํฐ๋ฅผ ๋ฌ์ ๋ ํ์ X
key์์ ๋ค์ data๋ฅผ ์ฐพ์๊ฐ๋ ๋ฒ๊ฑฐ๋ฌ์ ๊ฐ์ํด์ผ ํ์ง๋ง,
์ผ๋จ ์ ์ฅ๋ง ํ๋ค๋ฉด ์ ์ฅ์ ๋ถ๋ด์ ๋งค์ฐ ๊ฐ์, ์ ์ฅ ์ ์ธ๋ฑ์ค์ ๋ ๋ฆฝ์ ์ผ ์ ์๋ค๋ ๊ฒ์ธ ์ฅ์ ์ด ๋จ!
(์, ์ผ๊ตฌ์ฅ์ ์๋ฌด ์๋ฆฌ์๋ผ๋ ์์ ์ ์์ผ๋ฉด ๋ค์ ์ฌ๋๋ค์ด ์ ์ฅํ๋๋ผ๋ ๊ธฐ๋ค๋ ค์ผํ๋ ๋ถ๋ด์ ์์)
- ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ํ ์ด๋ธ๊ณผ ๋ฐ์ดํฐ๋ฅผ ์ฐพ๊ธฐ ์ํ ์ ๋ณด๋ฅผ ๋ด๋ ์ธ๋ฑ์ค๊ฐ ๋ณ๊ฐ์ ๊ฐ์ฒด๋ก ์กด์ฌํ๋ ์ ์ฅ ํํ
- ๋์ฉ๋ ๊ด๊ณํ DB์ ๊ฐ์ฅ ์ผ๋ฐ์ ์ธ ๊ตฌ์กฐ
1.1.1 ๋ถ๋ฆฌํ ํ ์ด๋ธ ๊ตฌ์กฐ
์ ์ฅ๋ data๊ฐ ๋ค์ด ์์ ๋,
๋ธ๋ก(block)๋ค ์ค ์ฌ์ฉ๋์ง ์์ ๋ธ๋ก ๋ฐ ์ฌํ์ฉ์ด ๊ฐ๋ฅํ ๋ธ๋ก์ด ๊ธฐ๋ก๋ ์ฌ์ฉ๋ชฉ๋ก(Free List)์์
ํ๋์ ๋ธ๋ก์ด ์ ํ๋์ด data๊ฐ๊ณผ๋ ๋ฌด๊ดํ๊ฒ ์ ์ฅ๋จ. (์ ์ฅ ์ ๋ถํ๊ฐ ๋ฎ์ง๋ง, ์์ธ์ค ์ ๋ถ๋ด์ด ์ฆ๊ฐ)
block ํ๋จ์ 'Free Space'๋ ์๋ก์ด ๋ก์ฐ๊ฐ ๋ค์ด์ฌ ๋ ์ฌ์ฉํ๋ ๊ณต๊ฐ์ด ์๋๋ผ,
๋ก์ฐ๋ค์ ๊ธธ์ด์ ๋ณํ๊ฐ ์๊ฒผ์ ๋ ์ฌ์ฉํ๋ ๊ณต๊ฐ
(Table ์ ์ ์ ํ๋ผ๋ฉํ(PCTFREE)๋ก ์ ์ฅ ๊ฐ๋ฅ)

DBMS์์ ๋ค๋ฃจ๋ ๋ฐ์ดํฐ ๋จ์ ๋ฐ ๊ฐ๋

ํ ์ด๋ธ ์คํ์ด์ค(Table Space)
- ๋ ผ๋ฆฌ์ ์ธ ์ ์ฅ ๊ณต๊ฐ
- ex. ์ข ํฉ์์ค์ ์ ์ถํ๊ธฐ ์ํด ๋ง๋ จํ '๋ถ์ง'
- ๋ฌผ๋ฆฌ์ ์ธ ํ์ผ+ ํ์ผ (+@)๋ก ๊ตฌ์ฑ
์ธ๊ทธ๋จผํธ(Segment)
- ํ ์ด๋ธ ์คํ์ด์ค๋ฅผ ์ฉ๋๋ณ๋ก ๋๋ ๋จ์
- ex. '๊ฑด๋ฌผ ๋ถ์ง', '์ด๋์ฅ ๋ถ์ง' ๋ฑ
- ๋ฐ์ดํฐ ์ค๋ธ์ ํธ๊ฐ ๋ค์ด์ฌ ์ ์๋ค
์ค๋ธ์ ํธ(Obect)
- ํ ์ด๋ธ, ์ธ๋ฑ์ค, ํํฐ์ ์ด ๋ฐ์ํ ํ ์ด๋ธ ๋ฑ์ด ๊ฐ๊ฐ์ ์ค๋ธ์ ํธ
- ๊ฐ๋ณ ํํฐ์ ํ ์ด๋ธ์ด๋ ํํฐ์ ๋์ง ์์ ํ ์ด๋ธ๋ค์ ๋ฐ๋์ ํ๋์ ํ ์ด๋ธ ์คํ์ด์ค์๋ง ์กด์ฌํด์ผํ๋ค
- ex. ๊ฑด๋ฌผ ํ๋๊ฐ ์ ์ฒด์ธ '๋ ๋ฆฝ์ฃผํ', ๋ถํ (ํํฐ์ ) ๋ '์ํํธ ํ ๋' ๋ฑ
ROWID
- '์ค๋ธ์ ํธ ๋ฒํธ' + '๋ฐ์ดํฐํ์ผ๋ฒํธ(ํ ์ด๋ธ์คํ์ด์ค๋น ์ผ๋ จ๋ฒํธ)' + '๋ธ๋ก๋ฒํธ' + '์ฌ๋กฏ๋ฒํธ' ๋ก ๊ตฌ์ฑ
- ์ค๋ธ์ ํธ ๋ฒํธ(Object number) : DB Segment ์๋ณ ์ ๋ณด (ํด๋น ๋ก์ฐ๊ฐ ์ํด์๋ ์ค๋ธ์ ํธ ๋ฒํธ)
- ๋ฐ์ดํฐํ์ผ ๋ฒํธ(Datafile number) : Tablespace์ ์๋์ Datafile ๋ฒํธ (ํด๋น ๋ก์ฐ๊ฐ ์ํด์๋ ๋ฐ์ดํฐํ์ผ ๋ฒํธ)
- ๋ธ๋ก ๋ฒํธ(Block number) : Row๋ฅผ ํฌํจํ๋ DataBlock ๋ฒํธ (ํด๋น ๋ก์ฐ๊ฐ ์ํด์๋ ๋ฐ์ดํฐํ์ผ์ ๋ฐ์ดํฐ ๋ธ๋ก ์ฃผ์๊ฐ)
- ์ฌ๋กฏ ๋ฒํธ(Slot number) : ๋ฐ์ดํฐ ๋ธ๋ก ๋ด์์ ํด๋น ๋ก์ฐ๊ฐ ์์นํด์๋ ์ฌ๋กฏ ๋ฒํธ(ex. ์ฃผ์ ์ฐํธ๋ฒํธ)
- Rowid๋ ํ ์ด๋ธ์ ์กด์ฌํ๋ ๊ฒ์ด ์๋๋ผ ์ธ๋ฑ์ค์ ์กด์ฌ
- Rowid๋ ๊ตฌ์ฒด์ ์ธ ์์น์ ๋ณด๊ฐ ์๋ ๊ฒ์ด ์๋๋ผ ์์น๊ฐ ๋ค์ด์๋ ๋ฐฉ(์ฌ๋กฏ)์ ๋ฒํธ๋ง ์กด์ฌ
- ๋ฐ๋ผ์, ๋ธ๋ก ๋ด์์ ๋ก์ฐ์ ์์น๊ฐ ์๋ฌด๋ฆฌ ์ด๋ํ๋๋ผ๋ Rowid๋ ๊ฒฐ์ฝ ๋ณํ์ง ์๋๋ค!
๋ธ๋ญ ๋ด์ ์ ์ฅ๋ ๋ก์ฐ๊ฐ ํ์กฐ๊ฐ(one piece)์ด ๋๋๋ก ํ๊ธฐ ์ํ ๊ณต๊ฐ์ ์์ง๋ง, ์ด์ด์ง ์กฐ๊ฐ์ด ์์ด ์ ์ฅ์ด ๋ถ๊ฐ๋ฅํ๊ฒ ๋ ๋
์๋์ผ๋ก ๋ธ๋ก์ ๋ก์ฐ๋ค์ ์ฌ๊ตฌ์ฑํ๋ ์์ ์ด ์ผ์ด๋จ
์ด๋ฅผ, ์์ถ(Condensing) ์ด๋ผ๊ณ ํ๋ค.
๊ธธ์ด๊ฐ ์ฆ๊ฐํ ํ๋ฅ ์ ๊ทธ๋ฆฌ ๋์ง ์๋๋ผ๋ ์์ ์ด ๋น๋ฒํ๊ฒ ๋ฐ์ํ ๊ฐ๋ฅ์ฑ์ด ๋๋ค๋ฉด
๋ค์ ์ถฉ๋ถํ๊ฒ ์ฌ์ ๊ณต๊ฐ(PCTFREE)์ ์ง์ ํด์ฃผ์.
์ฌ์ ๊ณต๊ฐ์ ์ถฉ๋ถํ ๋ถ์ฌํ๋๋ผ๋, ๋ฐ์ํ ๋ก์ฐ๋ค์ ๊ธธ์ด๊ฐ ๋๋ฌด ๋ง์ด ์ปค์ ธ ์์ถ์ ํ๋๋ผ๋ ๋ก์ฐ์ ๊ธธ์ด๊ฐ ๋์ด๋ ๋ ๊ฒฐ๊ตญ ๋ค๋ฅธ ๋ธ๋ก์ ์ฌ์ฉํ ์ ๋ฐ์ ์๋ค. ๋ก์ฐ๊ฐ ๋ค๋ฅธ ๋ธ๋ก์ผ๋ก ์ด๋ = ROWID์ ๋ณ๊ฒฝ
์ด๋ฅผ, ๋ก์ฐ์ ์ด์ฃผ(Migration) ์ด๋ผ๊ณ ํ๋ค.
(= ๋น์ทํ๋ ๋ค๋ฅธ ๊ฐ๋ )
์ฌ๋ฌ ๋ธ๋ก์ ๊ฑธ์ณ ๋ฐ์ดํฐ๊ฐ ์กด์ฌํ๋ ์ ์์ ์ด์ฃผ์ ์ ์ฌํ๋, ์ด๋ค ๋ก์ฐ์ ๊ธธ์ด๊ฐ ํ๋ธ๋ก์ ๋๋๋ค๋ฉด ๋ค๋ฅธ ์ด๋ค ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋๋ผ๋ ํ๋์ ๋ธ๋ก ๋ด์๋ ์กด์ฌํ ์ ์๊ธฐ ๋๋ฌธ,
ํ์ํ ๊ณต๊ฐ๋งํผ ๋ธ๋ก์ ์ฐ๊ฒฐํด์ ์ ์ฅํด์ผํ๋๋ฐ ์ด๋ฅผ, ์ฒด์ธ(Chain)์ด ๋ฐ์ํ๋ค๋ผ๊ณ ํ๋ค.