๊ฐ๋ฐ์์ /์น์ ํ SQL ํ๋
NL ์กฐ์ธ์ ์๋ฆฌ
์กฐ์ํ๋์ ์น์ ํ SQL ํ๋์ ์ฝ๊ณ ๊ฐ์ธ์ ์ผ๋ก ๊ณต๋ถํ ๋ด์ฉ์ ์ ๋ฆฌํ ๊ธ์ ๋๋ค. NL ์กฐ์ธ์ Nested Loop ์กฐ์ธ์ ์ฝ์๋ก ์ค์ฒฉ ๋ฃจํ ๋ฌธ๊ณผ ๊ฐ์ ๋ฐฉ๋ฒ์ผ๋ก ์กฐ์ธ์ด ์ด๋ฃจ์ด์ง๋ค. ์ ๋ ํ ์ด๋ธ๋ฅผ ์ฌ์ ๋ฒํธ๋ก ์กฐ์ธํ๋ค๊ณ ๊ฐ์ ํด๋ณด์. ํ๋ก๊ทธ๋๋ฐ ์์ผ๋ก ๋ก์ง์ ๊ตฌํํด๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ์ด ํ ์ ์๋ค. for(int i=0;i= '19960101' AND e.๋ถ์์ฝ๋ = 'Z123' AND c.๊ด๋ฆฌ์ฌ์๋ฒํธ = e.์ฌ์๋ฒํธ AND c. ์ต์ข ์ฃผ๋ฌธ๊ธ์ก >= 20000 ์์ ๊ฐ์ ์ฟผ๋ฆฌ๋ฅผ ์คํ ํ, ROWS | OPERATION 5 |NESTED LOOPS 3 |TABLE ACCESS BY INDEX ROWID OF ์ฌ์ 2780 | INDEX RANGE SCAN OF ์ฌ์_X1 5 | TABLE ACCESS BY INDE..
Where ์กฐ๊ฑด ์ ์์ Between ๊ณผ Like
์กฐ์ํ๋์ ์น์ ํ SQL ํ๋์ ์ฝ๊ณ ๊ฐ์ธ์ ์ผ๋ก ๊ณต๋ถํ ๋ด์ฉ์ ์ ๋ฆฌํ ๊ธ์ ๋๋ค. Between ๊ณผ Like์ ์ค์บ ๋ฒ์ ์ฐจ์ด Between ๊ณผ Like ๋ ๋ฒ์ ๊ฒ์์ ํ ๋ ํ์ฉ๋ ์ ์๋๋ฐ, ์ธ๋ป ๋น์ทํด๋ณด์ด์ง๋ง ํจ์จ์ ์ธ ์ธก๋ฉด์์ ์ดํด๋ณด๋ฉด ๋ค๋ฅด๊ฒ ๋์ํ๋ค. ์๋ฅผ ๋ค์ด, ํ์ ํ ์ด๋ธ์ ์๋ ์ ์นผ๋ผ๊ณผ ํ์ ์นผ๋ผ์ด ์๊ณ [์๋ ์ + ํ์ ] ์ด ์ธ๋ฑ์ค๋ผ๊ณ ๊ฐ์ ํด๋ณด์. 1995๋ ์์ด๋ฉด์ ํ์ ์ด 'B'์ธ ๋ ์ฝ๋๋ค์ ๊ฒ์ํ๊ธฐ ์ํด์๋ 1๏ธโฃ Between ์ ๊ฒฝ์ฐ SELECT * FROM ํ์ WHERE ์๋ ์ BETWEEN "199501" AND "199512" AND ํ์ = 'B'; 2๏ธโฃ Like ์ ๊ฒฝ์ฐ SELECT * FROM ํ์ WHERE ์๋ ์ LIKE "1995%" AND ํ์ = 'B'; ์ ๊ฐ..
Where ์กฐ๊ฑด ์ ์์ Between ๊ณผ in ์ ์ฐจ์ด
์กฐ์ํ๋์ ์น์ ํ SQL ํ๋์ ์ฝ๊ณ ๊ฐ์ธ์ ์ผ๋ก ๊ณต๋ถํ ๋ด์ฉ์ ์ ๋ฆฌํ ๊ธ์ ๋๋ค. Between ๊ณผ In ์กฐ๊ฑด์ ์ ์ธ๋ฑ์ค ์ค์บ ๋ฒ์ ๋น๊ตํด๋ณด๊ธฐ ์์ ๊ฐ์ด, DEPTNO ์ JOB ์ผ๋ก ์ธ๋ฑ์ค๋ฅผ ๊ตฌ์ฑํ๋ค๊ณ ๊ฐ์ ํด๋ณด์. SELECT * FROM TABLE WHERE DEPTNO BETWEEN 10 AND 30 AND JOB = 'B' ์์ ๊ฐ์ ์ฟผ๋ฆฌ๊ฐ ์คํ๋๋ฉด ์ด๋ป๊ฒ ๋ ๊น? ๋จผ์ , DEPTNO๊ฐ 10์ด๋ฉด์ JOB์ด 'B' ์ธ ๋ ์ฝ๋์์ ํ์์ ์์ํ์ฌ DEPTNO ๊ฐ 30์ด๋ฉด์ JOB์ด 'B'๊ฐ ์๋๊ฒ ๋๋ ๋ ์ฝ๋ ๊น์ง ํ์ํ ๊ฒ์ด๋ค. ์์ง์ ํ์์ ํ๋ฒ ์ด๋ฃจ์ด์ง์ง๋ง, ์ํ์ ํ์์ด ๋ง์ ๋ ์ฝ๋๋ฅผ ํ์ํ๊ฒ๋๋ค. ๋ฐ๋ฉด์, SELECT * FROM TABLE WHERE DEPTNO IN (10,20,30) AND..
๋ฐฐ์น I/O์ ์ธ๋ฑ์ค๋ฅผ ๋ฏฟ๊ณ ์ฟผ๋ฆฌ์ ORDER BY๋ฅผ ์๋ตํ๋ฉด ์๋๋ ์ด์
์กฐ์ํ๋์ ์น์ ํ SQL ํ๋์ ์ฝ๊ณ ๊ฐ์ธ์ ์ผ๋ก ๊ณต๋ถํ ๋ด์ฉ์ ์ ๋ฆฌํ ๊ธ์ ๋๋ค. ์ธ๋ฑ์ค์ ๋นํจ์จ์ ์ธ ๋๋ค I/O ์์ธ์ค ์ธ๋ฑ์ค๋ ํฐ ํ ์ด๋ธ์์ ์๋ ๋ฐ์ดํฐ๋ฅผ ์ถ์ถํ ๋ ์ ์ฉํ๋ค๊ณ ๋ฐฐ์ ๋ค. ์ธ๋ฑ์ค๋ก ๋ ์ฝ๋์ ์ ๊ทผํ๋ ๊ฒฝ์ฐ, ์ธ๋ฑ์ค์ ์ฐ๊ฒฐ๋ ํด๋น ๋ ์ฝ๋๊ฐ ์กด์ฌํ๋ ๋ธ๋ก ์ ๋ณด๋ฅผ ํตํด์ ๋ ์ฝ๋์ ์ ๊ทผํด์ผํ๊ธฐ ๋๋ฌธ์ ๋๋ค I/O ๋ก ์ ๊ทผํด์ผํ๊ณ ์ด ๋๋ค I/O๊ฐ ๋ง์์ง๋ฉด, ์ ์ฒด ํ ์ด๋ธ์ ํ ์ค์บํด์ ์ํ์ ์์ธ์ค๋ก ์ ๊ทผํ๋๊ฒ ๋น์ฉ์ด ๋ ์ ์ด์ง ์ ์๊ธฐ ๋๋ฌธ์ด๋ค. ๐ก ์ด๋ฌํ ์ฑ๋ฅ ๋นํจ์จ์ ์ด๋์ ๋ ๊ฐ์์ํค๊ธฐ ์ํด, ์ด์ ์ธ๋ฑ์ค๋ฅผ ํตํด ์ ๊ทผํ๋ ํ ์ด๋ธ ๋ธ๋ก ์ ๋ณด๋ฅผ ์ ์ฅํด๋์๋ค๊ฐ ์ผ์นํ๋ฉด ๋ฐ๋ก ์ ๊ทผํ๋ ์บ์ฑ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๊ธดํ์ง๋ง ์ธ๋ฑ์ค๋ก ์ ๋ ฌ๋ ๋ ์ฝ๋๋ง๋ค ๋ค๋ฅธ ๋ธ๋ก์ ๊ฐ๋ฆฌํค๋ฉด ํจ๊ณผ๋ฅผ ๋ณด๊ธฐ ํ๋ ๋ฐฉ๋ฒ์ด๋ค. ๊ทธ๋์ ๊ณ ์ํด๋ธ..
์ธ๋ฑ์ค ํ๋
์กฐ์ํ๋์ ์น์ ํ SQL ํ๋์ ์ฝ๊ณ ๊ฐ์ธ์ ์ผ๋ก ๊ณต๋ถํ ๋ด์ฉ์ ์ ๋ฆฌํ ๊ธ์ ๋๋ค. ์ธ๋ฑ์ค๋ฅผ ํตํด ๋ ์ฝ๋๋ฅผ ์ฐพ์๊ฐ๋ ๊ณผ์ ๋จผ์ , ์ธ๋ฑ์ค๋ฅผ ํ์ฉํ ์ ์๋ ์ธ๋ฑ์ค ํ ์ด๋ธ์ด ์บ์ฑ๋์ด ์๋์ง ํ์ธํ๋ค. ์บ์ฑ๋์ด ์๋ค๋ฉด, ์ธ๋ฑ์ค ํ ์ด๋ธ์์ ์ธ๋ฑ์ค ์กฐ๊ฑด์ ๋ง๋ ๋ ์ฝ๋๋ฅผ ์ฐพ๋๋ค. ๊ทธ๋ฌ๋ฉด, ํด๋น ์กฐ๊ฑด์ ๋ง๋ ์ค์ ๋์คํฌ ์ ๋ ์ฝ๋์ ์์น ์ ๋ณด๋ฅผ ํ์ ํ ์ ์๋ค.(ROWID) ์ค์ ์ ๊ทผํด์ผํ๋ ๋์คํฌ ์ ๋ ์ฝ๋์ ์์น๋ ์ผ๋ฐ์ ์ผ๋ก ๋ธ๋ก์ผ๋ก ๊ด๋ฆฌํ๋ฏ๋ก, ํด๋น ๋ธ๋ก์ด ์ด๋ฏธ ๋ฒํผ์ ์บ์ฑ๋์ด ์๋์ง ํ์ธํ๊ณ ์๋ค๋ฉด ์บ์ฑ๋ ๋ธ๋ก์ ์ ๊ทผํด์ ๊ฐ์ ธ์จ๋ค. ๋ง์ฝ, ๊ทธ๋ ์ง ์๋ค๋ฉด ์ค์ ๋์คํฌ๋ก ์ ๊ทผํ๋ค. ๋ฒํผ์์๋ ํ ์ด๋ธ ๋ธ๋ก ์์น ๊ฐ์ ํด์ฑํ์ฌ ๊ณ ์ ํ ๊ฐ์ผ๋ก ๋ณ๊ฒฝ ํ ๊ด๋ฆฌํ๋ค. ๊ทธ ๊ณผ์ ์์, ํด์ฑ ๊ณ์ฐ์ด ํ์ํ๋ฏ๋ก ๋ฐ๋ก ์ฃผ ๋ฉ๋ชจ๋ฆฌ ์์น๋ฅผ..
์ธ๋ฑ์ค ์ปฌ๋ผ ๊ฒฐ์ ๊ณผ ๊ฐ๊ณต
์กฐ์ํ๋์ ์น์ ํ SQL ํ๋์ ์ฝ๊ณ ๊ฐ์ธ์ ์ผ๋ก ๊ณต๋ถํ ๋ด์ฉ์ ์ ๋ฆฌํ ๊ธ์ ๋๋ค. ์ธ๋ฑ์ค ์ค์บ ๋ฐ์ดํฐ๋ฅผ ์ฐพ๋ ๋ฐฉ๋ฒ์ ํฌ๊ฒ 2 ๊ฐ์ง๋ก ๋๋ ์ ์๋ค. 1. ํ ์ด๋ธ ์ ์ฒด ์ค์บ 2. ์ธ๋ฑ์ค ์ค์บ ํ ์ด๋ธ ์ ์ฒด ์ค์บ์ ๋ง ๊ทธ๋๋ก, ํ ์ด๋ธ ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋์ด ์๋ ๋ธ๋ก ์ ์ฒด๋ฅผ ์ค์บํ๋ค. ์ธ๋ฑ์ค ์ค์บ์ ์ธ๋ฑ์ค๋ก ์ค์ ํ ๊ธฐ์ค์ ๋ฐ๋ผ ์ผ์ ๋์ ์ค์บํ๋ค. โ ์ธ๋ฑ์ค ์ค์บ ๋ฐฉ์์ด ํญ์ ์ ๋ฆฌํ ๊น? ๊ทธ๋ ์ง ์๋ค. ๐ก ์ธ๋ฑ์ค ์ค์บ ๋ฐฉ์์ ํฐ ํ ์ด๋ธ์์ ์๋์ ๋ฐ์ดํฐ๋ฅผ ์ฐพ๊ณ ์ ํ ๋ ์ ์ฉํ๋ค. ์๋ก, ์ ์ฒด ํ ์ด๋ธ ์ค์บ์ ์งํํ๋ฉด ๋ฒํผ ์บ์์ ๋ฐ์ดํฐ๊ฐ ์กด์ฌํ์ง ์์ ์, ๋ชจ๋ ๋ ์ฝ๋๋ฅผ ํ์ํ๋ฏ๋ก ์ค๋ ์๊ฐ์ด ์์๋ ์ ์๋ค. ํ์ง๋ง, ํ๋ฒ ๊ฐ์ ธ์ค๊ณ ๋ ๋ค์๋ ํด๋น ํ ์ด๋ธ๊ณผ ๊ด๋ จํ ๋ฐ์ดํฐ๋ ๋ฌผ๋ฆฌ์ I/O ์์ด ํ์ํ ์ ์๋ค. ์ธ๋ฑ์ค ์ค์บ..
SQL ์ฒ๋ฆฌ ๊ณผ์ ๊ณผ I/O
์กฐ์ํ๋์ ์น์ ํ SQL ํ๋์ ์ฝ๊ณ ๊ฐ์ธ์ ์ผ๋ก ๊ณต๋ถํ ๋ด์ฉ์ ์ ๋ฆฌํ ๊ธ์ ๋๋ค. SQL ์ฒ๋ฆฌ ๊ณผ์ SQLํ์ฑ๊ณผ ์ต์ ํ 1๏ธโฃ SQL ํ์ฑ ์ฌ์ฉ์๋ก๋ถํฐ SQL์ ์ ๋ฌ๋ฐ์ผ๋ฉด SQL ํ์๊ฐ ํ์ฑ์ ์งํํ๋ค. ๐ก SQL ๋ฌธ์ ์ด๋ฃจ๋ ๊ฐ๋ณ ๊ตฌ์ฑ ์์๋ฅผ ๋ถ์ํ์ฌ ํ์ฑ ํธ๋ฆฌ๋ฅผ ์์ฑํ๋ค. ๐ก ๊ทธ๋ฆฌ๊ณ ์ ๋ฌ ๋ฐ์ SQL ๋ฌธ์์ ๋ฌธ๋ฒ์ ์ค๋ฅ (์ฌ์ฉํ ์ ์๋ ํค์๋ ์ฌ์ฉ ๋ฑ) ๋ ์๋ฏธ์ ์ค๋ฅ(์กด์ฌํ์ง ์๋ ํ ์ด๋ธ ํน์ ์ปฌ๋ผ ์ฌ์ฉ ๋ฑ)๊ฐ ์กด์ฌํ๋์ง ํ์ธํ๋ค. 2๏ธโฃ SQL ์ต์ ํ ๐ก ์ตํฐ๋ง์ด์ ๋ ๋ค์ํ ์คํ ๊ฒฝ๋ก๋ฅผ ์์ฑํด์ ๋น๊ตํ ํ, ๊ฐ์ฅ ํจ์จ์ ์ธ ํ๋๋ฅผ ์ ํํ๋ค. ๊ทธ๋ ๊ฒ ์ ํํ ๊ฒฝ๋ก๋ฅผ ์คํ ๊ฐ๋ฅํ ์ฝ๋ ๋๋ ํ๋ก์์ ํํ๋ก ํฌ๋งทํ ํ๋ค. ์คํ ๊ณํ๊ณผ ๋น์ฉ MySQL ์๋ฒ๋ก ์์ฒญ๋ ์ฟผ๋ฆฌ๋ ๊ฒฐ๊ณผ๋ ๋์ผํ์ง๋ง ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋ง๋ค์ด ..