Join Algorithm (๊ฒฐํฉ ์๊ณ ๋ฆฌ์ฆ)
SELECT ์ฟผ๋ฆฌ์ ๊ฒฐํฉ(JOIN)๊ณผ ๊ด๋ จ๋ ๊ตฌ๋ฌธ์ด ์์ ๊ฒฝ์ฐ, ๊ฒฐํฉ ํ ์ด๋ธ์ ์กฐํ๋ฅผ ์ํด Join ์๊ณ ๋ฆฌ์ฆ ์ค ํ ๊ฐ์ง๋ฅผ ์ฌ์ฉํจ
์์ฃผ ์ฌ์ฉ๋๋ Join ์๊ณ ๋ฆฌ์ฆ
Nested Loops
Hash
Sort Merge
Nested Loops
์ค์ฒฉ ๋ฐ๋ณต๋ฌธ์ ๋์ ๊ณผ์ ๊ณผ ์ ์ฌํ๊ฒ ๊ฒฐํฉ ํ ์ด๋ธ์ ์ฐธ์กฐ
์ฆ, ๋ ํ ์ด๋ธ์ ๋ ์ฝ๋ ์๊ฐ ๊ฐ๊ฐ N๊ฐ, M๊ฐ๋ผ๋ฉด ์ด๋ก ์ ์ผ๋ก๋ N*M ๋ฒ์ ๋ ์ฝ๋ ์กฐํ๊ฐ ๋ฐ์
์ฅ์
โญ ์ธ๋ถ ํ ์ด๋ธ์ด ๋ด๋ถ ํ ์ด๋ธ๋ณด๋ค
์๊ณ
, ๋ด๋ถ ํ ์ด๋ธ์ ๊ฒฐํฉ ํค์์ธ๋ฑ์ค
๊ฐ ์กด์ฌํ๋ ๊ฒฝ์ฐ ํด๋น ์๊ณ ๋ฆฌ์ฆ์ด ๊ฐ์ฅ ํจ์จ์ ์ผ๋ก ๋์๋น๋๊ธฐ ๊ฒฐํฉ์๋ ์ฌ์ฉ ๊ฐ๋ฅ
๋จ์
๋ด๋ถ์ ์ผ๋ก ๋ ํ ์ด๋ธ ์ค ์์ ํ ์ด๋ธ์ ์ธ๋ถ ํ ์ด๋ธ๋ก ์ ์ ํ๋๋ฐ, ์ธ๋ถ/๋ด๋ถ ํ ์ด๋ธ์ด ๋ชจ๋ ํฌ๊ธฐ๊ฐ ํฐ ๊ฒฝ์ฐ์๋ ๋นํจ์จ์
๋ด๋ถ ํ ์ด๋ธ์ ์ธ๋ฑ์ค๊ฐ ์๋ ๊ฒฝ์ฐ ๋นํจ์จ์
Hash
์ธ๋ถ ํ ์ด๋ธ์ ๊ฒฐํฉ ํค๋ฅผ ํด์ ํจ์๋ฅผ ํต๊ณผ์์ผ ํด์๊ฐ์ผ๋ก ๋ง๋ค๊ณ , ์ด๋ฅผ Working Memory ๋ด ํด์ ํ ์ด๋ธ์ ์ ์ฅํ๊ณ , ์ด ํด์ ํ ์ด๋ธ๊ณผ ๋ด๋ถ ํ ์ด๋ธ์ ๊ฒฐํฉ ํค ๊ฐ ๋งค์นญ ์ฌ๋ถ๋ฅผ ํ์ธํด ๊ฒฐํฉ
Nested Loops๊ฐ ๋นํจ์จ์ ์ด๋ผ๊ณ ํ๋จ๋๋ ๊ฒฝ์ฐ ๋๋ถ๋ถ Hash๋ฅผ ์ฌ์ฉ
์ฅ์
๋๊ท๋ชจ ํ ์ด๋ธ ๊ฐ ๊ฒฐํฉ์ ์ ํฉ
๋จ์
๋ฉ๋ชจ๋ฆฌ๋ฅผ ์๋นํ๋ค.
์ด๋ ๊ณง TEMP ํ๋ฝ์ด ๋ฐ์ํ ๊ฐ๋ฅ์ฑ์ด ์กด์ฌํ๋ค๋ ๋ป
ํด์๋ฅผ ์ด์ฉํ๋ฏ๋ก ์์ ๋ณด์ฅ์ด ๋์ง ์์ ๋ฑ๊ฐ ๊ฒฐํฉ์์๋ง ์ฌ์ฉ ๊ฐ๋ฅ
Sort Merge
๋ ํ ์ด๋ธ์ ๊ฒฐํฉ ํค ๊ธฐ์ค์ผ๋ก ์ ๋ ฌํ
์ ๋ ฌ ํ ์ด๋ธ
์ Working Memory์ ์์ฑํ๊ณ , ์ด๋ฅผ ๊ธฐ์ค์ผ๋ก ํ์
์ฅ์
๋๊ท๋ชจ ํ ์ด๋ธ ๊ฐ ๊ฒฐํฉ์ ์ ํฉ
๋น๋๊ธฐ ๊ฒฐํฉ ๊ฐ๋ฅ
๋จ์
๋ฐ์ดํฐ๋ฅผ ์ ๋ ฌํด์ผ ํ๋ ์ค๋ฒํค๋
๋ ํ ์ด๋ธ์ ํฌ๊ธฐ๋งํผ Working Memory๋ฅผ ์ฌ์ฉํ๋ฏ๋ก, ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ด ํผ
TEMP ํ๋ฝ์ด ๋ฐ์ํ ๊ฐ๋ฅ์ฑ ์กด์ฌ
Last updated