์ค๋ผํด์ด ํญ์ ์ต์ ์ ์คํ ๊ฒฝ๋ก๋ฅผ ๋ง๋ค์ด๋ด๊ธฐ๋ ๋ถ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ ์ฌ์ฉ์๊ฐ ์ง์ ์ต์ ์ ์คํ ๊ฒฝ๋ก๋ฅผ ์์ฑํ๋ ์ผ์ข ์ ์ง์ ๊ตฌ๋ฌธ์ด๋ค.
์ฌ์ฉ์๊ฐ ํน์ ์ฟผ๋ฆฌ๋ฌธ์ ์ด๋ค ์ธ๋ฑ์ค์ ์ ํ๋๊ฐ ๋์์ง ์๊ณ ์๋ ๊ฒฝ์ฐ, ์ค๋ผํด์ ์์กดํ ์คํ ๊ณํ๋ณด๋ค ํจ์ฌ ๋ ํจ์จ์ ์ธ ์คํ ๊ณํ์ ๊ตฌ์ฌํ ์ ์๊ฒ๋ ํด ์ค๋ค.
์ฟผ๋ฆฌ๋ฌธ ์๋์ /*+ ํํธ๋ช
*/
์ ๋ช
์ํ๋ค. ๊ฐ๋จํ ์์๋ ๋ค์๊ณผ ๊ฐ๋ค.
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๊ฐ์ง