22-08-16

Yu Riverยท2022๋…„ 8์›” 16์ผ
0

๊ณต๋ถ€ ์ผ์ง€

๋ชฉ๋ก ๋ณด๊ธฐ
11/28

๐Ÿ—“ 22-08-16

SQLP ์ด๋ก  ๋ณต์Šต

(1) ๊ณ ๋„ํ™” 5์žฅ
(2) ์ „๋ฌธ๊ฐ€ ๊ฐ€์ด๋“œ ๊ณผ๋ชฉ โ…ข ์ œ4์žฅ ์ธ๋ฑ์Šค์™€ ์กฐ์ธ
(3) ์ „๋ฌธ๊ฐ€ ๊ฐ€์ด๋“œ ๊ณผ๋ชฉ1 ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๊ณผ ์„ฑ๋Šฅ 2/3

SQLP ์‹ค๊ธฐ ํ’€์ด

(1) [SQLP์‹ค๊ธฐํ’€์ด]6์žฅ ๊ณ ๊ธ‰SQLํŠœ๋‹(1)-์†ŒํŠธํŠœ๋‹12๋ฒˆ
(2) [SQLP์‹ค๊ธฐํ’€์ด]6์žฅ ๊ณ ๊ธ‰SQLํŠœ๋‹(5) ๋Œ€์šฉ๋Ÿ‰ ๋ฐฐ์น˜ ํ”„๋กœ๊ทธ๋žจ ํŠœ๋‹ 51๋ฒˆ
(3) [SQLP์‹ค๊ธฐํ’€์ด]6์žฅ ๊ณ ๊ธ‰SQLํŠœ๋‹(5) ๋Œ€์šฉ๋Ÿ‰ ๋ฐฐ์น˜ ํ”„๋กœ๊ทธ๋žจ ํŠœ๋‹ 52๋ฒˆ
(4) [SQLP์‹ค๊ธฐํ’€์ด]6์žฅ ๊ณ ๊ธ‰SQLํŠœ๋‹(5) ๋Œ€์šฉ๋Ÿ‰ ๋ฐฐ์น˜ ํ”„๋กœ๊ทธ๋žจ ํŠœ๋‹ 53๋ฒˆ
(5) [SQLP์‹ค๊ธฐํ’€์ด]6์žฅ ๊ณ ๊ธ‰SQLํŠœ๋‹(5) ๋Œ€์šฉ๋Ÿ‰ ๋ฐฐ์น˜ ํ”„๋กœ๊ทธ๋žจ ํŠœ๋‹ 54๋ฒˆ

SQLP ํ•„๊ธฐ ํ’€์ด

(1) 1~15๋ฒˆ
[SQLPํ•„๊ธฐํ’€์ด]4์žฅ ์กฐ์ธํŠœ๋‹(1)-NL์กฐ์ธ
(2) 16 ~ 37๋ฒˆ
[SQLPํ•„๊ธฐํ’€์ด]4์žฅ ์กฐ์ธํŠœ๋‹(2)-์†ŒํŠธ๋จธ์ง€์กฐ์ธ&ํ•ด์‹œ์กฐ์ธ
(3)
[SQLPํ•„๊ธฐํ’€์ด]4์žฅ ์กฐ์ธํŠœ๋‹(3)-์Šค์นผ๋ผ์„œ๋ธŒ์ฟผ๋ฆฌ
(4) 45,46๋ฒˆ
[SQLPํ•„๊ธฐํ’€์ด]4์žฅ ์กฐ์ธํŠœ๋‹(4)-๊ณ ๊ธ‰์กฐ์ธ๊ธฐ๋ฒ•

๐Ÿ‘€ 8/13 ๋ณต๊ธฐ

[1] ๋ณ‘๋ ฌ ์‹คํ–‰๊ณ„ํš

  • ์•ˆ์ชฝ์— ์žˆ๋Š” ๊ฒŒ Inner ํ…Œ์ด๋ธ”์ด๋‹ค.
  • ์ด Inner table์„ ๊ธฐ์ค€์œผ๋กœ pq_distribute ํžŒํŠธ๋ฅผ ์ž‘์„ฑํ•œ๋‹ค.

[2] SQL SERVER ์กฐ์ธ ํžŒํŠธ

2๋ฒˆ,3๋ฒˆ

  • FROM ์ ˆ์— ํ…Œ์ด๋ธ”์„ ๋‚˜์—ดํ•œ ์ˆœ์œผ๋กœ ์กฐ์ธํ•˜๊ณ ์ž ํ•  ๋•Œ force order ํžŒํŠธ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
  • NL ์กฐ์ธ์œผ๋กœ ์œ ๋„ํ•  ๋•Œ loop join ํžŒํŠธ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
    option(force order, loop join)
  • NL ์กฐ์ธ์œผ๋กœ ์œ ๋„ํ•  ๋•Œ inner loop join ๊ตฌ๋ฌธ์„ ์‚ฌ์šฉํ•œ๋‹ค.
  • ํ•ด์‹œ ์กฐ์ธ์œผ๋กœ ์œ ๋„ํ•  ๋•Œ inner hash join ๊ตฌ๋ฌธ์„ ์‚ฌ์šฉํ•œ๋‹ค.
    from ์ฃผ๋ฌธ o
    inner loop join ๊ณ ๊ฐ c on (c.๊ณ ๊ฐ๋ฒˆํ˜ธ= o.๊ณ ๊ฐ๋ฒˆํ˜ธ)
    inner hash join ๊ฒฐ์ œ๋ฐฉ์‹ t on (t.๊ฒฐ์ œ๋ฐฉ์‹์ฝ”๋“œ = 0.๊ฒฐ์ œ๋ฐฉ์‹์ฝ”๋“œ)
    from ์ฃผ๋ฌธ o
    inner hash join ๊ฒฐ์ œ๋ฐฉ์‹ t on (t.๊ฒฐ์ œ๋ฐฉ์‹์ฝ”๋“œ = 0.๊ฒฐ์ œ๋ฐฉ์‹์ฝ”๋“œ)
    option(force order)

[3] ์ตœ์  ์ธ๋ฑ์Šค ๊ตฌํ•  ๋•Œ ์ฃผ์˜ํ•  ์ 

10๋ฒˆ

  • ๋ฌด์กฐ๊ฑด Order by ๊ฐ€ ์žˆ๋‹ค๊ณ  ๋ถ€๋ถ„๋ฒ”์œ„ ์ฒ˜๋ฆฌ๋ฅผ ํ•˜๋Š” ๊ฑด ์•„๋‹ˆ๋‹ค.

[4] ์†ŒํŠธ ๋จธ์ง€ ์กฐ์ธ ํžŒํŠธ

  • ์˜ค๋ผํด : use_merge
  • sql server
    option (force order, merge join)

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

  • โญ๏ธ ๋‘๋ฒˆ์งธ ํ…Œ์ด๋ธ”์€ ๋ฌด์กฐ๊ฑด ๋”ฐ๋กœ ์ •๋ ฌ์„ ์ˆ˜ํ–‰ํ•ด์•ผํ•จ ~!
  • ์–‘์ชฝ ์ง‘ํ•ฉ์„ ๊ฐœ๋ณ„์ ์œผ๋กœ ์ฝ์–ด์„œ ์ •๋ ฌํ•˜๋ฏ€๋กœ ์กฐ์ธ ์ปฌ๋Ÿผ์— ์ธ๋ฑ์Šค๊ฐ€ ์—†์–ด๋„ ์ƒ๊ด€ ์—†๋‹ค.
  • โญ๏ธ ๋‘ ๋ฒˆ์งธ ์ง‘ํ•ฉ์€ ๋ฐ˜๋“œ์‹œ ์ •๋ ฌํ•ด์„œ PGA์— ์ €์žฅํ•œ ํ›„์— ์กฐ์ธ์„ ์‹œ์ž‘ํ•œ๋‹ค.
  • ์ฒซ ๋ฒˆ์งธ ์ง‘ํ•ฉ๋„ ์ผ๋ฐ˜์ ์œผ๋กœ PGA์— ์ €์žฅํ•˜์ง€๋งŒ, ์กฐ์ธ ์ปฌ๋Ÿผ์— ์ธ๋ฑ์Šค๊ฐ€ ์žˆ์–ด์„œ ๊ทธ๊ฒƒ์„ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด PGA ์ €์žฅํ•˜์ง€ ์•Š๊ณ  ์กฐ์ธ์„ ์‹œ์ž‘ํ•œ๋‹ค.
  • โญ๏ธ์†ŒํŠธ ๋จธ์ง€ ์กฐ์ธ ํ•ต์‹ฌโญ๏ธ : ๋Œ€๋Ÿ‰ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐ์ธํ•  ๋•Œ ์†ŒํŠธ ๋จธ์ง€ ์กฐ์ธ์ด NL ์กฐ์ธ๋ณด๋‹ค ์œ ๋ฆฌํ•œ ์ด์œ ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ PGA ์˜์—ญ์— ์ฝ์–ด ๋“ค์ธ ํ›„ ์กฐ์ธํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

[6] ํ•ด์‹œ ์กฐ์ธ ํŠน์ง•

  • swap_join_inputs ํžŒํŠธ๊ฐ€ ์—†์œผ๋ฉด leading์ด๋‚˜ ordered ํžŒํŠธ์— ๊ธฐ์žฌ๋œ ์ฒซ๋ฒˆ์งธ ํ…Œ์ด๋ธ”์ด ๋ฌด์กฐ๊ฑด build input ํ…Œ์ด๋ธ”์ด ๋œ๋‹ค.
  • ํ•ด์‹œ ์กฐ์ธ๋„ ์กฐ์ธ ํ”„๋กœ์„ธ์‹ฑ ์ž์ฒด๋Š” NL ์กฐ์ธ๊ณผ ๊ฐ™์ง€๋งŒ, ๊ฑด๊ฑด์ด Inner ์ง‘ํ•ฉ์„ ๋ฒ„ํผ์บ์‹œ์—์„œ ํƒ์ƒ‰ํ•˜์ง€ ์•Š๊ณ  PGA์— ๋ฏธ๋ฆฌ ์ƒ์„ฑํ•ด ๋‘” ํ•ด์‹œ ํ…Œ์ด๋ธ”(ํ•ด์‹œ ๋งต)์„ ํƒ์ƒ‰ํ•˜๋ฉด์„œ ์กฐ์ธํ•œ๋‹ค๋Š” ์ ์ด ๋‹ค๋ฅด๋‹ค.
    โญ๏ธํ•ด์‹œ ๋งต์„ ์ด์šฉํ•˜๋ฏ€๋กœ ์กฐ์ธ ์ปฌ๋Ÿผ์— ์ธ๋ฑ์Šค๊ฐ€ ์—†์–ด๋„ ์ƒ๊ด€ ์—†๋‹ค.โญ๏ธ
  • 28๋ฒˆ
    ํ•ด์‹œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํŠน์„ฑ์ƒ ํ•œ ์ฒด์ธ์— ์—ฌ๋Ÿฌ ๊ฐœ ๊ฐ’์ด ์—ฐ๊ฒฐ๋  ์ˆ˜ ์žˆ๋Š” ๊ตฌ์กฐ์ด๋ฉฐ, ๊ฐ ํ•ด์‹œ ์ฒด์ธ์— ์—ฐ๊ฒฐ๋œ ๊ฐ’์ด ๋งŽ์„์ˆ˜๋ก ํ•ด์‹œ ๋งต ํƒ์ƒ‰ ํšจ์œจ์€ ๋‚˜๋น ์ง„๋‹ค.

[7] ํ•ด์‹œ ์กฐ์ธ ํžŒํŠธ ์ž‘์„ฑ๋ฒ•

  • 32๋ฒˆ,33๋ฒˆ,34๋ฒˆ,35๋ฒˆ,36๋ฒˆ
    • ํ•ด์‹œ ์กฐ์ธ ์ˆœ์„œ๋ž‘ build input๊ณผ Inner ํ…Œ์ด๋ธ”์˜ ๊ด€๊ณ„๋ฅผ ์ž๊พธ ํ—ท๊ฐˆ๋ คํ•œ๋‹ค ใ… ใ… 
    • ์—ฌ๋Ÿฌ ๊ฐœ ํ…Œ์ด๋ธ”์ด ํ•ด์‹œ์กฐ์ธํ•  ๋•Œ๋Š” swap_join_inputs ํžŒํŠธ๋กœ inner ํ…Œ์ด๋ธ”์„ ๋ถ„๋ช…ํžˆํ•œ๋‹ค.
    • ํ•ด์‹œ ์กฐ์ธ ํžŒํŠธ ๋ฌธ์ œ๋ฅผ ์“ธ ๋• ์ธ๋ฑ์Šค๋ฅผ ์ ์–ด์ฃผ๋„๋ก ํ•œ๋‹ค.(?)

[8] ์Šค์นผ๋ผ ์„œ๋ธŒ์ฟผ๋ฆฌ ํŠน์ง•

  • 38๋ฒˆ
  • โญ๏ธ ์กฐ์ธ์œผ๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค๊ณ  ๋ฌด์กฐ๊ฑด ์•„์šฐํ„ฐ ์กฐ์ธ์€ ์•„๋‹ˆ๋‹ค.ERD๋ฅผ ๋ณด๊ฑฐ๋ผ !!!!
    ERD๋„ PK๋ฅผ ๋ณด๋Š” ๊ฒŒ ์•„๋‹ˆ๋ผ ๊ด€๊ณ„ ์„ ์„ ๋ณด์•„์•ผ ํ•œ๋‹ค. โญ๏ธ
    • ์ฃผ๋ฌธ์€ ๊ณ ๊ฐ์„ '๊ผญ' ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.
    • ๋˜ํ•œ ์„ฑ๋Šฅ์„ ์œ„ํ•ด์„œ ๊ฐ€๊ธ‰์  Outer ์กฐ์ธ๋ณด๋‹ค Inner ์กฐ์ธ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

[9] ERD ๊ด€๊ณ„์„  ๊ผญ ์•Œ์•„๋‘˜ ๊ฒƒ

  • ์ฃผ๋ฌธ์€ ๊ณ ๊ฐ์„ '๊ผญ' ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

  • ์ฃผ๋ฌธ์€ ๊ณ ๊ฐ์„ '๊ผญ' 1๊ฐœ์”ฉ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.
  • ์ฃผ๋ฌธ์ƒํ’ˆ์€ ์ฃผ๋ฌธ์„ '๊ผญ' m:1์˜ ๊ด€๊ณ„๋กœ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.
profile
๋„๊ด‘์–‘ํšŒ(้Ÿœๅ…‰้คŠๆ™ฆ) โ€˜๋น›์„ ๊ฐ์ถ”๊ณ  ์–ด๋‘ ์†์—์„œ ํž˜์„ ๊ธฐ๋ฅธ๋‹คโ€™

0๊ฐœ์˜ ๋Œ“๊ธ€