๊ฐœ๋ฐœ์„œ์ /์นœ์ ˆํ•œ 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 ์„œ๋ฒ„๋กœ ์š”์ฒญ๋œ ์ฟผ๋ฆฌ๋Š” ๊ฒฐ๊ณผ๋Š” ๋™์ผํ•˜์ง€๋งŒ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋งŒ๋“ค์–ด ..