sys.sysindexes(Transact-SQL)
적용 대상: SQL Server
현재 데이터베이스 내의 각 인덱스 및 테이블마다 한 행을 포함합니다. 이 보기에서는 XML 인덱스가 지원되지 않습니다. 분할된 테이블 및 인덱스는 이 보기에서 완전히 지원되지 않습니다. 대신 sys.indexes 카탈로그 뷰를 사용합니다.
Important
이 SQL Server 2000 시스템 테이블은 이전 버전과의 호환성을 위한 보기로 포함되어 있습니다. 대신 현재 SQL Server 시스템 뷰를 사용하는 것이 좋습니다. 동등한 시스템 뷰 또는 뷰를 찾으려면 시스템 테이블을 시스템 뷰에 매핑(Transact-SQL)을 참조하세요. Microsoft SQL Server의 이후 버전에서는 이 기능이 제거됩니다. 새 개발 작업에서는 이 기능을 사용하지 않도록 하고, 현재 이 기능을 사용하는 애플리케이션은 수정하세요.
열 이름 | 데이터 형식 | Description |
---|---|---|
id | int | 인덱스가 속한 테이블의 ID입니다. |
status | int | 시스템 상태 정보입니다. 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨. 향후 호환성은 보장되지 않습니다. |
first | binary(6) | 첫 페이지 또는 루트 페이지에 대한 포인터입니다. indid = 0일 때 사용되지 않습니다. NULL = indid> 1이면 인덱스가 분할됩니다. NULL = indid가 0 또는 1이면 테이블이 분할됩니다. |
indid | smallint | 인덱스의 ID: 0 = 힙 1 = 클러스터형 인덱스 >1 = 비클러스터형 인덱스 |
root | binary(6) | indid>= 1의 경우 루트는 루트 페이지에 대한 포인터입니다. indid = 0일 때 사용되지 않습니다. NULL = indid> 1이면 인덱스가 분할됩니다. NULL = indid가 0 또는 1이면 테이블이 분할됩니다. |
minlen | smallint | 행의 최소 크기입니다. |
keycnt | smallint | 키 수입니다. |
groupid | smallint | 개체가 만들어진 파일 그룹 ID입니다. NULL = indid> 1이면 인덱스가 분할됩니다. NULL = indid가 0 또는 1이면 테이블이 분할됩니다. |
dpages | int | indid = 0 또는 indid = 1의 경우 dpages는 사용된 데이터 페이지의 수입니다. indid> 1의 경우 dpages는 사용된 인덱스 페이지 수입니다. 0 = indid> 1이면 인덱스가 분할됩니다. 0 = indid가 0 또는 1이면 테이블이 분할됩니다. 행 오버플로가 발생하는 경우 정확한 결과를 생성하지 않습니다. |
reserved | int | indid = 0 또는 indid = 1의 경우 예약은 모든 인덱스 및 테이블 데이터에 할당된 페이지 수입니다. indid> 1의 경우 예약된 페이지 수는 인덱스용으로 할당된 페이지 수입니다. 0 = indid> 1이면 인덱스가 분할됩니다. 0 = indid가 0 또는 1이면 테이블이 분할됩니다. 행 오버플로가 발생하는 경우 정확한 결과를 생성하지 않습니다. |
used | int | indid = 0 또는 indid = 1의 경우 모든 인덱스 및 테이블 데이터에 사용되는 총 페이지의 수입니다. indid> 1의 경우 인덱스용으로 사용되는 페이지 수입니다. 0 = indid> 1이면 인덱스가 분할됩니다. 0 = indid가 0 또는 1이면 테이블이 분할됩니다. 행 오버플로가 발생하는 경우 정확한 결과를 생성하지 않습니다. |
rowcnt | bigint | indid = 0 및 indid = 1을 기반으로 하는 데이터 수준 행 수입니다. 0 = indid> 1이면 인덱스가 분할됩니다. 0 = indid가 0 또는 1이면 테이블이 분할됩니다. |
rowmodctr | int | 테이블에 대해 통계를 마지막으로 업데이트한 이후에 삽입, 삭제 또는 업데이트된 행의 총 수를 셉니다. 0 = indid> 1이면 인덱스가 분할됩니다. 0 = indid가 0 또는 1이면 테이블이 분할됩니다. SQL Server 2005(9.x) 이상에서는 rowmodctr 이 이전 버전과 완전히 호환되지 않습니다. 자세한 내용은 설명 부분을 참조하세요. |
reserved3 | int | 0을 반환합니다. 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨. 향후 호환성은 보장되지 않습니다. |
reserved4 | int | 0을 반환합니다. 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨. 향후 호환성은 보장되지 않습니다. |
xmaxlen | smallint | 행의 최대 크기 |
maxirow | smallint | 리프가 아닌 인덱스 행의 최대 크기입니다. SQL Server 2005(9.x) 이상에서는 maxirow 가 이전 버전과 완전히 호환되지 않습니다. |
OrigFillFactor | tinyint | 인덱스가 생성되었을 때 사용된 원래 채우기 비율 값입니다. 이 값은 유지 관리되지 않지만 인덱스를 다시 만들어야 하거나 사용한 채우기 비율 값을 기억할 수 없는 경우에 유용합니다. |
StatVersion | tinyint | 0을 반환합니다. 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨. 향후 호환성은 보장되지 않습니다. |
reserved2 | int | 0을 반환합니다. 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨. 향후 호환성은 보장되지 않습니다. |
FirstIAM | binary(6) | NULL = 인덱스가 분할됩니다. 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨. 향후 호환성은 보장되지 않습니다. |
impid | smallint | 인덱스 구현 플래그입니다. 0을 반환합니다. 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨. 향후 호환성은 보장되지 않습니다. |
lockflags | smallint | 인덱스에 대해 고려된 잠금 세분성을 제약하는 데 사용합니다. 예를 들어 잠금 비용을 최소화하기 위해 기본적으로 읽기 전용인 조회 테이블을 테이블 수준 잠금만 수행하도록 설정할 수 있습니다. |
pgmodctr | int | 0을 반환합니다. 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨. 향후 호환성은 보장되지 않습니다. |
keys | varbinary(816) | 인덱스 키를 구성하는 열의 열 ID 목록입니다. NULL을 반환합니다. 인덱스 키 열을 표시하려면 sys.sysindexkeys를 사용합니다. |
이름 | sysname | 인덱스 또는 통계의 이름입니다. indid = 0이면 NULL을 반환합니다. NULL 힙 이름을 찾으도록 애플리케이션을 수정합니다. |
statblob | image | 통계 BLOB(Binary Large Object)입니다. NULL을 반환합니다. |
maxlen | int | 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨. 향후 호환성은 보장되지 않습니다. |
rows | int | indid = 0 및 indid = 1을 기반으로 하는 데이터 수준 행 수이며 indid>1에 대해 값이 반복됩니다. |
설명
예약된 것으로 정의된 열은 사용할 수 없습니다.
테이블 또는 인덱스에 ROW_OVERFLOW 할당 단위에 데이터가 포함된 경우 dpages, 예약 및 사용된 열은 정확한 결과를 반환하지 않습니다. 또한 각 인덱스의 페이지 수는 별도로 추적되며 기본 테이블에 대해 집계되지 않습니다. 페이지 수를 보려면 sys.allocation_units 또는 sys.partitions 카탈로그 뷰 또는 sys.dm_db_partition_stats 동적 관리 뷰를 사용합니다.
SQL Server 2000 이전 버전에서는 데이터베이스 엔진 행 수준 수정 카운터를 유지 관리했습니다. 이러한 카운터는 이제 열 수준에서 유지 관리됩니다. 따라서 rowmodctr 열은 계산되고 이전 버전의 결과와 비슷하지만 정확한 결과가 아닌 결과를 생성합니다.
rowmodctr의 값을 사용하여 통계를 업데이트할 시기를 결정하는 경우 다음 솔루션을 고려합니다.
아무 작업도 수행하지 않습니다. 동작이 이전 버전의 결과와 상당히 가깝기 때문에 새 rowmodctr 값은 통계를 업데이트할 시기를 결정하는 데 도움이 되는 경우가 많습니다.
AUTO_UPDATE_STATISTICS 사용합니다. 자세한 내용은 통계를 참조하세요.
시간 제한을 사용하여 통계를 업데이트할 시기를 결정합니다. 예를 들어 매시간, 매일 또는 매주.
애플리케이션 수준 정보를 사용하여 통계의 업데이트 시기를 결정합니다. 예를 들어 ID 열의 최대값이 10,000개 이상 변경되거나 대량 삽입 작업이 수행될 때마다 변경됩니다.
참고 항목
카탈로그 보기(Transact-SQL)
시스템 테이블을 시스템 뷰에 매핑(Transact-SQL)
sys.indexes(Transact-SQL)