2024. 1. 14. 20:54ใDatabase/DB ์คํฐ๋
ํ์ฌ DB ์คํฐ๋์ ์ผํ์ผ๋ก '์น์ ํ SQL ํ๋'์ ํ๋ฒ ๋ ์ฝ๊ณ ์๋ค. ์ด๋ฒ ํํธ๋ ์ํธ ๋จธ์ง ์กฐ์ธ + ํด์ ์กฐ์ธ ์ธ๋ฐ, ๊ฐ์ธ์ ์ผ๋ก ํด๋น ์์ ์ ์ด๋ฏธ 1ํ๋ ํ ์ํฉ์ด๋ผ ๋ ์กฐ์ธ์ด ๋๋ต์ ์ผ๋ก ์ด๋ป๊ฒ ์๋ํ๊ณ , ์ด๋ค ์ํฉ์์ ํ์ฉ๋๋์ง๋ ์ดํดํ๊ณ ์๋ค.
๋ค๋ง 1ํ๋ ์ ์ ๋ชฐ๋ผ์ ๊ทธ๋ฅ ๋์ด๊ฐ๋ ์ค๋ผํด์ PGA์ SGA์ ๊ฐ๋ ์ด ์๋๋ฐ, ์ด๋ฒ ๊ธฐํ์ ์ด๋ฅผ ๊ณต๋ถํ๊ณ ๋์ด๊ฐ๋ฉด ์ข๊ฒ ๋ค ์ถ์ด ๊ณต๋ถํ ๋ด์ฉ๋ค์ ๊ธฐ๋กํด๋๊ธฐ ์ํด ์ด ๊ธ์ ์์ฑํ๋ค. ์ด ๊ธ์์๋ ์ฑ ์์ ๊ฐ๋จํ๊ฒ ๋ค๋ค์ง ๋ฐ์ดํฐ ์กฐํ ์ SGA์ PGA ์ ๊ทผ์ ์๋ ์ฐจ์ด์ ์ค์ ์ ๋๊ณ ๋ค๋ค๋ณด๋ คํ๋ค.
๊ฐ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ๋ํ ์๊ฐ
SGA
SGA๋ System Global Area์ ์ฝ์๋ก, DB ๋ด ํ๋๋ง ์กด์ฌํ๋ฉด์ ๋ชจ๋ ์ธ์ ์ด ๊ณต์ ํ๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ด๋ค.
SGA๋ ์ค๋ผํด์์ ์ด๋ฅผ ์ง์นญํ๋ ๋ฐฉ์์ด๊ณ Mysql์ Global Memory, PG์์๋ Shared Memory๋ผ๊ณ ์ง์นญํ๋ค.
ํด๋น ๋ฉ๋ชจ๋ฆฌ ๋ด์๋ ๋ฒํผ ์บ์, ๋ฆฌ๋ ๋ฒํผ, ๊ณต์ ํ, ์๋ฐ ํ ๋ฑ์ด ์์นํ๋ค.
๊ฐ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ๋ํ ์ค๋ช ์ ๊ฐ๋ตํ๊ฒ ํ๋ฉด ์๋์ ๊ฐ๋ค.
- ๊ณต์ ํ(Shared Pool): ์ฃผ๋ก ์ฟผ๋ฆฌ ๊ตฌ๋ฌธ ๋ถ์(Parsing)์ ์ํด ํ์ฉ๋๋ ๊ณต๊ฐ. ๋์ผํ ์ฟผ๋ฆฌ์ ๋ํด์๋ ๋ฏธ๋ฆฌ Hard Parsing์ ์ํํ ๋ด์ฉ์ ํด๋น ๊ณต๊ฐ์ ์ ์ฅํด๋๊ณ , ์ดํ ๋์ผํ ์ฟผ๋ฆฌ์ ๋ํด์๋ ์ด ๊ฒฐ๊ณผ๋ฅผ ํ์ฉํ๋ Soft Parsing ๋ฐฉ์์ผ๋ก ์ ๋ํจ.
- ๋ฒํผ ์บ์(Buffer Cache): ๋์คํฌ์์ ์ฝ์ด์จ ์ธ๋ฑ์ค ๋ธ๋ก๊ณผ ๋ฐ์ดํฐ ๋ธ๋ก์ด ์บ์๋๋ ๊ณต๊ฐ. DB๋ ๋ฐ์ดํฐ๋ฅผ ์ฐพ๊ธฐ ์ํด ๋์คํฌ์ ์ ๊ทผํ๊ธฐ ์ ์, ํด๋น ๊ณต๊ฐ์์ ์ฐพ๋ ๋ฐ์ดํฐ๊ฐ ์๋์ง ํ์ธํ๋ ์ ์ฐจ๋ฅผ ๊ฐ์ง.
- ๋ฆฌ๋ ๋ฒํผ(Redo Buffer): DB์์ ๋ฐ์ํ ๋ณ๊ฒฝ ์ด๋ ฅ๋ค์ด ๊ธฐ๋ก๋๋ ๋ฆฌ๋ ๋ก๊ทธ์ ๋ํด ์์ง ๋์คํฌ์ ๋ฐ์๋์ง ์์ ๋ฆฌ๋ ๋ก๊ทธ๋ค์ด ์ ์ฅ๋์ด ์๋ ๊ณต๊ฐ.
- ์๋ฐ ํ(Java Pool): Oracle์์๋ Java ๊ตฌ๋ฌธ๋ถ์๋ ์ํ๊ฐ๋ฅํ๋ฐ, ์ด๋ฅผ ์ํ ๊ณต๊ฐ์ด๋ค. ๋ค๋ง ํด๋น ๊ธฐ๋ฅ์ ํ์ฉํ๋ ค๋ฉด ์ถ๊ฐ์ ์ธ ์ค์ ์ด ํ์.
ํด๋น ๊ธ์ ์ต์ข ์ ์ธ ๋ชฉ์ ์ ๋ฐ์ดํฐ ์กฐํ ์ SGA์ PGA์ ์๋ ์ฐจ์ด์ด๊ธฐ ๋๋ฌธ์, ์ด๋ฅผ ์ํด ์ฌ์ฉ๋๋ ๋ฒํผ ์บ์ ์ธ์ ์์ญ์ ๋ํด์๋ ๋ค๋ฃจ์ง ์๊ฒ ๋ค.
PGA
PGA๋ Process Global Area์ ์ฝ์๋ก, DB ๋ด ์ธ์ ๋ณ๋ก ํ๋์ฉ ์กด์ฌํ๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ด๋ค.
PGA๋ ๋ช ์นญ ์ญ์ ์ค๋ผํด์์ ์ฌ์ฉํ๋ ๋ฐฉ์์ด๊ณ Mysql์ Local Memory, PG๋ Backend Memory ๋ฑ์ผ๋ก ๋ถ๋ฆฐ๋ค.
ํด๋น ๋ฉ๋ชจ๋ฆฌ๋ SQL Work Area, Session Memory, Private SQL Area๋ก ๊ตฌ์ฑ๋๊ณ , ์ด ์ค ์ด๋ฒ ๊ธ์์ ๋ค๋ฃฐ SQL Work Area๋ ์๋ ์์ญ๋ค๋ก ๊ตฌ์ฑ๋๋ค.
Sort Area: ์ ๋ ฌ์ ์ํด ์ฌ์ฉ๋๋ ์์ญ.
Hash Area: ํด์ ์กฐ์ธ์ ํ์ํ ํด์ ํ ์ด๋ธ ์์ฑ ๋ฐ ํ์ฉ์ ์ํด ์ฌ์ฉ๋๋ ์์ญ.
Bitmap Merge Area: ๋นํธ๋งต ์กฐ์ธ์ด๋ ๋นํธ๋งต ์์ฑ ๋ฑ์ ๋์ํ๊ธฐ ์ํ ์์ญ.
์ด๋ฅผ ๋์ํํ ๊ทธ๋ฆผ์ ์๋์ ๊ฐ๋ค.
์์์ ์ค๋ช ํ SGA์ PGA๋ฅผ ์ข ํฉํ๋ฉด ์๋์ ๊ทธ๋ฆผ์ผ๋ก ํํํ ์ ์๋ค.
์์ญ ๋ณ ์ ๊ทผ ์๋ ์ฐจ์ด์ ์์ธ
ํด๋น ๊ธ์์ ์ ๊ทผ ์๋๋ฅผ ๋น๊ตํ๋ ค๊ณ ํ๋ ๋ ๋์์ ๊ฐ๊ฐ SGA์ ๋ฒํผ ์บ์์ PGA์ SQL Work Area์ด๋ค. ์ฐ์ ๋ ์์ญ์ ๋น๊ต๋ฅผ ํ๋ ๋ฐฐ๊ฒฝ์ ๋ํด ์ค๋ช ํ์๋ฉด, ์ด๋ NL ์กฐ์ธ๊ณผ์ ๋น๊ต๋ฅผ ์ํด์์ด๋ค. (NL ์กฐ์ธ vs ์ํธ ๋จธ์ง, ํด์ ์กฐ์ธ)
์ฑ ์์๋ ์๋์ ๊ฐ์ ์ทจ์ง๋ก ์ค๋ช ํ๊ณ ์๋ค.
NL ์กฐ์ธ์ ์กฐ์ธ ์ ๋งค๋ฒ ๋ฒํผ ์บ์์์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๋๋ฐ ๋ฐํด, ๋ค๋ฅธ ์กฐ์ธ๋ค์ ๊ฒฝ์ฐ ์ฌ์ ์์ ์ ํตํด PGA์ Sort Area ํน์ Hash Area์ ๋ฐ์ดํฐ๋ฅผ ๋ฃ์ด๋๊ณ ์ด๋ฅผ ์ด์ฉํ์ฌ ์กฐ์ธ์ ์ํํ๊ธฐ ๋๋ฌธ์ ํน์ ๊ฒฝ์ฐ์ ๋ฐ๋ผ์๋ ํ์์ ๋ฐฉ์์ด ๋ ๋น ๋ฅด๋ค.
๋ฌผ๋ก ์ ์ค๋ช ์ด ํน์ ์กฐ๊ฑด์์ NL ์กฐ์ธ๋ง๊ณ ๋ค๋ฅธ ์กฐ์ธ์ ์ ํํด์ผ ํ๋ ์ด์ ์ ์ ๋ถ๋ ์๋์ง๋ง, ๋ชจ๋ ์ฟผ๋ฆฌ๊ฐ ๋ฒํผ ์บ์๋ฅผ ๊ฒฝ์ ํ๋ ๋งํผ ์ด์ ๋ํ ์ดํด๋๋ฅผ ๋์ด๋ ๊ฒ๋ ๋์์ด ๋๋ฆฌ๋ผ ์๊ฐํ๋ค.
๋ค์ ์ฃผ์ ๋ก ๋์๊ฐ์, ๋ ์์ญ ๋ชจ๋ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ๊ฐ์๋ ์์ญ์ธ๋ฐ ์ด์งธ์ ์ ๊ทผ ์๋์ ์ฐจ์ด๊ฐ ์๋ ๊ฒ์ผ๊น?
์ด๋ ๊ฒฐ๊ตญ ๋ฒํผ ์บ์๊ฐ ๋ชจ๋ ์ธ์ ์ด ๊ณต์ ํ๋ ๊ณต์ ์์์ด๋ผ๋ ๊ฒ์ ๊ธฐ์ธํ๋ค.
๊ณต์ ์์์ด๊ธฐ ๋๋ฌธ์ ์ด๋ค ์์ผ๋ก๋ ๋์์ฑ ๋ฌธ์ ๋ฅผ ์ ์ดํ๋ ๊ฒ์ ํ์์ ์ด๋ค. ์ค๋ผํด์ ์ด๋ฅผ ์ํด ํฌ๊ฒ 2๊ฐ์ง ์์ ์ฅ์น๋ฅผ ํตํด ์ด๋ฅผ ์ ์ดํ๋ค.
์ค๋ผํด์์ ํน์ ๋ฒํผ ์บ์์ ์ ๊ทผํ๋ ๊ณผ์ ์ ์๋์ ๊ฐ๋ค.
๋ฒํผ ์บ์ ์ ๊ทผ ๊ณผ์
์ฒซ๋ฒ์งธ๋ ํด์ ์ฒด์ธ ๋์น ํ๋ ๋จ๊ณ์ด๋ค.
์ค๋ผํด์ ๋ธ๋ก ๋จ์๋ก ๋์คํฌ IO๊ฐ ๋ฐ์ํ๊ณ , ์ด ๋จ์๋ ๋ฉ๋ชจ๋ฆฌ ๋ ๋ฒจ์ธ ๋ฒํผ ์บ์์์๋ ๋์ผํ๊ฒ ํ์ฉ๋๋ค. ๋ฐ๋ผ์ ํน์ ๋ ์ฝ๋๋ฅผ ์ฐพ์๊ฐ๋ ค๋ฉด ์ด๋ค ๋ฐ์ดํฐ ํ์ผ์ ์ด๋ค ๋ธ๋ก์ ํด๋น ๋ ์ฝ๋๊ฐ ์กด์ฌํ๋์ง ์ ํ์๊ฐ ์๋ค. ์ด๋ฅผ ์ํด ์ค๋ผํด์ ์ด ๋ ์ ๋ณด๋ฅผ ํฉ์น DBA(Data Block Address)๋ผ๋ ๊ฐ๋ ์ ๊ด๋ฆฌํ๊ณ ๋ ์ฝ๋๋ฅผ ์ฐพ์๊ฐ๊ธฐ ์ํ ์ด์ ํ๋ก ์ด๋ฅผ ์ ๊ณตํ๋ค. ํน์ ๋ ์ฝ๋์ DBA๋ฅผ ํ๋ํ๋ค๋ฉด ์ด๋ฅผ ํ ๋๋ก ๋ฒํผ ์บ์ ๋ด์์ ํด๋น ๋ธ๋ก์ด ์บ์ฑ๋์ด ์๋์ง ํ์ธํ๋ ์ ์ฐจ๊ฐ ํ์ํ๋ค. ์ด๋ฅผ ์ํด DBA๋ฅผ ๋ด๋ถ์ ์ผ๋ก ํด์ ์ฒ๋ฆฌํ๊ณ ํด์ ์ฒด์ธ ๊ตฌ์กฐ์ ํค ๊ฐ์ผ๋ก ํ์ฉ๋๋ค. ํด์ ์ฒด์ธ์ด๋ ๊ฐ์ ํด์ ๊ฐ์ ๊ฐ๋ ๋ฒํผ ๋ธ๋ก์ ์ ๊ทผํ๊ธฐ ์ํ ์ ๋ณด๋ค์ ํ๋์ ์ฒด์ธ ํํ๋ก ์ฐ๊ฒฐํด ๋ ์๋ฃ ๊ตฌ์กฐ์ด๋ค. ์์ ์ธ๊ธํ ํด์ ํค ๊ฐ์ผ๋ก ํด๋น ์ฒด์ธ์ ์ ๊ทผํ๊ฒ ๋๋ค. ์ด ๋ ํด์ ์ฒด์ธ ๋์น๋ฅผ ํ๋ํ๊ฒ ๋๋ค. ํด์ ์ฒด์ธ ๋์น ํ๋์ ์ฝ๊ธฐ ์ ์ฉ(Shared) ๋ ๋ฒจ๊ณผ ์ฐ๊ธฐ ์ ์ฉ(Exclusive) ๋ ๋ฒจ์ด ์๋๋ฐ ์ฝ๊ธฐ ์ ์ฉ์ผ ๋๋ ์ฌ๋ฌ ์ธ์ ์ด ๋์น๋ฅผ ๊ณต์ ํ ์ ์๋ค.
๋๋ฒ์งธ๋ ๋ฒํผ ๋ฝ ํ๋ ๋จ๊ณ์ด๋ค.
ํด์ ์ฒด์ธ ๋์น๋ฅผ ํ๋ํ ์ดํ์๋ ์ฒด์ธ์ ์ฐพ๊ณ ์ ํ๋ ๋ฒํผ๊ฐ ์กด์ฌํ๋์ง ํ์ธํ๋ค. ๋ง์ฝ ๋ฒํผ๊ฐ ์กด์ฌํ๋ค๋ฉด ํด์ ์ฒด์ธ ๋์น๋ ํด์ ํ๊ณ ๊ณง๋ฐ๋ก ๋ฒํผ ๋ฝ์ ํ๋ํ๊ฒ ๋๋ค. ์ด ๋๋ ์ฝ๊ธฐ ์ ์ฉ(Shared) ๋ ๋ฒจ๊ณผ ์ฐ๊ธฐ ์ ์ฉ(Exclusive) ๋ ๋ฒจ์ด ๋๋๋ค. ๋ง์ฝ ํด์ ์ฒด์ธ์ ๋ฒํผ๊ฐ ์กด์ฌํ์ง ์๋๋ค๋ฉด, ์บ์ ๋ฒํผ LRU ์ฒด์ธ์ ํ๋ํ๊ณ ๋์คํฌ IO๋ฅผ ํตํด ์ํ๋ ๋ฒํผ๋ฅผ ์ ์ฌํ๊ณ ๋ฒํผ ๋ฝ์ ํ๋ํ๋ค. (์บ์ ๋ฒํผ LRU ์ฒด์ธ์ ๋ํด์๋ ๋น์ฅ ๋ค๋ฃจ์ง๋ ์๊ฒ ๋ค.)
๋ฒํผ ๋ฝ๊น์ง ํ๋ํ๋ค๋ฉด, ์ด์ ํด๋น ๋ฒํผ์์ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ณ ์ธ ์ ์๊ฒ ๋๋ค.
๊ฒฐ๋ก
๋ฒํผ ์บ์์ ์ ๊ทผํ๋ ๊ฒ์ ๋ฉ๋ชจ๋ฆฌ ๋ ๋ฒจ์ด๋ผ์ ๊ต์ฅํ ๋น ๋ฅผ ๊ฒ์ผ๋ก ์๊ฐํ์ง๋ง ์์ฒ๋ผ ๊ฝค๋ ๋ณต์กํ ๊ณผ์ ์ ๊ฑฐ์น๋ ์ผ์ด๋ค. ํนํ ํด์ ์ฒด์ธ ๋์น์ ๋ฒํผ ๋ฝ์ ํ๋ํ๋ ๊ณผ์ ์์ ๊ฒฝํฉ์ด ๋ฐ์ํ ๊ฒฝ์ฐ์ ์์ ๊ฑธ๋ฆฐ ๋ฝ์ด ํด์ ๋ ๋๊น์ง ๋๊ธฐํด์ผํ๊ธฐ ๋๋ฌธ์ ๋๋์ฑ ์ค๋ ๊ฑธ๋ฆฌ๋ ์์ ์ด ๋๋ค.
๊ทธ๋ ๋ค๋ฉด PGA์ SQL Work Area๋ ์ด๋จ๊น? ํด๋น ๊ตฌ์ญ์ ํน์ ์ธ์ ์ด ๋จ๋ ์ผ๋ก ์ ์ ํ๋ ๊ณต๊ฐ์ด๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ๋์์ฑ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ์์ ์ฅ์น๋ค์ด ๋ถํ์ํ๊ณ , ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ํฌ์ธํฐ๋ฅผ ํตํ ์ผ๋ฐ์ ์ธ ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ์ด ๊ฐ๋ฅํด์ง๋ค.
์ด๋ก ์ธํด SGA์ ๋ฒํผ ์บ์์ ์ ๊ทผํ๋ ์ํฉ๋ณด๋ค๋ PGA์ SQL Work Area์ ์ ๊ทผํ๋ ์ํฉ์ด ์ฑ๋ฅ๋ฉด์์ ๋ ๋ฐ์ด๋๋ค๊ณ ํ ์ ์๊ณ , ์ด๋ ํน์ ์ํฉ์์ NL ์กฐ์ธ๋ณด๋ค ์ํธ ๋จธ์ง ์กฐ์ธ์ด๋ ํด์ ์กฐ์ธ์ด ๋ ๋์ ์ฑ๋ฅ์ ๋ณด์ด๋ ์ด์ ์ค ํ๋๊ฐ ๋๋ค.
์ฐธ๊ณ
'์น์ ํ SQL ํ๋ - ์กฐ์ํ ์ '
'Database > DB ์คํฐ๋' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Exists ์ฐ์ฐ์์ ๋ํด์ (SQL) (0) | 2024.02.12 |
---|---|
์๋ธ ์ฟผ๋ฆฌ์ ์ฑ๋ฅ์ ๋ํ ์คํด (1) | 2024.01.21 |
๋ณตํฉ ์ธ๋ฑ์ค ํ์ฉ ๊ฒฝ์ฐ์ ์ (1) | 2023.12.31 |
๋ฑํธ ์ฐ์ฐ์์ LIKE ์ฐ์ฐ์ ๊ฐ ๋น๊ต (1) | 2023.12.17 |
Buffer Pinning ๊ธฐ๋ฒ (in Oracle) (0) | 2023.12.09 |