๊ด€๋ฆฌ ๋ฉ”๋‰ด

gi_dor

๐Ÿ”‘ SQL ํŠœ๋‹ - CH 4. ์กฐ์ธ ํŠœ๋‹ - ์†ŒํŠธ ๋จธ์ง€ ์กฐ์ธ ๋ณธ๋ฌธ

First/SQL ํŠœ๋‹

๐Ÿ”‘ SQL ํŠœ๋‹ - CH 4. ์กฐ์ธ ํŠœ๋‹ - ์†ŒํŠธ ๋จธ์ง€ ์กฐ์ธ

๊ธฐ๋Œ 2023. 8. 18. 17:48
728x90

 ๐Ÿบ ์†ŒํŠธ ๋จธ์ง€ ์กฐ์ธ

์ธ๋ฑ์Šค๊ฐ€ ์—†์–ด์„œ ์ •๋ ฌ ํ•œ ๋’ค์— ์กฐ์ธํ•œ๋‹ค.

๋‹จ์  : ๋Œ€๋Ÿ‰์ด๋ผ ๊ณต๊ฐ„์„ ๋งŽ์ด ์ฐจ์ง€ํ•จ

์กฐ์ธ ์ปฌ๋Ÿผ์— ์ธ๋ฑ์Šค๊ฐ€ ์—†์„ ๋•Œ ๋Œ€๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ ์กฐ์ธ์ด์–ด์„œ ์ธ๋ฑ์Šค๊ฐ€ ํšจ๊ณผ์ ์ด์ง€ ์•Š์„ ๋•Œ 
์˜ตํ‹ฐ๋งˆ์ด์ €๋Š” NL์กฐ์ธ ๋Œ€์‹  ์†ŒํŠธ๋จธ์ง€ ์กฐ์ธ ์ด๋‚˜ ๋‹ค์Œ์ ˆ์—์„œ ํ•ด์‹œ ์กฐ์ธ์„ ์„ ํƒํ•œ๋‹ค

โ— ํ•ด์‹œ ์กฐ์ธ์„ ์‚ฌ์šฉ ํ• ์ˆ˜ ์—†๋Š” ์ƒํ™ฉ์—์„œ ๋Œ€๋Ÿ‰ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐ์ธํ•˜๊ณ ์ž ํ• ๋–„ ์œ ์šฉํ•จ

1 - 1 SGA  vs  PGA

PGA : ๊ฐœ์ธ ์‚ฌ์šฉ์ž private , ์ •๋ ฌํ•„ํ„ฐ
SGA  : ๊ณตํ†ต , ๊ณต์œ  ์‚ฌ์šฉ์ž
Temp :  Temp๋ผ๋Š” ํ…Œ์ด๋ธ” ์ŠคํŽ˜์ด์Šค

๐Ÿ”‘ PGA ๋Š” ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค์™€ ๊ณต์œ ํ•˜์ง€ ์•Š๋Š” ๋…๋ฆฝ์ ์ธ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์ธ๋ฐ ๊ฐ™์€ ์–‘์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๋”๋ผ๋„ SGA ๋ฒ„ํผ์บ์‹œ์—์„œ           ์ฝ์„ ๋•Œ ๋ณด๋‹ค ํ›จ์”ฌ ๋น ๋ฅด๋‹ค. - ๋”ฐ๋กœ Lock ๊ฑธ์ง€๋Š” ์•Š์Œ

 

1 - 2 ๊ธฐ๋ณธ ๋ฉ”์ปค๋‹ˆ์ฆ˜

1 ) ์†ŒํŠธ ๋‹จ๊ณ„ : ์–‘์ชฝ ์ง‘ํ•ฉ์„ ์กฐ์–ธ ์ปฌ๋Ÿผ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌํ•จ
2 ) ๋จธ์ง€ ๋‹จ๊ณ„ : ์ •๋ ฌํ•œ ์–‘์ชฝ ์ง‘ํ•ฉ์„ ์„œ๋กœ ๋จธ์ง€ ํ•œ๋‹ค

์ธ๋ฑ์Šค๊ฐ€ ์—†์–ด์„œ PGA ์‚ฌ์šฉ , ๊ณต๊ฐ„ ๋ถ€์กฑ์‹œ TEMP ํ…Œ์ด๋ธ” ์ŠคํŽ˜์ด์Šค ์‚ฌ์šฉํ•œ๋‹ค. 

์กฐ์ธ ์ปฌ๋Ÿผ์— ์ธ๋ฑ์Šค๊ฐ€ ์—†์–ด๋„ ์‚ฌ์šฉํ• ์ˆ˜ ์žˆ๋‹ค , ์กฐ์ธ ์ปฌ๋Ÿผ์— ์ธ๋ฑ์Šค๊ฐ€ ์žˆ์–ด๋„ NL์กฐ์ธ์€ ๋Œ€๋Ÿ‰ ๋ฐ์ดํ„ฐ๊ฐ€ ์กฐ์ธํ•  ๋•Œ 
๋ถˆ๋ฆฌ ํ•˜๋ฏ€๋กœ ์†ŒํŠธ ๋จธ์ง€ ์กฐ์ธ์„ ์‚ฌ์šฉํ•œ๋‹ค

๊ณ ๊ฐ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋ฉด ์ •๋ ฌ์ด ๋˜์–ด์žˆ๋Š”๊ฒƒ์ด ๋ณด์ด๋Š”๋ฐ 
์ธ๋ฑ์Šค๋ฅผ ์•ˆ์“ฐ๊ธฐ์— ์ •๋ ฌ์„ ํ•จ , ๊ทธ๋ž˜์„œ ์ •๋ ฌ์„ ํ•œ ๋’ค์— ๋จธ์ง€๋ฅผ ํ•œ๋‹ค
ํ•˜๋‚˜์”ฉ for๋ฌธ ๋Œ๋ฉด์„œ ๊ฒ€์ƒ‰

 

1 - 3 ์†ŒํŠธ ๋จธ์ง€ ์กฐ์ธ์ด ๋น ๋ฅธ ์ด์œ 

NL์กฐ์ธ์€ DBMS๊ฐ€ ๊ณตํ†ต์œผ๋กœ ์ œ๊ณตํ•˜๋Š” ์กฐ์ธ ๋ฐฉ์‹์ด๋‹ค 
๋Œ€์‹  ๋Œ€๋Ÿ‰ ๋ฐ์ดํ„ฐ ์กฐ์ธํ• ๋•Œ ์„ฑ๋Šฅ์ด ๋งค~~~์šฐ ๋Š๋ฆฌ๋‹ค

์†ŒํŠธ๋จธ์ง€ ์กฐ์ธ์€ Sort Area์—์„œ ๋ฏธ๋ฆฌ ์ •๋ ฌํ•ด๋‘” ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ์ด์šฉํ•œ๋‹ค. 

 

1 - 4 ์†ŒํŠธ๋จธ์ง€ ์กฐ์ธ์˜ ์šฉ๋„

๋žœ๋ค ์•ก์„ธ์Šค ์œ„์ฃผ์˜ NL ์กฐ์ธ ์ดํ›„ ๋Œ€๋Ÿ‰ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•ด ์†ŒํŠธ๋จธ์ง€ ์กฐ์ธ์ด ํ•ด๊ฒฐํ–ˆ๋Š”๋ฐ
ํ˜„์žฌ๋Š” ํ•ด์‹œ ์กฐ์ธ์ด ๋” ๋น ๋ฅด๋‹ค..
ํ•ด์‹œ์กฐ์ธ์€ ์กฐ์ธ ์กฐ๊ฑด์‹์ด  ๋“ฑ์น˜( = ) ์ผ ๋•Œ ๋งŒ ์‚ฌ์šฉ ํ• ์ˆ˜ ์žˆ๋‹ค.  

  • ์กฐ์ธ ์กฐ๊ฑด์‹์ด ๋“ฑ์น˜( = ) ์กฐ๊ฑด์ด ์•„๋‹Œ ๋Œ€๋Ÿ‰ ๋ฐ์ดํ„ฐ ์กฐ์ธ
  • ์กฐ์ธ ์กฐ๊ฑด์‹์ด ์•„์˜ˆ ์—†๋Š” ์กฐ์ธ // WHERE X (Cross JOIN)

Cross JOIN ์€ ๋‘๊ฐœ์˜ ํ…Œ์ด๋ธ”์˜ ๋ชจ๋“  ํ–‰ ์กฐํ•ฉ์„ ์ƒ์„ฑํ•œ๋‹ค . 
์˜ˆ๋ฅผ ๋“ค์–ด Aํ…Œ์ด๋ธ” 10๊ฐœํ–‰ , Bํ…Œ์ด๋ธ” 5๊ฐœํ–‰์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๋ฉด 10 * 5 = 50๊ฐœ์˜ ํ–‰์„ ๋ฐ˜ํ™˜ํ•จ.

 

1 - 5 ์†ŒํŠธ๋จธ์ง€ ์กฐ์ธ ํŠน์ง•

1 ) ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ธ๋ฑ์Šค๋ฅผ ์ƒ์„ฑํ•˜๋Š”๊ฒƒ๊ณผ ๋‹ค๋ฆ„์—†๋‹ค - CPU Cost โ–ณ

2 ) ์–‘์ชฝ ์ง‘ํ•ฉ์„ ์ •๋ ฌํ•œ๋‹ค์Œ์— NL ์กฐ์ธ๊ณผ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ์ง„ํ–‰, ํ•˜์ง€๋งŒ PGA ์˜์—ญ์— ์ €์žฅํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ด์šฉํ•˜๊ธฐ์—
     ๋น ๋ฅด๋‹ค 

3 ) NL ์กฐ์ธ์€ ์ปฌ๋Ÿผ์— ๋Œ€ํ•œ ์ธ๋ฑ์Šค ์œ ๋ฌด์— ํฌ๊ฒŒ ์˜ํ–ฅ์„ ๋ฐ›์ง€๋งŒ , ์†ŒํŠธ๋จธ์ง€ ์กฐ์ธ์€ ์˜ํ–ฅ์„ ๋ฐ›์ง€์•Š๋Š”๋‹ค

4 ) ์–‘์ชฝ ์ง‘ํ•ฉ์„ ๊ฐœ๋ณ„์ ์œผ๋กœ ์ฝ๊ณ ๋‚˜์„œ ์กฐ์ธ์„ ์‹œ์ž‘ํ•œ๋‹ค.

5 ) ์Šค์บ” ์œ„์ฃผ์˜ ์•ก์„ธ์Šค ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•œ๋‹ค 

6 )  ์†ŒํŠธ๋จธ์ง€๋Š” ์‹œ์Šคํ…œ์— ๋ถ€๋‹ด์„ ์ฃผ๋Š”๋ฐ , ์ •๋ ฌ๋„ ํ•ด์•ผํ•ด๊ณ  JOIN ํ• ๋•Œ ๋งˆ๋‹ค ์ธ๋ฑ์Šค๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

728x90