22-08-24

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

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

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

๐Ÿ—“ 22-08-24

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

(1) ๊ณ ๋„ํ™”

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

(1) [SQLP์‹ค๊ธฐํ’€์ด]4์žฅ ์กฐ์ธํŠœ๋‹(4)-๊ณ ๊ธ‰์กฐ์ธ๊ธฐ๋ฒ• 55๋ฒˆ
(2) [SQLP์‹ค๊ธฐํ’€์ด]4์žฅ ์กฐ์ธํŠœ๋‹(4)-๊ณ ๊ธ‰์กฐ์ธ๊ธฐ๋ฒ• 56๋ฒˆ
(3) [SQLP์‹ค๊ธฐํ’€์ด]4์žฅ ์กฐ์ธํŠœ๋‹(4)-๊ณ ๊ธ‰์กฐ์ธ๊ธฐ๋ฒ• 57๋ฒˆ
(4) [SQLP์‹ค๊ธฐํ’€์ด]4์žฅ ์กฐ์ธํŠœ๋‹(4)-๊ณ ๊ธ‰์กฐ์ธ๊ธฐ๋ฒ• 58๋ฒˆ
(5) [SQLP์‹ค๊ธฐํ’€์ด]4์žฅ ์กฐ์ธํŠœ๋‹(4)-๊ณ ๊ธ‰์กฐ์ธ๊ธฐ๋ฒ• 59๋ฒˆ
(6) [SQLP์‹ค๊ธฐํ’€์ด]4์žฅ ์กฐ์ธํŠœ๋‹(4)-๊ณ ๊ธ‰์กฐ์ธ๊ธฐ๋ฒ• 60๋ฒˆ

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

(1) [SQLPํ•„๊ธฐํ’€์ด]3์žฅ ์ธ๋ฑ์Šค ํŠœ๋‹
(2) [SQLPํ•„๊ธฐํ’€์ด]4์žฅ ์กฐ์ธ ํŠœ๋‹

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

[1] ์„ ๋ถ„์ด๋ ฅ์œผ๋กœ ์กฐ์ธํ•ด์„œ ๊ฐ€์ ธ์˜ค๊ธฐ

[SQLP์‹ค๊ธฐํ’€์ด]4์žฅ ์กฐ์ธํŠœ๋‹(4)-๊ณ ๊ธ‰์กฐ์ธ๊ธฐ๋ฒ• 60๋ฒˆ

  • ์ง์ „ ์ข…๋ฃŒ์ผ์ž์— -1์ดˆ๋ฅผ ๋ฐฐ์„œ ๋กœ์šฐ์ˆ˜๋ฅผ ํ•˜๋‚˜๋กœ ๋งŒ๋“ค์–ด ์กฐ์ธ์ฒ˜๋ฆฌํ•ด ๊ฐ€์ ธ์˜ค๋„๋ก ํ•œ๋‹ค.
    • ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๋ถ€๋ถ„๋ฒ”์œ„์ฒ˜๋ฆฌํ•˜๋Š” ์„œ๋ธŒ์ฟผ๋ฆฌ๋ฅผ ๋”ฐ๋กœ ๋งŒ๋“ค์ง€ ์•Š์•„๋„ ๋œ๋‹ค.

[2] Index Skip Scan

โ–ถ ์ธ๋ฑ์Šค ๊ตฌ์„ฑ : ํ• ์ธ๊ตฌ๋ถ„์ฝ”๋“œ + ์ƒํ’ˆ์ฝ”๋“œ + ์—…์ฒด์ฝ”๋“œ + ์ƒํ’ˆ์œ ํ˜•์ฝ”๋“œ

SELECT ์ฃผ๋ฌธ์ผ์ž, ์ƒํƒœ์ฝ”๋“œ, ์ •์ƒ๊ฐ€, ํ• ์ธ๊ฐ€, ํ• ์ธ๊ตฌ๋ถ„์ฝ”๋“œ
FROM ์ƒํ’ˆ๊ณต๊ธ‰
WHERE ์ƒํ’ˆ์œ ํ˜•์ฝ”๋“œ = 'A'
AND ์—…์ฒด์ฝ”๋“œ = '2956'
AND ์ƒํ’ˆ์ฝ”๋“œ = 'A0113509056'
AND ํ• ์ธ๊ตฌ๋ถ„์ฝ”๋“œ BETWEEN 'A' and 'C'
ORDER BY ์ฃผ๋ฌธ์ผ์ž DESC
  • ์„ ๋‘ ์ปฌ๋Ÿผ์˜ NDV ๋Š” ์ ๊ณ  ํ›„ํ–‰ ์ปฌ๋Ÿผ์˜ NDV๋Š” ๋งŽ์„ ๋•Œ BETWEEN ์กฐ๊ฑด์˜ ์ธ๋ฑ์Šค ์„ ๋‘ ์ปฌ๋Ÿผ์„ IN ์กฐ๊ฑด์œผ๋กœ ๋ณ€๊ฒฝํ•˜๋ฉด ์„ฑ๋Šฅ ํ–ฅ์ƒ์— ํฐ ๋„์›€์ด ๋œ๋‹ค.

[3] ๋™์  SQL

50๋ฒˆ

SELECT * FROM ๊ฑฐ๋ž˜
WHERE ๊ณ ๊ฐID LIKE #CUST_ID# || '%'
AND ๊ฑฐ๋ž˜์ผ์ž BETWEEN #OT1# AND #DT2#
  • ๊ณ ๊ฐID๊ฐ€ NULL์ด๋ฉด AND ๊ฑฐ๋ž˜์ผ์ž BETWEEN #OT1# AND #DT2# ์กฐ๊ฑด์ ˆ๋งŒ ์ ์šฉ๋˜๊ฒŒ ๋งŒ๋“ค๊ณ  ์‹ถ์€ ๊ฑด๋ฐ
    ์ด ๋•Œ . ๊ณ ๊ฐID๊ฐ€ ์„ ๋‘ ์ปฌ๋Ÿผ์ธ ์ธ๋ฑ์Šค๋ฅผ Range Scan ํ•˜๋Š” ์‹คํ–‰ ๊ณ„ํš์ด ์ˆ˜๋ฆฝ๋˜๋ฉด, #CUST_ID ๋ณ€์ˆ˜์— ๊ฐ’์„ ์ž…๋ ฅํ•˜์ง€ ์•Š์•˜์„ ๋•Œ ์ธ๋ฑ์Šค์—์„œ '๋ชจ๋“ ' ๊ฑฐ๋ž˜ ๋ฐ์ดํ„ฐ๋ฅผ ์Šค์บ”ํ•˜๋Š” ๋ถˆ์ƒ์‚ฌ๊ฐ€ ์ƒ๊ธด๋‹ค.

[4] ํด๋Ÿฌ์Šคํ„ฐ ์ •์˜

  • ํด๋Ÿฌ์Šคํ„ฐ๋Š” ๊ฐ’์ด ๊ฐ™์€ ๋ ˆ์ฝ”๋“œ๋ฅผ ํ•œ ๋ธ”๋ก(๋ฐ์ดํ„ฐ๊ฐ€ ๋งŽ์„ ๊ฒฝ์šฐ ์—ฐ๊ฒฐ๋œ ์—ฌ๋Ÿฌ ๋ธ”๋ก)์— ๋ชจ์•„
    ์„œ ์ €์žฅํ•œ๋‹ค.

[5] or ์กฐ๊ฑด์ ˆ์ด ์žˆ์ง€๋งŒ Index Range Scan์ด ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ

  • OR ์กฐ๊ฑด์€ ๊ธฐ๋ณธ์ ์œผ๋กœ Index Range Scan์„ ์œ„ํ•œ ์•ก์„ธ์Šค ์กฐ๊ฑด์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค.
  • OR ์กฐ๊ฑด์œผ๋กœ๋Š” ์ˆ˜์ง์  ํƒ์ƒ‰์„ ํ†ตํ•ด ์Šค์บ” ์‹œ์ž‘์ ์„ ์ฐพ์„ ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
  • ๋‹ค๋งŒ,CONCATENATION(์˜ตํ‹ฐ๋งˆ์ด์ €์— ์˜ํ•œ UNION ALL ๋ถ„๊ธฐ)์œผ๋กœ ์ฒ˜๋ฆฌํ–ˆ์„ ๋•Œ โญ๏ธ๊ฐ๊ฐโญ๏ธ ์ˆ˜์ง ํƒ์ƒ‰์„ ์œ„ํ•œ ์•ก์„ธ์Šค ์กฐ๊ฑด์œผ๋กœ ์‚ฌ์šฉํ•  ์ธ๋ฑ์Šค๊ฐ€ ์žˆ๋‹ค๋ฉด, Index Range Scan์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

[6] โญ๏ธ use_concat ์ฃผ์˜ํ•  ์ 

28๋ฒˆ

  • โญ๏ธ use_concat ํžŒํŠธ๋Š” or์ ˆ์ด ์žˆ๋Š” SQL์— ์จ์•ผํ•˜๋Š”๊ฒƒ์ด๋‹ค.
  • ๊ทธ๋ƒฅ in์ ˆ๋งŒ ์žˆ๋Š” ๊ฒฝ์šฐ๋Š” in list๋กœ ํ’€๋ฆฌ๊ฒ ์ง€๋งŒ ์ด์— use_concat์„ ์“ฐ๋ฉด ์•ˆ๋œ๋‹ค!!!
    • in list ๋ณ€ํ™˜๋„ union all ๋กœ ์ฒ˜๋ฆฌ๋œ๋‹ค.

[7] merge ์กฐ์ธ

18๋ฒˆ , 19๋ฒˆ

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

[8] ํ•ด์‹œ ์กฐ์ธ ํŠœ๋‹ ํ•ต์‹ฌ

28๋ฒˆ

  • โญ๏ธ ํ•ด์‹œ ์ฒด์ธ์ด ์ผ์–ด๋‚˜์ง€ ์•Š๋„๋ก ์กฐ๊ฑด์ ˆ์„ ๋ฐ”๊พธ๋Š” ๊ฒƒ !
profile
๋„๊ด‘์–‘ํšŒ(้Ÿœๅ…‰้คŠๆ™ฆ) โ€˜๋น›์„ ๊ฐ์ถ”๊ณ  ์–ด๋‘ ์†์—์„œ ํž˜์„ ๊ธฐ๋ฅธ๋‹คโ€™

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