[Oracle] ๐Ÿ’พ ํžŒํŠธ (Hint)

shrยท2022๋…„ 3์›” 3์ผ
0

Concept

๋ชฉ๋ก ๋ณด๊ธฐ
8/13
post-thumbnail

ํžŒํŠธ (Hint)


์˜ค๋ผํด์ด ํ•ญ์ƒ ์ตœ์ ์˜ ์‹คํ–‰ ๊ฒฝ๋กœ๋ฅผ ๋งŒ๋“ค์–ด๋‚ด๊ธฐ๋ž€ ๋ถˆ๊ฐ€๋Šฅํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ์šฉ์ž๊ฐ€ ์ง์ ‘ ์ตœ์ ์˜ ์‹คํ–‰ ๊ฒฝ๋กœ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ์ผ์ข…์˜ ์ง€์‹œ ๊ตฌ๋ฌธ์ด๋‹ค.

์‚ฌ์šฉ์ž๊ฐ€ ํŠน์ • ์ฟผ๋ฆฌ๋ฌธ์— ์–ด๋–ค ์ธ๋ฑ์Šค์˜ ์„ ํƒ๋„๊ฐ€ ๋†’์€์ง€ ์•Œ๊ณ  ์žˆ๋Š” ๊ฒฝ์šฐ, ์˜ค๋ผํด์— ์˜์กดํ•œ ์‹คํ–‰ ๊ณ„ํš๋ณด๋‹ค ํ›จ์”ฌ ๋” ํšจ์œจ์ ์ธ ์‹คํ–‰ ๊ณ„ํš์„ ๊ตฌ์‚ฌํ•  ์ˆ˜ ์žˆ๊ฒŒ๋” ํ•ด ์ค€๋‹ค.


ํžŒํŠธ ์‚ฌ์šฉ ๋ฐฉ๋ฒ•


์ฟผ๋ฆฌ๋ฌธ ์„œ๋‘์— /*+ ํžŒํŠธ๋ช… */์„ ๋ช…์‹œํ•œ๋‹ค. ๊ฐ„๋‹จํ•œ ์˜ˆ์‹œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

select /*+ index(emp pk_emp) */ * from emp;
-- pk_emp ์ธ๋ฑ์Šค ๊ธฐ์ค€ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌ๋œ๋‹ค.

select /*+ index_desc(emp pk_emp) */ * from emp;
-- pk_emp ์ธ๋ฑ์Šค ๊ธฐ์ค€ ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌ๋œ๋‹ค.

ํžŒํŠธ ์ข…๋ฅ˜


์กฐ์ธ ์ˆœ์„œ๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ํžŒํŠธ์ ˆ

  • /*+ ORDERED */
    FROM์ ˆ์— ๋ช…์‹œํ•œ ์ˆœ์„œ๋Œ€๋กœ ํ…Œ์ด๋ธ”์„ ์กฐ์ธํ•˜๋„๋ก ํ•œ๋‹ค.

  • /*+LEADING(ํ…Œ์ด๋ธ”๋ช…1, ํ…Œ์ด๋ธ”๋ช…2...) */
    ํŒŒ๋ผ๋ฏธํ„ฐ์— ๋ช…์‹œํ•œ ์ˆœ์„œ๋Œ€๋กœ ํ…Œ์ด๋ธ”์„ ์กฐ์ธํ•˜๋„๋ก ํ•œ๋‹ค.

์กฐ์ธ ๋ฐฉ์‹์„ ๊ฒฐ์ •ํ•˜๋Š” ํžŒํŠธ์ ˆ

  • /*+USE_NL */
    ์ˆœ์ฐจ์ ์ธ ๋ฃจํ”„์— ์˜ํ•œ ์กฐ์ธ ๋ฐฉ์‹์ธ Nested Loop Join(์ค‘์ฒฉ ๋ฃจํ”„ ์กฐ์ธ)์„ ์œ ๋„ํ•œ๋‹ค.

  • /*+USE_HASH */
    ํ•ด์‹œ ์กฐ์ธ์„ ์œ ๋„ํ•œ๋‹ค.

์ ‘๊ทผ ๋ฐฉ์‹์„ ๊ฒฐ์ •ํ•˜๋Š” ํžŒํŠธ์ ˆ

  • /*+INDEX */
    ์ง€์ •ํ•œ ์ธ๋ฑ์Šค๋ฅผ ๊ฐ•์ œ๋กœ ์“ฐ๊ฒŒ๋” ํ•œ๋‹ค. (์˜ค๋ฆ„์ฐจ์ˆœ)

  • /*+INDEX_DESC */
    ์ง€์ •ํ•œ ์ธ๋ฑ์Šค๋ฅผ ๊ฐ•์ œ๋กœ ์“ฐ๊ฒŒ๋” ํ•œ๋‹ค. (๋‚ด๋ฆผ์ฐจ์ˆœ)

  • /*+INDEX_FFS */
    ์ง€์ •ํ•œ ์ธ๋ฑ์Šค๋ฅผ, ์ธ๋ฑ์Šค๋งŒ์„ ๋น ๋ฅด๊ฒŒ ์ „์ฒด ์Šค์บ”ํ•˜๋Š” Fast Full Scan์œผ๋กœ ํƒ€๊ฒŒ๋” ํ•œ๋‹ค.

  • *+INDEX_SS */
    Skip Scan์œผ๋กœ, ์ธ๋ฑ์Šค์˜ ์„ ํ–‰ ์ปฌ๋Ÿผ ์กฐ๊ฑด์ด ์ž…๋ ฅ๋˜์ง€ ์•Š์„ ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.

  • /*+PARALLEL */
    ํ…Œ์ด๋ธ” ์Šค์บ”์— ์žˆ์–ด ๋ณ‘๋ ฌ ๋ฐฉ์‹์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๋„๋ก ํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค. ์ž์›์„ ๋…์ ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ ์‚ฌ์šฉ ์—ฌ๋ถ€๋ฅผ ์‹ ์ค‘ํ•˜๊ฒŒ ๊ฒฐ์ •ํ•ด์•ผ ํ•œ๋‹ค.


์ฐธ๊ณ  ์ž๋ฃŒ


์˜ค๋ผํด ์ž์ฃผ์‚ฌ์šฉํ•˜๋Š” ํžŒํŠธ๋ชฉ๋ก ์ •๋ฆฌ(์นœ์ ˆํ•œ sql ํŠœ๋‹)
[SQL ํŠœ๋‹] ์˜ค๋ผํด ํžŒํŠธ(hint)์˜ ๊ฐœ๋…/ ์‚ฌ์šฉ๋ฒ•/์ž์ฃผ์“ฐ์ด๋Š”ํžŒํŠธ ์ •๋ฆฌ
Oracle - ๋ฐ˜๋“œ์‹œ ์•Œ์•„์•ผ ํ•˜๋Š” ์˜ค๋ผํด ํžŒํŠธ์ ˆ 7๊ฐ€์ง€

profile
๋ชปํ•˜๋‹ค ๋ณด๋ฉด ์ž˜ํ•˜๊ฒŒ ๋˜๋Š” ๊ฑฐ์•ผ ๏ฝฅแด—๏ฝฅฬฅฬฅฬฅ

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