1. ์ฟผ๋ฆฌ๋ณํ์ด๋?
์ฟผ๋ฆฌ ๋ณํ์ DBMS์ ์ตํฐ๋ง์ด์ ๊ฐ ์ฌ์ฉ์๊ฐ ์์ฑํ SQL ๋ฌธ์ฅ์ ์๋ฏธ๋ ๊ทธ๋๋ก ์ ์งํ๋ฉด์ ์ฑ๋ฅ์ด ๋ ์ ๋ฆฌํ ํํ๋ก ์ฌ์์ฑํ๋ ๊ณผ์ ์
๋๋ค.
์ด๋ ์คํ๊ณํ์ ๋ง๋ค๊ธฐ ์ , SQL์ ๊ตฌ์กฐ๋ฅผ ์ต์ ํ์ ์ ๋ฆฌํ ๊ตฌ์กฐ๋ก ์ ์ฒ๋ฆฌํ๋ ๊ณผ์ ์ด๋ฉฐ, ๋๋ถ๋ถ์ ํ๋์ RDBMS์ ๊ณตํต์ ์ผ๋ก ์กด์ฌํฉ๋๋ค.
๐ ์ฟผ๋ฆฌ๋ณํ์ ํ์์ฑ
- ์ฌ์ฉ์๊ฐ ์์ฑํ SQL์ ๊ฐ๋ ์ฑ์ด๋ ๋น์ฆ๋์ค ๋ก์ง ์ค์ฌ์ผ๋ก ์์ฑ๋จ
- DBMS๋ ์ฑ๋ฅ์ ๊ณ ๋ คํด ๋ณด๋ค ์คํ ํจ์จ์ ์ธ ๊ตฌ์กฐ๋ก ๋ฐ๊ฟ ํ์๊ฐ ์์
- ๋์ผํ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ๋ ์ฌ๋ฌ ์ฟผ๋ฆฌ ์ค ๋น์ฉ์ด ๊ฐ์ฅ ๋ฎ์ ์ฟผ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ์ ํํด์ผ ํจ
๐ ๋ด๋น ์ปดํฌ๋ํธ (Oracle ๊ธฐ์ค)
Oracle ์ตํฐ๋ง์ด์ ๋ ํฌ๊ฒ ์ธ ๋จ๊ณ๋ก ๊ตฌ์ฑ๋๋ฉฐ, ๊ทธ ์ค Query Transformer๊ฐ ์ฟผ๋ฆฌ ๋ณํ์ ์ํํฉ๋๋ค.
- Query Transfomer โ ์ฟผ๋ฆฌ ๋ณํ ์ํ
- Estimator โ ๋น์ฉ ๊ณ์ฐ
- Plan Generator โ ์ต์ข ์คํ ๊ณํ ์์ฑ
๐ ์๋ ๋ฐฉ์ (Oracle ๊ธฐ์ค)
Oracle ์ตํฐ๋ง์ด์ ๋ ๋ค์ ๋ ๊ฐ์ง ๋ฐฉ์์ ์ฟผ๋ฆฌ ๋ณํ์ ์ฌ์ฉํฉ๋๋ค.
- ํด๋ฆฌ์คํฑ(Heuristic) ์ฟผ๋ฆฌ ๋ณํ: ๋น์ฉ ๊ณ์ฐ ์์ด, ๋ฌด์กฐ๊ฑด ๋ณํ์ ์ํ
- ๋น์ฉ๊ธฐ๋ฐ(Cost-based) ์ฟผ๋ฆฌ ๋ณํ: ๋ณํ๋ ์ฟผ๋ฆฌ์ ์๋ณธ ์ฟผ๋ฆฌ์ ๋น์ฉ์ ๋น๊ต ํ ๋ ํจ์จ์ ์ธ ์ชฝ์ ์ ํ