次の方法で共有


INDEXPROPERTY(Transact-SQL)

対象者:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analyticsアナリティクスプラットフォームシステム(PDW)Microsoft FabricにおけるSQLデータベース

指定されたテーブル ID 番号、インデックス名または統計名、およびプロパティ名の指定されたインデックスまたは統計プロパティ値を返します。 XML インデックスの NULL を返します。

Transact-SQL 構文表記規則

構文

INDEXPROPERTY ( object_ID , index_or_statistics_name , property )

引数

object_ID

インデックス プロパティ情報を提供するテーブルまたはインデックス付きビューのオブジェクト識別番号を含む式。 object_IDint です。

index_or_statistics_name

プロパティ情報を返すインデックスまたは統計の名前を含む式。 index_or_statistics_namenvarchar(128) です

property

返すインデックスまたは統計プロパティの名前を含む式。 property のデータ型は varchar(128) で、次のいずれかの値を指定できます。

Note

特に明記されていない限り、NULLが有効なプロパティ名でない場合、object_IDが有効なオブジェクト ID でない場合、object_IDが指定されたプロパティに対してサポートされていないオブジェクトの種類であるか、呼び出し元にオブジェクトのメタデータを表示する権限がない場合に、が返されます。

プロパティ 説明
IndexDepth インデックスの深さです。 インデックス レベルの数です。

NULL = XML インデックスまたは入力が無効です。
IndexFillFactor インデックスが作成されたとき、または最後に再構築されたときに使用された FILL FACTOR 値です。 FILL FACTOR
IndexID 指定のテーブルまたはインデックス付きビュー上のインデックスの ID です。 インデックス ID
IsAutoStatistics 統計は、AUTO_CREATE_STATISTICSALTER DATABASE オプションによって生成されました。 1 = 真
0 = False または XML インデックス。
IsClustered インデックスはクラスター化されています。 1 = 真
0 = False または XML インデックス。
IsDisabled インデックスは無効です。 1 = 真
0 = 誤り
NULL = 入力が無効です。
IsFulltextKey インデックスは、テーブルのフルテキストおよびセマンティック インデックス作成のキーです。 1 = 真
0 = False または XML インデックス。
NULL = 入力が無効です。
IsHypothetical インデックスは架空のものであり、データ アクセス パスとして直接使用することはできません。 仮想インデックスは、列レベルの統計を保持し、データベース エンジン チューニング アドバイザーによって管理および使用されます。 1 = 真
0 = False または XML インデックス
NULL = 入力が無効です。
IsPadIndex インデックスは各内部ノード上で空けておく領域を指定します。 1 = 真
0 = False または XML インデックス。
IsPageLockDisallowed ALLOW_PAGE_LOCKSALTER INDEX オプションによって設定されるページ ロック値。 1 = ページロックは許可されていません。
0 = ページ ロックが許可されます。
NULL = 入力が無効です。
IsRowLockDisallowed ALLOW_ROW_LOCKSALTER INDEX オプションによって設定された行ロック値。 1 = 行のロックは許可されていません。
0 = 行のロックが許可されます。
NULL = 入力が無効です。
IsStatistics index_or_statistics_nameは、CREATE STATISTICS ステートメントまたは AUTO_CREATE_STATISTICSALTER DATABASE オプションによって作成される統計です。 1 = 真
0 = False または XML インデックス。
IsUnique インデックスは一意です。 1 = 真
0 = False または XML インデックス。
IsColumnstore インデックスは、メモリ最適化列ストア インデックスです。 1 = 真
0 = 誤り

適用対象: SQL Server 2012 (11.x) 以降のバージョン。
IsOptimizedForSequentialKey インデックスには、最終ページ挿入が有効になっている場合の最適化があります。 1 = 真
0 = 誤り

適用対象: SQL Server 2019 (15.x) 以降のバージョン。

戻り値の型

int

例外

エラーが発生した場合、または呼び出し元にオブジェクトを表示する権限がない場合に NULL を返します。

ユーザーは、ユーザーが所有しているか、ユーザーにアクセス許可が付与されているセキュリティ保護可能なリソースのメタデータのみを表示できます。 つまり、ユーザーがオブジェクトに対するアクセス許可を持っていない場合、 INDEXPROPERTY などのメタデータ出力の組み込み関数は NULL を返す可能性があります。 詳細については、「 メタデータの可視性の構成」を参照してください。

この記事のコード サンプルでは、AdventureWorks2025 または AdventureWorksDW2025 サンプル データベースを使用します。このサンプル データベースは、Microsoft SQL Server サンプルとコミュニティ プロジェクト ホーム ページからダウンロードできます。

A。 Employee テーブルのインデックスのプロパティを返す

以下の例は、AdventureWorks2025データベースのEmployeeテーブルのPK_Employee_BusinessEntityIDインデックスのプロパティのIsClusteredIndexDepthIndexFillFactorプロパティの値を返します。

SELECT
    INDEXPROPERTY(OBJECT_ID('HumanResources.Employee'), 'PK_Employee_BusinessEntityID', 'IsClustered') AS [Is Clustered],
    INDEXPROPERTY(OBJECT_ID('HumanResources.Employee'), 'PK_Employee_BusinessEntityID', 'IndexDepth') AS [Index Depth],
    INDEXPROPERTY(OBJECT_ID('HumanResources.Employee'), 'PK_Employee_BusinessEntityID', 'IndexFillFactor') AS [Fill Factor];

結果セットは次のとおりです。

Is Clustered Index Depth Fill Factor
------------ ----------- -----------
1            2           0

例: Azure Synapse Analytics、Analytics Platform System (PDW)

B: FactResellerSales テーブルのインデックスのプロパティを返します

次の例では、FactResellerSales テーブルのインデックスの 1 つのプロパティを調べます。

SELECT
    INDEXPROPERTY(OBJECT_ID('dbo.FactResellerSales'), 'ClusteredIndex_6d10fa223e5e4c1fbba087e29e16a7a2','IsClustered') AS [Is Clustered],
    INDEXPROPERTY(OBJECT_ID('dbo.FactResellerSales'), 'ClusteredIndex_6d10fa223e5e4c1fbba087e29e16a7a2','IsColumnstore') AS [Is Columnstore Index],
    INDEXPROPERTY(OBJECT_ID('dbo.FactResellerSales'), 'ClusteredIndex_6d10fa223e5e4c1fbba087e29e16a7a2','IndexFillFactor') AS [Fill Factor];
GO