이 문서에서는 SQL Server에서 인덱스를 생성, 이름 변경 및 삭제하는 방법을 설명합니다.
색인이란 무엇입니까 - SQL Server의 색인은 무엇입니까?
인덱싱은 레코드를 더 빠르게 검색하는 데 사용되는 방법입니다. 인덱스는 인덱스된 열에 나타나는 각 값을 가리킵니다.
색인 만들기
구문
CREATE [UNIQUE] [ CLUSTERED | NONCLUSTERED ] INDEX ten_chimuc
] [ CLUSTERED | NONCLUSTERED ] INDEX ten_chimuc
ON ten_bang ( cot1 [ASC | DESC ], . cot_n [ ASC | DESC ] )
[ INCLUDE ( cot1, . cot_n ) ]
[ WHERE dieu_kien ]
[ WITH ( PAD_INDEX = { ON | OFF }
| FILLFACTOR = fillfactor
| SORT_IN_TEMPDB = { ON | OFF }
| IGNORE_DUP_KEY = { ON | OFF }
| STATISTICS_NORECOMPUTE = { ON | OFF }
| STATISTICS_INCREMENTAL = { ON | OFF }
| DROP_EXISTING = { ON | OFF }
| ONLINE = { ON | OFF }
| ALLOW_ROW_LOCKS = { ON | OFF }
| ALLOW_PAGE_LOCKS = { ON | OFF }
| MAXDOP = so_toida
| DATA_COMPRESSION = { NONE | PAGE | ROW }
[ ON PARTITIONS ( { so | khoang } ]
[ ON scheme_phandoan ( cot )
| ON fnhomtaptin | ON nhomtaptin_macdinh ]
[ FILESTR
EAM_ON {nhomtaptin | scheme_phandoan }; scheme_phandoan};
고유
선택적으로 인덱스 열의 값 조합이 고유해야 함을 나타냅니다.
클러스터형
선택적으로 테이블 행의 물리적 배열을 결정하는 논리적 순서(예:인덱스의 필드별로 정렬된 테이블의 레코드 순서)를 지정합니다.
클러스터 없음
선택적으로 테이블 행의 물리적 배열을 결정하지 않는 논리적 순서를 나타냅니다.
ten_chimuc
만들고자 하는 인덱스의 이름
ten_bang
인덱스가 생성되는 테이블 또는 뷰의 이름입니다.
cot1, . 유아용 침대
인덱스를 생성하는 열입니다.
ASC | DESC
열에 있는 값의 정렬 순서
포함(cot1, . cot_n)
선택적으로 해당 열은 비클러스터형 인덱스의 잎이 많은 수준에 추가할 기본 열이 아닙니다.
dieu_kien 위치
선택 사항, 인덱스에 포함할 행을 결정하는 조건입니다.
ON scheme_phanvung(유아용 침대)
선택적으로 파티션이 매핑되는 파일 그룹(파일 그룹)을 결정하는 파티션 공간을 표시합니다.
nhomtaptin 사용
선택적으로 지정된 파일 그룹에 색인을 생성할지 여부를 지정합니다.
nhomtaptin_macdinh 켜기
선택 사항, 기본 파일 그룹을 나타냅니다.
FILESTREAM_ON {nhomtaptin | khongigna_phanvung } khongigna_phanvung}
선택적으로 클러스터형 인덱스에 대한 FILESTREAM 데이터의 위치를 나타냅니다.
SQL Server의 인덱스 예
CREATE INDEX danhba_chimuc
ON danhba (h
o);
이 예에서 우리는 목록에 danhba_chimuc라는 색인을 생성하고 기침이라는 필드를 포함합니다. 아래 예시와 같이 2개 이상의 필드 인덱스를 생성할 수 있습니다.
CREATE INDEX danhba_chimuc
ON da
(cough, ten);
이 예는 두 개의 필드, 기침 및 10을 포함하여 이름 목록에 namesba_chimuc 목록을 생성합니다. 각 항목에 대해 ASC 또는 DESC가 지정되지 않았으므로 기본 순서에서 각 필드로 생성된 인덱스는 증분입니다. 내림차순으로 원하시면 다음과 같이 하시면 됩니다.
CREATE INDEX list name
ON danhba (ho DESC, te
n DESC);
위의 CREATE INDEX 명령은 이름과 성을 내림차순으로 정렬하여 사용자 이름과 _chimuc만 만듭니다.
고유 색인의 예
CREATE UNIQUE INDEX danhba_chimucduynhat
ON danhba (ho, ten);
이 예는 이름과 성을 포함하는 이름 목록에 danh_chimuc라는 색인을 만들고 이 두 필드의 조합이 고유하도록 합니다. Clustered의 고유 인덱스를 생성하여 테이블에 있는 행의 물리적 순서가 인덱스의 논리적 순서에 따라 결정되도록 할 수 있습니다.
CREATE UNIQUE CLUSTERED INDEX danhba_chimucduynhat
ON danh
three (ho, ten);
이 예에서 새로 생성된 인덱스는 danhba_chimucduynhat이라는 이름이 2개의 이름 필드와 성 필드로 구성되며 이에 따라 테이블의 행 정렬 순서도 변경됩니다.
SQL Server에서 인덱스 이름 바꾸기
구문
sp_rename
'tenbang.ten_chi_muc_cu', 'ten_chimuc_moi', 'INDEX';
ten_bang
인덱스가 생성되는 테이블의 이름입니다.
ten_chimuc_cu
이름을 바꾸려는 색인의 이름입니다.
ten_chimuc_moi
색인의 새 이름입니다.
예:
sp_rename
'danhba.danhba_chimuc', 'danhba_chimuc_ten', 'INDEX';
이 예는 danhba_chimuc에서 listba_chimuc_ten으로 namba 테이블의 인덱스 이름을 바꿉니다.
SQL Server에서 인덱스 삭제
구문
DROP INDEX tenbang.ten_chimuc;
ten_bang
인덱스가 생성되는 테이블의 이름입니다.
ten_chimuc_cu
삭제할 색인의 이름입니다.
예:
DROP INDEX danhba.danhba_chimuc;
이 예는 ba_chimuc라는 색인을 삭제합니다.