*index
- ๋ ์ฝ๋์ ์์ด ๋ง์ ๋ ๋น ๋ฅธ ๊ฒ์์ ํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ ๊ฐ์ฒด (CPU cost๊ฐ ์ค์ด๋ ๋ค)
- ์๋ ์ธ๋ฑ์ค, ์๋ ์ธ๋ฑ์ค ์ ๊ณต
- ์๋์ธ๋ฑ์ค: ํ
์ด๋ธ์ ์์ฑํ์ ๋ ์๋์ผ๋ก PK,UX์ ์ํด ์๋์ผ๋ก ์์ฑ๋๋ ์ธ๋ฑ์ค
unique ์ธ๋ฑ์ค๊ฐ ์๋ ์์ฑ - ์๋์ธ๋ฑ์ค: ๊ฐ๋ฐ์๊ฐ ํ์์ ์ํด์ ์์ฑํ๋ ์ธ๋ฑ์ค(unique,non unique,
bitmap,composite)
-๋ชจ๋ ๊ณ์ ์ index๋ฅผ ์์ฑํ ์ ์์
- user_indexes DD์์ ๋ง๋ค์ด์ง ์ธ๋ฑ์ค ํ์ธ ๊ฐ๋ฅ
-๋ชจ๋ ๋ ์ฝ๋๋ rowid(๋ ์ฝ๋๋ฅผ ์๋ณํ๊ธฐ ์ํ ๋ฌผ๋ฆฌ์ ์ฃผ์, ๊ฒน์น์ง ์์)๋ฅผ ๊ฐ์ง
AAAShCAAHAAAAKEAAA ( AAAShC ๋ฐ์ดํฐ๊ฐ์ฒด๋ฒํธ AAH ํ์ผ๋ฒํธ AAAAKE ๋ธ๋ก๋ฒํธ AAA ๋ ์ฝ๋๋ฒํธ)
DB๋ ๋ด์ฉ์ ์ํ ์ฐธ์กฐ์ด์ง๋ง (๊ฐ์ ๊ฐ์ ์๋ณ ์) ์ฃผ์์ ์ํ ์ฐธ์กฐ๋ฅผ ํ๊ธฐ ์ํด rowid๋ฅผ ์จ์ ๊ด๋ฆฌํจ
๋ฌธ๋ฒ)
- create [์ธ๋ฑ์ค ์ข ๋ฅ] index ์ธ๋ฑ์ค๋ช on ํ ์ด๋ธ๋ช (์ปฌ๋ผ๋ช ,,,) ; //
- unique,non unique, bitmap์ ํ๋, composite์ n๊ฐ์ ์ปฌ๋ผ์ผ๋ก ์ธ๋ฑ์ค๊ฐ ๊ตฌ์ฑ๋จ
-์ธ๋ฑ์ค๋ก ์ ์ ํ๋ ์ปฌ๋ผ์ ๊ธฐ์ค:
- where์ ์์ ์์ฃผ ์ฌ์ฉ๋๋ ์ปฌ๋ผ์ด ์ธ๋ฑ์ค์ ๋ฐ์๋๋ฉด ์ข์ (์ฃผ๋ก pk์ปฌ๋ผ, ์์ ํจ์ ์ข ์)
- ์์ฃผ ๋ณ๊ฒฝ๋์ง ์๋ ์ปฌ๋ผ (์ค๊ณ์ ๋ถ์ฌ๋ก ๋ถ๋ถํจ์ ์ข ์ ์)
- ์ฃผ์ : ์ธ๋ฑ์ค ์ปฌ๋ผ์ ํจ์๋ฅผ ์ฌ์ฉํ ์กฐํ๋ฅผ ํ์ง ์์
-์ธ๋ฑ์ค๋ ํ ์ด๋ธ์์ ๋์ถ๋ ๊ฐ์ฒด์ด์ง๋ง, ํ ์ด๋ธ๊ณผ๋ ๋ณ๋๋ก ๋์ํจ (cf.๋ทฐ๋ ๊ฐ์ด ๋์)
์๊ฐ์ด ์ง๋ ์๋ก ํ ์ด๋ธ๊ณผ ์ธ๋ฑ์ค ๊ฐ์ ๋ฐ์ดํฐ์ ์ฐจ์ด,๊ดด๋ฆฌ๊ฐ ๋ฐ์ํจ >
์ผ์ ์ฃผ๊ธฐ๋ก index๋ฅผ rebuilding ์ฌ๊ตฌ์ถํด์ผ ํจ
- b-tree index๋ฅผ ์์ฑ
rowid | ์ปฌ๋ผ๋ช |
์ค์ ๋ ์ฝ๋ ์์น | 1 |
2 | |
. | |
. | |
100 |
where ์ปฌ๋ผ๋ช = ๊ฐ;
์ปฌ๋ผ์ ๊ฐ์ ์์์๋ถํฐ ์๋๋ก ํ๋ full scanํ์ฌ ๊ฒ์ํจ
>์ฐพ๊ณ ์ ํ๋ ๊ฐ์ด 99๋ฒ์งธ์ผ ๋ 99๋ฒ์งธ ๋ ์ฝ๋๋ฅผ ๊ฒ์ํ๋ ค๋ฉด ์์ฐจ์ ์ผ๋ก ๊ฒ์, 99๋ฒ ๋น๊ตํด์ ๊ฒฐ๊ณผ ๋์ด
- ์ธ๋ฑ์ค ์ฌ์ฉ
์ธ๋ฑ์ค์์ ๋ฐ์ดํฐ์ ๊ตฌ์ฑ์ ๊ฒ์ํ๊ณ , ์ค์ ๋ ์ฝ๋์ ์์น๋ก ๊ฐ์ ๊ฐ์ ๊ฐ์ ธ์ค๋ ์ค์ ๊ฒ์์ ์ํํจ
> ์ ์ ํ์๋ก ๋ ์ฝ๋๋ฅผ ๊ฒ์ํ ์ ์์
*unique index
- ์ปฌ๋ผ์ ๊ฐ์ด ์ ์ผํ ๋ ์ฌ์ฉํ๋ ์ธ๋ฑ์ค
- ์๋ ์ธ๋ฑ์ค ์ค ํ๋
- ํ ์ด๋ธ์ ์์ฑํ ๋ PK๋ Unique ์ ์ฝ์ ์ค์ ํ๋ฉด ์๋์ผ๋ก ์์ฑ๋จ
๋ฌธ๋ฒ)
-์ธ๋ฑ์ค ์์ฑ
create unique index ์ธ๋ฑ์ค๋ช on ํ ์ด๋ธ๋ช (์ปฌ๋ผ๋ช ); // ์ปฌ๋ผ์ ๊ฐ์ด ์ค๋ณต์์ด ์ ์ผํด์ผํจ, pk์ปฌ๋ผ
-์ธ๋ฑ์ค ์ญ์
drop index ์ธ๋ฑ์ค๋ช ;
-์ธ๋ฑ์ค๊ฐ ์ค์ ๋ ์ปฌ๋ผ์ ๊ฒ์ DD
user_ind_columns
*non unique index
-์ปฌ๋ผ์ ๊ฐ์ด ์ค๋ณต๋ ๋ ์ฌ์ฉํ๋ ์ธ๋ฑ์ค (์ผ๋ฐ์ปฌ๋ผ์ ์ฃผ๋ก ์ ์ฉํ๋ ์ธ๋ฑ์ค)
-๊ฐ๋ฐ์๊ฐ ์๋์ผ๋ก ์์ฑํ๋ ์ธ๋ฑ์ค
๋ฌธ๋ฒ)
create index ์ธ๋ฑ์ค๋ช on ํ ์ด๋ธ๋ช (์ปฌ๋ผ๋ช );
*bitmap
-์ปฌ๋ผ์ ๊ฐ์ด ์ค๋ณต๋๋, ๋ ํนํ ํํ์ ๊ฐ์ผ ๋ ์ฌ์ฉํ๋ ์ธ๋ฑ์ค (ex. ์ฝ๋๊ฐ ICD_0001)
-12c๋ถํฐ ์์ฑ ์๋จ
๋ฌธ๋ฒ)
create bitmap index ์ธ๋ฑ์ค๋ช on ํ ์ด๋ธ๋ช (์ปฌ๋ผ๋ช );
*composite index
-์ฌ๋ฌ ๊ฐ์ ์ปฌ๋ผ์ผ๋ก ์ธ๋ฑ์ค๋ฅผ ๊ตฌ์ฑํด์ผ ํ ๋
๋ฌธ๋ฒ)
create index ์ธ๋ฑ์ค๋ช on ํ ์ด๋ธ๋ช (์ปฌ๋ผ๋ช ,,,);
*์ธ๋ฑ์ค ์ฌ๊ตฌ์ถ(๊ฐฑ์ )
-ํ ์ด๋ธ์ ๋ณ๊ฒฝ์ฌํญ์ ์ ์ฉํ์ฌ ์ธ๋ฑ์ค๋ฅผ ์ฌ๊ตฌ์ถ
๋ฌธ๋ฒ)
alter index ์ธ๋ฑ์ค๋ช rebuild;
index hint :
-Oracle DBMS์๊ฒ ์ง์ ํ ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํ์ฌ ๊ฒ์ํ๋๋ก ์ค์ ํจ
-์กฐํ ์ปฌ๋ผ์ /*+ index(์ปฌ๋ผ๋ช ) ์ธ๋ฑ์ค๋ช */
index๋ฅผ ์ฌ์ฉํ ๊ฒ์ > H/W์ ์์์ ์ ๊ฒ ์ฌ์ฉํ๋ฏ๋ก, ๊ฒ์ ๊ฒฐ๊ณผ๋ฅผ ๋น ๋ฅด๊ฒ ๊ฐ์ ธ์ฌ ์ ์์
-index๊ฐ ์ ์ฉ๋์ง ์์ ์ปฌ๋ผ์ ์ฌ์ฉํ์ฌ ๊ฒ์ํ๋ฉด CPU Cost์ IO Cost ์ฆ๊ฐ
-index๊ฐ ์ ์ฉ๋ ์ปฌ๋ผ์ ์ฌ์ฉํ์ฌ ๊ฒ์ํ๋ฉด CPU Cost์ IO Cost ๊ฐ์