INDEXPROPERTY (Transact-SQL)
適用対象: SQL Server Azure SQL データベース Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)
指定されたテーブル ID 番号、インデックス名または統計名、およびプロパティ名の指定されたインデックスまたは統計プロパティ値を返します。 XML インデックスに対して NULL を返します。
構文
INDEXPROPERTY ( object_ID , index_or_statistics_name , property )
引数
object_ID
インデックス プロパティ情報の提供元となるテーブルまたはインデックス付きビューのオブジェクト ID 番号を含む式です。 object_ID は int です。
index_or_statistics_name
返されるプロパティ情報の基となるインデックスまたは統計の名前を含む式です。 index_or_statistics_name is nvarchar(128).
property
返されるデータベース プロパティの名前を含む式です。 property のデータ型は varchar(128) で、次のいずれかの値を指定できます。
Note
property が有効なプロパティ名でない場合、object_ID が有効なオブジェクト ID でない場合、object_ID が指定したプロパティでサポートされていないオブジェクトの種類であった場合、または呼び出し側にオブジェクトのメタデータを表示する権限がない場合は、特に指定のない限り、NULL が返されます。
プロパティ | 説明 | 値 |
---|---|---|
IndexDepth | インデックスの深さです。 | インデックス レベルの数です。 NULL = XML インデックスまたは無効な入力 |
IndexFillFactor | インデックスが作成されたとき、または最後に再構築されたときに使用された FILL FACTOR 値です。 | FILL FACTOR |
IndexID | 指定のテーブルまたはインデックス付きビュー上のインデックスの ID です。 | インデックス ID |
IsAutoStatistics | ALTER DATABASE の AUTO_CREATE_STATISTICS オプションによって生成された統計です。 | 1 = True 0 = False または XML インデックス。 |
IsClustered | インデックスはクラスター化されています。 | 1 = True 0 = False または XML インデックス。 |
IsDisabled | インデックスは無効です。 | 1 = True 0 = False NULL = 入力は無効です。 |
IsFulltextKey | インデックスは、テーブルのフルテキストおよびセマンティック インデックス作成のキーです。 | 適用対象: SQL Server 2008 (10.0.x) 以降。 1 = True 0 = False または XML インデックス。 NULL = 入力は無効です。 |
IsHypothetical | インデックスは仮想的であり、データへのアクセス パスとして直接使用することはできません。 仮想インデックスは、列レベルの統計を保持し、データベース エンジン チューニング アドバイザーによって管理および使用されます。 | 1 = True 0 = False または XML インデックス NULL = 入力は無効です。 |
IsPadIndex | インデックスは各内部ノード上で空けておく領域を指定します。 | 適用対象: SQL Server 2008 (10.0.x) 以降。 1 = True 0 = False または XML インデックス。 |
IsPageLockDisallowed | ALTER INDEX の ALLOW_PAGE_LOCKS オプションによって設定されたページ ロックの値です。 | 適用対象: SQL Server 2008 (10.0.x) 以降。 1 = ページ ロックの禁止 0 = ページ ロックの許可 NULL = 入力は無効です。 |
IsRowLockDisallowed | ALTER INDEX の ALLOW_ROW_LOCKS オプションによって設定された行ロックの値です。 | 適用対象: SQL Server 2008 (10.0.x) 以降。 1 = 行ロックの禁止。 0 = 行ロックの許可 NULL = 入力は無効です。 |
IsStatistics | index_or_statistics_name は、CREATE STATISTICS ステートメントまたは ALTER DATABASE の AUTO_CREATE_STATISTICS オプションによって作成された統計です。 | 1 = True 0 = False または XML インデックス。 |
IsUnique | インデックスは一意です。 | 1 = True 0 = False または XML インデックス。 |
IsColumnstore | インデックスは xVelocity メモリ最適化列ストア インデックスです。 | 適用対象: SQL Server 2012 (11.x) 以降。 1 = True 0 = False |
IsOptimizedForSequentialKey | インデックスには、最終ページ挿入が有効になっている場合の最適化があります。 | 適用対象: SQL Server 2019 (15.x) 以降。 1 = True 0 = False |
戻り値の型
int
例外
エラーが発生した場合、または呼び出し元にオブジェクトの表示権限がない場合は、NULL が返されます。
ユーザーが所有しているか、または権限を与えられている、セキュリティ保護可能なリソースのメタデータのみを表示できます。 つまり、オブジェクトに対する権限がユーザーに与えられていない場合、メタデータを生成する組み込み関数 (INDEXPROPERTY など) が NULL を返す可能性があります。 詳細については、「 Metadata Visibility Configuration」を参照してください。
例
次の例では、AdventureWorks2022 データベースの Employee
テーブルの PK_Employee_BusinessEntityID
インデックスに関する IsClustered、IndexDepth、IndexFillFactor プロパティの値が返されます。
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
(1 row(s) affected)
例: Azure Synapse Analytics、Analytics Platform System (PDW)
次の例では、FactResellerSales
テーブルのインデックスの 1 つのプロパティを調べます。
-- Uses AdventureWorks
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
参照
CREATE INDEX (Transact-SQL)
統計
sys.indexes (Transact-SQL)
sys.index_columns (Transact-SQL)
sys.stats (Transact-SQL)
sys.stats_columns (Transact-SQL)