22-08-18

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

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

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

๐Ÿ—“ 22-08-18

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

(1) ๊ณ ๋„ํ™”

โญ๏ธ SQLP ์‹ค๊ธฐ ํ’€์ด (์—ฌ๋Ÿฌ๋ฒˆ ๋ณต์Šตํ• ๊ฒƒ)

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

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

(1) [SQLPํ•„๊ธฐ๋ฌธ์ œ]3์žฅ ์ธ๋ฑ์Šค ํŠœ๋‹-์ธ๋ฑ์Šค ๊ธฐ๋ณธ ์›๋ฆฌ

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

[1] โญ๏ธ ํŒŒํ‹ฐ์…˜๋œ ํ…Œ์ด๋ธ” DML ํŠœ๋‹์‹œ ์œ ์˜์ 

52๋ฒˆ

  • โญ๏ธ ํŒŒํ‹ฐ์…˜๋œ ํ…Œ์ด๋ธ” ์•ˆ์—์„œ ์ธ๋ฑ์Šค ๊ฒ€์ƒ‰์‹œ 10% ๋น„์ค‘์ด ๋„˜์–ด๊ฐ€๋ฉด ๊ทธ ๋•Œ๋Š” ์ธ๋ฑ์Šค๊ฐ€ ์•„๋‹ˆ๋ผ FULL SCAN์„ ์‹คํ–‰ํ•œ๋‹ค.

[2] DECODE๋ฌธ ๋ฌธ๋ฒ•

SELECT ์ž‘์—…์ผ๋ จ๋ฒˆํ˜ธ , ์ž‘์—…์žID , 
DECODE(์ž‘์—…๊ตฌ๋ถ„์ฝ”๋“œ,'A','๊ฐœํ†ต','B','์žฅ์• ') ์ž‘์—…๊ตฌ๋ถ„ ,
DECODE(์ž‘์—…๊ตฌ๋ถ„์ฝ”๋“œ,'A',B.๊ณ ๊ฐ๋ฒˆํ˜ธ,'B',C.๊ณ ๊ฐ๋ฒˆํ˜ธ) ๊ณ ๊ฐ๋ฒˆํ˜ธ ,
DECODE(์ž‘์—…๊ตฌ๋ถ„์ฝ”๋“œ,'A',B.์ฃผ์†Œ,'B',C.์ฃผ์†Œ) ์ฃผ์†Œ
FROM ์ž‘์—…์ง€์‹œ A , ๊ฐœํ†ต์ ‘์ˆ˜ B , ์žฅ์• ์ ‘์ˆ˜ C
WHERE A.๋ฐฉ๋ฌธ์˜ˆ์ •์ผ์ž = TO_CHAR(SYSDATE, 'YYYYMMDD')
AND B.๊ฐœํ†ต์ ‘์ˆ˜๋ฒˆํ˜ธ(+) = DECODE(์ž‘์—…๊ตฌ๋ถ„์ฝ”๋“œ,'A',A.์ ‘์ˆ˜๋ฒˆํ˜ธ)
AND C.์žฅ์• ์ ‘์ˆ˜๋ฒˆํ˜ธ(+) = DECODE(์ž‘์—…๊ตฌ๋ถ„์ฝ”๋“œ,'B',A.์ ‘์ˆ˜๋ฒˆํ˜ธ);

[3] ์ธ๋ฑ์Šค ์ˆ˜์ง ์•ก์„ธ์Šค์™€ unique ์Šค์บ” ๊ด€๊ณ„

9๋ฒˆ

  • ๋ฌด์กฐ๊ฑด ์ˆ˜์ง ์•ก์„ธ์Šค๋ผ๊ณ  ํ•ด์„œ Index Unique ์Šค์บ”์€ ์•„๋‹ˆ๋‹ค.

[4] ์ธ๋ฑ์Šค Skip scan ๊ฐ€๋Šฅ ์—ฌ๋ถ€

13๋ฒˆ

  • ์ค‘๊ฐ„์— ๊ผญ ์ธ๋ฑ์Šค ์š”์†Œ๊ฐ€ ๋น ์ง€์ง€ ์•Š์•„๋„ skip scan์€ ๊ฐ€๋Šฅํ•˜๋‹ค.
  • ํ๋‹นํ๋‹น์ด ๊ฐ€๋Šฅํ•œ์ง€ ๋จธ๋ฆฟ์†์œผ๋กœ ๊ทธ๋ ค๋ณด๋ฉด ๋œ๋‹ค.(์ค‘๊ฐ„์„ ๊ฑด๋„ˆ๋›ฐ๋Š”์ง€)
    • ์ฆ‰ , ๋ชจ๋‘ ์•ก์„ธ์Šค ์กฐ๊ฑด์ด ๋˜๋ฉด Index_ss๋Š” ์•ˆ๋œ๋‹ค.

[5] ํ…Œ์ด๋ธ” ๋žœ๋ค ์•ก์„ธ์Šค ๋ถ€ํ•˜ ์ค„์ด๊ธฐ

19๋ฒˆ

  • IOT : ๋ฆฌํ”„๋ธ”๋ก์— ๋‹ค ์žˆ๋‹ค.
  • ํŒŒํ‹ฐ์…˜ : FULL SCAN์œผ๋กœ ๋ถ€๋ถ„ ํ…Œ์ด๋ธ”์„ ๋‹ค ์ฝ์–ด๋ฒ„๋ฆฐ๋‹ค.
  • ํด๋Ÿฌ์Šคํ„ฐ : ๊ฐ™์€ ํ‚ค ๊ฐ’(DEPTNO)์„ ๊ฐ–๋Š” ๋ ˆ์ฝ”๋“œ๋“ค์ด ์„œ๋กœ ๊ฐ™์€ ๋ธ”๋ก์•ˆ์— ๋ชจ์—ฌ์žˆ๋‹ค.

[6] ํžŒํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ ๋„ Index Range Scan์ด ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ

26๋ฒˆ

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

[7] ํžŒํŠธ๋ฅผ ์‚ฌ์šฉํ•ด์„œ๊นŒ์ง€ Index Range Scan์„ ํ•ด์•ผํ•˜๋Š” ๊ฒฝ์šฐ

30๋ฒˆ

  • IN์ ˆ์ด๋‚˜ OR์ ˆ์—์„œ ๊ผญ Index Range Scan์„ ์œ ๋„ํ•˜๋ ค๊ณ ํ•œ๋‹ค๋ฉด UNION ALL์„ ์ด๋Œ์–ด๋‚ด์•ผํ•œ๋‹ค.
    • โญ๏ธ use_concat ํžŒํŠธ ์‚ฌ์šฉ !! โญ๏ธ
profile
๋„๊ด‘์–‘ํšŒ(้Ÿœๅ…‰้คŠๆ™ฆ) โ€˜๋น›์„ ๊ฐ์ถ”๊ณ  ์–ด๋‘ ์†์—์„œ ํž˜์„ ๊ธฐ๋ฅธ๋‹คโ€™

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