MSSQL INDEX
2019. 1. 16. 22:28
index
인덱스를 해야하는 이유는 쿼리 속도를 늘리기 위해서,
- 원래 50개의 데이터 -> 기계어 -> 메모리 or 하드에 01010101 로 데이터+주소를 파일형태로 저장
- 하나의 쿼리 -> where를 이용해서 특정칼럼을 뽑아오는데, 파일시스템은 전체 데이터를 검색한다.
- 특정칼럼을 인덱스로 지정해놓으면 (여러개 칼럼 중 자주 사용하는 특정칼럼(자주 변하는 체중))
-> 컴퓨터가 인덱스 칼럼를 뽑아서 새로운 파일로 만들어 놓는다.
-> 쿼리날릴 때 WHERE조건에 인덱스를 주면, 아주 빠르게 검색해온다. - 인덱스의 종류는 2가지가 있는데, Clustered / NonClustered가 있는데 Clustered가 더 빠르다.
- MSSQL에서는 1개의 Clustered 밖에 못 만들고, 보통은 PRIMARY KEY를 인덱스로 지정한다.
- 이름- 주민번호 / 주민번호-학번 의 2개의 테이블이 있다면,
주민번호가 한 테이블의 PRIMARY KEY가 되고 -> 다른 테이블의 FOREIGN KEY가 되며 -> 각 KEY는 index로 잡혀 있는게 일반적인 RDB의 기본 index형태이다. - T-SQL에서는 1개의 CLUSTERED INDEX를 지정할 수 있으니
WHERE절이나, JOIN절에 가장 많이 넣는 칼럼을 index로 지정하자.
가진 Table의 index 확인
sp_help 테이블네임 -> index가 있을 경우, index_name이 보인다.
sp_help BANK_A -> index 지정 안해줬으니 안나옴.
--★ Index 예시 ★--------
CREATE CLUSTERED INDEX personid ON Person (personid);
CREATE NONCLUSTERED INDEX birthday ON Person (birthday);
SET SHOWPLAN_ALL { ON | OFF }
SET SHOWPLAN_TEXT { ON | OFF }
SET STATISTICS IO { ON | OFF }
SET STATISTICS TIME { ON | OFF }
SET STATISTICS PROFILE { ON | OFF }
'한의대 생활 > └ MySQL & MSSQL' 카테고리의 다른 글
MSSQL 분석 연습 1 - Person (1/7) (0) | 2019.01.23 |
---|---|
MSSQL JOIN 개념 및 연습 + DELETE, SELECT 팁 (1) | 2019.01.16 |
MSSQL T-SQL 개념 소개 및 UPDATE 전 BEGIN TRAN 연습 (0) | 2019.01.16 |
MSSQL 기본 쿼리 연습하기 (0) | 2019.01.16 |
MSSQL 설치 및 DB생성 후 CSV파일들 table로 올리기 (0) | 2019.01.16 |