MSSQL에서는 기본적으로 PK 생성시 자동으로 클러스터 인덱스가 생성이 됩니다.
튜닝에 있어서 가장 기본적인 것이 인덱스 설정입니다.
아래의 쿼리는 클러스터 인덱스가 설정되지 않은 테이블을 조회하는 SP 입니다
SELECT A.id AS Object_id ,
A.Name AS Table_Name ,
B.name AS Index_Name ,
B.index_id AS index_id ,
B.type_desc AS type_desc
FROM sysobjects AS A
JOIN sys.indexes AS B ON A.id = B.object_id
WHERE A.xType = 'U'
AND B.index_id = 0
ORDER BY A.id, B.type_desc, B.name
간단히 설명 드리면
sys.indexes의 index_id가 0 : heap, 1: clustered index 2>= : non clustered index를 표시합니다.
추가로 왜 인덱스를 설정하지 않는 heap 테이블의 경우에도 장점이 존재하지만 따로 힙 테이블로 두어야할 구체적 이유가 없다면 반드시! 클러스터 인덱스를 설정하도록 합시다~
해당 테이블에 대한 자세한 정보는 아래 MS Document 참고 부탁드립니다.
https://docs.microsoft.com/ko-kr/sql/relational-databases/system-catalog-views/sys-indexes-transact-sql?view=sql-server-ver15