다음을 통해 공유


sys.indexes(Transact-SQL)

테이블, 뷰 또는 테이블 반환 함수와 같은 테이블 형식 개체의 인덱스 또는 힙당 하나의 행을 포함합니다.

적용 대상: SQL Server(SQL Server 2008 - 현재 버전), Windows Azure SQL 데이터베이스(최초 릴리스 - 현재 릴리스)

열 이름

데이터 형식

설명

object_id

int

이 인덱스가 속한 개체의 ID입니다.

name

sysname

인덱스의 이름입니다. name은 해당 개체 내에서만 고유합니다.

NULL = 힙

index_id

int

인덱스의 ID입니다. index_id는 해당 개체 내에서만 고유합니다.

0 = 힙

1 = 클러스터형 인덱스

> 1 = 비클러스터형 인덱스

type

tinyint

인덱스의 유형입니다.

0 = 힙

1 = 클러스터형

2 = 비클러스터형

3 = XML

4 = 공간

5 = 클러스터형 columnstore 인덱스

6 = 비클러스터형 columnstore 인덱스

7 = 비클러스터형 해시 인덱스

type_desc

nvarchar(60)

인덱스 유형의 설명입니다.

HEAP

CLUSTERED

NONCLUSTERED

XML

SPATIAL

CLUSTERED COLUMNSTORE

적용 대상: SQL Server 2014 - SQL Server 2014.

NONCLUSTERED COLUMNSTORE

적용 대상: SQL Server 2012 - SQL Server 2014.

NONCLUSTERED HASH

NONCLUSTERED HASH 인덱스는 메모리 액세스에 최적화된 테이블에서만 지원됩니다. sys.hash_indexes 뷰는 현재 해시 인덱스 및 해시 속성을 보여 줍니다. 자세한 내용은 sys.hash_indexes(Transact-SQL)를 참조하십시오.

적용 대상: SQL Server 2014 - SQL Server 2014.

is_unique

bit

1 = 인덱스가 고유합니다.

0 = 인덱스가 고유하지 않습니다.

클러스터형 columnstore 인덱스의 경우 항상 0입니다.

data_space_id

int

이 인덱스에 대한 데이터 공간의 ID입니다. 데이터 공간은 파일 그룹 또는 파티션 구성표입니다.

0 = object_id는 테이블 반환 함수 또는 메모리 내 인덱스입니다.

ignore_dup_key

bit

1 = IGNORE_DUP_KEY가 ON입니다.

0 = IGNORE_DUP_KEY가 OFF입니다.

is_primary_key

bit

1 = 인덱스가 PRIMARY KEY 제약 조건의 일부입니다.

클러스터형 columnstore 인덱스의 경우 항상 0입니다.

is_unique_constraint

bit

1 = 인덱스가 UNIQUE 제약 조건의 일부입니다.

클러스터형 columnstore 인덱스의 경우 항상 0입니다.

fill_factor

tinyint

> 0 = 인덱스가 생성 또는 다시 생성될 때 사용된 FILLFACTOR 백분율입니다.

0 = 기본값

클러스터형 columnstore 인덱스의 경우 항상 0입니다.

is_padded

bit

1 = PADINDEX가 ON입니다.

0 = PADINDEX가 OFF입니다.

클러스터형 columnstore 인덱스의 경우 항상 0입니다.

is_disabled

bit

1 = 인덱스가 비활성화되었습니다.

0 = 인덱스가 비활성화되지 않았습니다.

is_hypothetical

bit

1 = 인덱스가 가상 인덱스이며 데이터 액세스 경로로 직접 사용할 수 없습니다. 가상 인덱스는 열 수준 통계를 보유합니다.

0 = 인덱스가 가상 인덱스입니다.

allow_row_locks

bit

1 = 인덱스에서 행 잠금을 허용합니다.

0 = 인덱스에서 행 잠금을 허용하지 않습니다.

클러스터형 columnstore 인덱스의 경우 항상 0입니다.

allow_page_locks

bit

1 = 인덱스에서 페이지 잠금을 허용합니다.

0 = 인덱스에서 페이지 잠금을 허용하지 않습니다.

클러스터형 columnstore 인덱스의 경우 항상 0입니다.

has_filter

bit

1 = 인덱스에 필터가 있고 포함된 모든 행이 필터 정의를 만족합니다.

0 = 인덱스에 필터가 없습니다.

filter_definition

nvarchar(max)

필터링된 인덱스에 포함된 행 하위 집합에 대한 식입니다.

힙 또는 필터링되지 않은 인덱스의 경우 NULL입니다.

사용 권한

사용자가 소유하고 있거나 사용 권한을 부여 받은 보안 개체에 대해서만 카탈로그 뷰의 메타데이터를 볼 수 있습니다. 자세한 내용은 메타데이터 표시 유형 구성을 참조하십시오.

다음 예에서는 AdventureWorks2012 데이터베이스에서 Production.Product 테이블에 대한 모든 인덱스를 반환합니다.

SELECT i.name AS index_name
    ,i.type_desc
    ,is_unique
    ,ds.type_desc AS filegroup_or_partition_scheme
    ,ds.name AS filegroup_or_partition_scheme_name
    ,ignore_dup_key
    ,is_primary_key
    ,is_unique_constraint
    ,fill_factor
    ,is_padded
    ,is_disabled
    ,allow_row_locks
    ,allow_page_locks
FROM sys.indexes AS i
INNER JOIN sys.data_spaces AS ds ON i.data_space_id = ds.data_space_id
WHERE is_hypothetical = 0 AND i.index_id <> 0 
AND i.object_id = OBJECT_ID('Production.Product');
GO

참고 항목

참조

개체 카탈로그 뷰(Transact-SQL)

카탈로그 뷰(Transact-SQL)

sys.index_columns(Transact SQL)

sys.xml_indexes(Transact-SQL)

sys.objects(Transact-SQL)

sys.key_constraints(Transact-SQL)

sys.filegroups(Transact-SQL)

sys.partition_schemes(Transact-SQL)

개념

SQL Server 시스템 카탈로그 쿼리에 대한 질문과 대답

메모리 내 OLTP(메모리 내 최적화)