본문 바로가기
컴퓨터관련/MS-SQL

MSSQL에서 INDEX에 INCLUDE 되어있는 정보 확인하기

by 빛과 어둠사이 2020. 5. 12.
728x90
반응형
SMALL

이번에는 SQL SERVER에서 

INDEX에 INCLUDE 되어있는 정보를

확인하는 방법을

정리해보려고 합니다.



MSSQL이든,

ORALCE이든

여러 DBMS에서 

INDEX는 많이 사용을 합니다.

아니, 거의 꼭 사용한다고 해도 될 만한

것입니다.

그래서 이번에는 인덱스에서 인클루드 되어있는

정보를 확인하는 방법을

정리해보도록 하겠습니다.



1. 인덱스 정보 확인

우선 인덱스 정보를 확인해봐야 합니다.

인덱스 정보는 MSSQL에서 제공해주는

시스템함수를 이용해서 확인할 수 있습니다.

시스템함수의 명은 

SP_HELPINDEX 입니다.


실제 사용 예제는

다음과 같습니다.

SP_HELPINDEX 테이블명

위처럼 해주시면 되십니다.

테이블명에 원하는 테이블의 이름을

넣어주시면 되십니다.

그러면 해당 테이블에 생성되어 있는

인덱스 리스트를 가져오게 됩니다.



위 쿼리를 실행하면

결과는 다음과 같이 나오게 됩니다.



인덱스명이나, 컬럼 등은

숨겨놓았습니다.





2. index 정보 확인하기

인덱스명을 확인했으면

이번에는 index 정보를 확인해보도록 하겠습니다.

이것도 SQL SERVER에서 제공하는

시스템 테이블을 이용하여

확인할 수 있습니다.


예제 쿼리는 다음과 같습니다.

SELECT * FROM SYS.indexes
WHERE NAME = '인덱스명'


위 쿼리에서 인덱스명은

1번에서 확인했던

index_name 값을 넣어주시면 되십니다.


그러면 해당 인덱스에 대한

정보를 확인할 수 있습니다.



제가 실제 사용하는 인덱스 중 하나를 넣고

실행을 해보았으니

결과는 다음과 같이 나오게 되었습니다.



이 정보를 가지고,

include 되어잇는 정보도

확인할 수 있습니다.




3. include 되어있는 정보 확인하기

이제 해당 인덱스에

인클루드 되어있는 정보를

확인해보도록 하겠습니다.



이번에도 역시 MSSQL에서 제공하는

시스템 테이블을 이용하여

확인하면 됩니다.


예제 쿼리는 다음과 같습니다.

select top 10 * from sys.index_columns
where object_id = object_id
and index_id = index_id

위 쿼리를 이용하시면 되십니다.


위 쿼리에서 object_id와 index_id는 

2번에서 확인한 값을

넣어주시면 되십니다.



그럼 이제 실제로 실행을 해보았습니다.

그러면 결과는 아래처럼 나오게 됩니다.



위처럼 나오게 되었습니다.

위의 이미지에서 빨간색 네모 친 부분이

include 되어있는 column의 숫자입니다.




include 되어있는 것이 많으면

select 할 때 속도가 더 빠르게

나온다는 장점이 있습니다.

그리고 인덱스가 무겁고,

갱신 시에 속도가 오래 걸리는 단점이 있습니다.


이렇게 장단점이 있기 때문에,

필요에 따라서

용도에 따라서

사용을 해주시면 되십니다.





오늘은 SQLSERVER에서 INDEX에

INCLUDE 되어있는 정보를

확인하는 방법을 정리해보았습니다.

용도에 따라서, 최적화 된 방법으로

사용을 해주시면 될 것 같습니다.




728x90
반응형
LIST