sys.indexes (Transact-SQL)sys.indexes (Transact-SQL)

適用対象: ○SQL Server (2008 以降) ○Azure SQL Database ○Azure SQL Data Warehouse ○Parallel Data Warehouse APPLIES TO: yesSQL Server (starting with 2008) yesAzure SQL Database yesAzure SQL Data Warehouse yesParallel Data Warehouse

テーブル、ビュー、テーブル値関数など、テーブル オブジェクトのインデックスまたはヒープごとに 1 行のデータを格納します。Contains a row per index or heap of a tabular object, such as a table, view, or table-valued function.

列名Column name データ型Data type 説明Description
object_idobject_id intint インデックスが属しているオブジェクトの ID。ID of the object to which this index belongs.
namename sysnamesysname インデックスの名前です。Name of the index. 名前オブジェクト内でのみ一意です。name is unique only within the object.

NULL = ヒープNULL = Heap
index_idindex_id intint インデックスの ID。ID of the index. index_idオブジェクト内でのみ一意です。index_id is unique only within the object.

0 = ヒープ0 = Heap

1 = クラスター化インデックス1 = Clustered index

> 1 = 非クラスター化インデックス> 1 = Nonclustered index
typetype tinyinttinyint インデックスの種類です。Type of index:

0 = ヒープ0 = Heap

1 = クラスター化1 = Clustered

2 = 非クラスター化2 = Nonclustered

3 = XML3 = XML

4 = 空間4 = Spatial

5 = columnstore インデックスをクラスター化します。5 = Clustered columnstore index. 適用対象: SQL Server 2014 (12.x)SQL Server 2014 (12.x) から SQL Server 2017SQL Server 2017Applies to: SQL Server 2014 (12.x)SQL Server 2014 (12.x) through SQL Server 2017SQL Server 2017.

6 = columnstore の非クラスター化インデックスです。6 = Nonclustered columnstore index. 適用対象: SQL Server 2012 (11.x)SQL Server 2012 (11.x) から SQL Server 2017SQL Server 2017Applies to: SQL Server 2012 (11.x)SQL Server 2012 (11.x) through SQL Server 2017SQL Server 2017.

7 = ハッシュの非クラスター化インデックスです。7 = Nonclustered hash index. 適用対象: SQL Server 2014 (12.x)SQL Server 2014 (12.x) から SQL Server 2017SQL Server 2017Applies to: SQL Server 2014 (12.x)SQL Server 2014 (12.x) through SQL Server 2017SQL Server 2017.
type_desctype_desc nvarchar(60)nvarchar(60) インデックスの種類の説明。Description of index type:

HEAPHEAP

CLUSTEREDCLUSTERED

NONCLUSTEREDNONCLUSTERED

XMLXML

SPATIALSPATIAL

クラスター化された COLUMNSTORE ・に適用される: SQL Server 2014 (12.x)SQL Server 2014 (12.x)SQL Server 2017SQL Server 2017CLUSTERED COLUMNSTORE - Applies to: SQL Server 2014 (12.x)SQL Server 2014 (12.x) through SQL Server 2017SQL Server 2017.

非クラスター化の COLUMNSTORE -に適用される: SQL Server 2012 (11.x)SQL Server 2012 (11.x)SQL Server 2017SQL Server 2017NONCLUSTERED COLUMNSTORE - Applies to: SQL Server 2012 (11.x)SQL Server 2012 (11.x) through SQL Server 2017SQL Server 2017.

クラスター化されていないハッシュ: ハッシュの非クラスター化インデックスは、メモリ用に最適化されたテーブルでのみサポートされています。NONCLUSTERED HASH : NONCLUSTERED HASH indexes are supported only on memory-optimized tables. sys.hash_indexes ビューでは、現在のハッシュ インデックスとハッシュ プロパティが表示されます。The sys.hash_indexes view shows the current hash indexes and the hash properties. 詳細については、次を参照してください。 sys.hash_indexes (TRANSACT-SQL)します。For more information, see sys.hash_indexes (Transact-SQL). 適用対象: SQL Server 2014 (12.x)SQL Server 2014 (12.x) から SQL Server 2017SQL Server 2017Applies to: SQL Server 2014 (12.x)SQL Server 2014 (12.x) through SQL Server 2017SQL Server 2017.
is_uniqueis_unique bitbit 1 = インデックスは一意です。1 = Index is unique.

0 = インデックスは一意ではありません。0 = Index is not unique.

クラスター化列ストア インデックスの場合、常に 0 です。Always 0 for clustered columnstore indexes.
data_space_iddata_space_id intint インデックスのデータ領域の ID。ID of the data space for this index. データ領域は、ファイル グループまたはパーティション構成です。Data space is either a filegroup or partition scheme.

0 = object_idはテーブル値関数またはメモリ内インデックスです。0 = object_id is a table-valued function or in-memory index.
ignore_dup_keyignore_dup_key bitbit 1 = IGNORE_DUP_KEY はオンです。1 = IGNORE_DUP_KEY is ON.

0 = IGNORE_DUP_KEY はオフです。0 = IGNORE_DUP_KEY is OFF.
is_primary_keyis_primary_key bitbit 1 = インデックスは PRIMARY KEY 制約の一部です。1 = Index is part of a PRIMARY KEY constraint.

クラスター化列ストア インデックスの場合、常に 0 です。Always 0 for clustered columnstore indexes.
is_unique_constraintis_unique_constraint bitbit 1 = インデックスは UNIQUE 制約の一部です。1 = Index is part of a UNIQUE constraint.

クラスター化列ストア インデックスの場合、常に 0 です。Always 0 for clustered columnstore indexes.
fill_factorfill_factor tinyinttinyint > 0 = インデックスが作成または再構築された場合に使用される FILLFACTOR のパーセンテージです。> 0 = FILLFACTOR percentage used when the index was created or rebuilt.

0 = 既定値0 = Default value

クラスター化列ストア インデックスの場合、常に 0 です。Always 0 for clustered columnstore indexes.
is_paddedis_padded bitbit 1 = PADINDEX がオンです。1 = PADINDEX is ON.

0 = PADINDEX がオフです。0 = PADINDEX is OFF.

クラスター化列ストア インデックスの場合、常に 0 です。Always 0 for clustered columnstore indexes.
is_disabledis_disabled bitbit 1 = インデックスは無効です。1 = Index is disabled.

0 = インデックスは無効ではありません。0 = Index is not disabled.
is_hypotheticalis_hypothetical bitbit 1 = インデックスは仮想的であり、データへのアクセス パスとして直接使用することはできません。1 = Index is hypothetical and cannot be used directly as a data access path. 仮想インデックスは、列レベルの統計を保持しています。Hypothetical indexes hold column-level statistics.

0 = インデックスは仮想的ではありません。0 = Index is not hypothetical.
allow_row_locksallow_row_locks bitbit 1 = インデックスは行ロックを許可します。1 = Index allows row locks.

0 = インデックスは行ロックを許可しません。0 = Index does not allow row locks.

クラスター化列ストア インデックスの場合、常に 0 です。Always 0 for clustered columnstore indexes.
allow_page_locksallow_page_locks bitbit 1 = インデックスはページ ロックを許可します。1 = Index allows page locks.

0 = インデックスはページ ロックを許可しません。0 = Index does not allow page locks.

クラスター化列ストア インデックスの場合、常に 0 です。Always 0 for clustered columnstore indexes.
has_filterhas_filter bitbit 1 = インデックスにフィルターがあり、フィルター定義を満たす行だけが含まれます。1 = Index has a filter and only contains rows that satisfy the filter definition.

0 = インデックスにフィルターはありません。0 = Index does not have a filter.
filter_definitionfilter_definition nvarchar(max)nvarchar(max) フィルター選択されたインデックスに含まれる行のサブセットの式。Expression for the subset of rows included in the filtered index.

ヒープまたはフィルター選択されたインデックス以外のインデックスの場合は、NULL です。NULL for heap or non-filtered index.
auto_createdauto_created bitbit 1 = 自動チューニングによってインデックスが作成されました。1 = Index was created by the automatic tuning.

0 = ユーザーによってインデックスが作成されました。0 = Index was created by the user.

アクセス許可Permissions

カタログ ビューでのメタデータの表示が、ユーザーが所有しているかそのユーザーが権限を許可されている、セキュリティ保護可能なメタデータに制限されます。The visibility of the metadata in catalog views is limited to securables that a user either owns or on which the user has been granted some permission. 詳細については、「 Metadata Visibility Configuration」を参照してください。 For more information, see Metadata Visibility Configuration.

使用例Examples

テーブルのすべての iindexes を返す例を次Production.Productで、 AdventureWorks2012AdventureWorks2012データベースです。The following example returns all iindexes for the table Production.Product in the AdventureWorks2012AdventureWorks2012 database.


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  

参照See Also

オブジェクト カタログ ビュー (Transact-SQL) Object Catalog Views (Transact-SQL)
カタログ ビュー (Transact-SQL) Catalog Views (Transact-SQL)
sys.index_columns (Transact-SQL) sys.index_columns (Transact-SQL)
sys.xml_indexes (Transact-SQL) sys.xml_indexes (Transact-SQL)
sys.objects (Transact-SQL) sys.objects (Transact-SQL)
sys.key_constraints (TRANSACT-SQL) sys.key_constraints (Transact-SQL)
sys.filegroups (Transact-SQL) sys.filegroups (Transact-SQL)
sys.partition_schemes (Transact-SQL) sys.partition_schemes (Transact-SQL)
SQL Server のシステム カタログよく寄せられる質問のクエリを実行します。 Querying the SQL Server System Catalog FAQ
インメモリ OLTP (インメモリ最適化)In-Memory OLTP (In-Memory Optimization)