Table of Contents

Class CompatibilitySchema.Index

Namespace
LinqToDB.Tools.DataProvider.SqlServer.Schemas
Assembly
linq2db.Tools.dll

sys.sysindexes (Transact-SQL)

Applies to: √ SQL Server (all supported versions)

Contains one row for each index and table in the current database. XML indexes are not supported in this view. Partitioned tables and indexes are not fully supported in this view; use the sys.indexes catalog view instead.

important


This SQL Server 2000 system table is included as a view for backward compatibility. We recommend that you use the current SQL Server system views instead. To find the equivalent system view or views, see Mapping System Tables to System Views (Transact-SQL). This feature will be removed in a future version of Microsoft SQL Server. Avoid using this feature in new development work, and plan to modify applications that currently use this feature.


See sys.sysindexes.

[Table(Schema = "sys", Name = "sysindexes", IsView = true)]
public class CompatibilitySchema.Index
Inheritance
CompatibilitySchema.Index
Extension Methods

Properties

DPages

For indid = 0 or indid = 1, dpages is the count of data pages used.

For indid > 1, dpages is the count of index pages used.

0 = Index is partitioned when indid > 1.

0 = Table is partitioned when indid is 0 or 1.

Does not yield accurate results if row-overflow occurs.

[Column("dpages")]
[Nullable]
public int? DPages { get; set; }

Property Value

int?

First

Pointer to the first or root page.

Unused when indid = 0.

NULL = Index is partitioned when indid > 1.

NULL = Table is partitioned when indid is 0 or 1.

[Column("first")]
[Nullable]
public byte[]? First { get; set; }

Property Value

byte[]

FirstIAM

NULL = Index is partitioned.

Identified for informational purposes only. Not supported. Future compatibility is not guaranteed.

[Column]
[Nullable]
public byte[]? FirstIAM { get; set; }

Property Value

byte[]

GroupID

Filegroup ID on which the object was created.

NULL = Index is partitioned when indid > 1.

NULL = Table is partitioned when indid is 0 or 1.

[Column("groupid")]
[Nullable]
public short? GroupID { get; set; }

Property Value

short?

ID

ID of the table to which the index belongs.

[Column("id")]
[NotNull]
public int ID { get; set; }

Property Value

int

ImpID

Index implementation flag.

Returns 0.

Identified for informational purposes only. Not supported. Future compatibility is not guaranteed.

[Column("impid")]
[Nullable]
public short? ImpID { get; set; }

Property Value

short?

IndexID

ID of the index:

0 = Heap

1 = Clustered index

>1 = Nonclustered index

[Column("indid")]
[Nullable]
public short? IndexID { get; set; }

Property Value

short?

KeyCnt

Number of keys.

[Column("keycnt")]
[Nullable]
public short? KeyCnt { get; set; }

Property Value

short?

Keys

List of the column IDs of the columns that make up the index key.

Returns NULL.

To display the index key columns, use sys.sysindexkeys.

[Column("keys")]
[Nullable]
public byte[]? Keys { get; set; }

Property Value

byte[]

Lockflags

Used to constrain the considered lock granularities for an index. For example, to minimize locking cost, a lookup table that is essentially read-only could be set up to do only table-level locking.

[Column("lockflags")]
[Nullable]
public short? Lockflags { get; set; }

Property Value

short?

MaxLen

Identified for informational purposes only. Not supported. Future compatibility is not guaranteed.

[Column("maxlen")]
[Nullable]
public int? MaxLen { get; set; }

Property Value

int?

MaxiRow

Maximum size of a nonleaf index row.

In SQL Server 2005 (9.x) and later, maxirow is not fully compatible with earlier versions.

[Column("maxirow")]
[Nullable]
public short? MaxiRow { get; set; }

Property Value

short?

MinLen

Minimum size of a row.

[Column("minlen")]
[Nullable]
public short? MinLen { get; set; }

Property Value

short?

Name

Name of the index or statistic. Returns NULL when indid = 0. Modify your application to look for a NULL heap name.

[Column("name")]
[Nullable]
public string? Name { get; set; }

Property Value

string

OrigFillFactor

Original fill factor value used when the index was created. This value is not maintained; however, it can be helpful if you have to re-create an index and do not remember the fill factor value that was used.

[Column]
[Nullable]
public byte? OrigFillFactor { get; set; }

Property Value

byte?

PgModCtr

Returns 0.

Identified for informational purposes only. Not supported. Future compatibility is not guaranteed.

[Column("pgmodctr")]
[Nullable]
public int? PgModCtr { get; set; }

Property Value

int?

Reserved

For indid = 0 or indid = 1, reserved is the count of pages allocated for all indexes and table data.

For indid > 1, reserved is the count of pages allocated for the index.

0 = Index is partitioned when indid > 1.

0 = Table is partitioned when indid is 0 or 1.

Does not yield accurate results if row-overflow occurs.

[Column("reserved")]
[Nullable]
public int? Reserved { get; set; }

Property Value

int?

Reserved2

Returns 0.

Identified for informational purposes only. Not supported. Future compatibility is not guaranteed.

[Column("reserved2")]
[Nullable]
public int? Reserved2 { get; set; }

Property Value

int?

Reserved3

Returns 0.

Identified for informational purposes only. Not supported. Future compatibility is not guaranteed.

[Column("reserved3")]
[Nullable]
public int? Reserved3 { get; set; }

Property Value

int?

Reserved4

Returns 0.

Identified for informational purposes only. Not supported. Future compatibility is not guaranteed.

[Column("reserved4")]
[Nullable]
public int? Reserved4 { get; set; }

Property Value

int?

Root

For indid >= 1, root is the pointer to the root page.

Unused when indid = 0.

NULL = Index is partitioned when indid > 1.

NULL = Table is partitioned when indid is 0 or 1.

[Column("root")]
[Nullable]
public byte[]? Root { get; set; }

Property Value

byte[]

RowCnt

Data-level row count based on indid = 0 and indid = 1.

0 = Index is partitioned when indid > 1.

0 = Table is partitioned when indid is 0 or 1.

[Column("rowcnt")]
[Nullable]
public long? RowCnt { get; set; }

Property Value

long?

RowModCtr

Counts the total number of inserted, deleted, or updated rows since the last time statistics were updated for the table.

0 = Index is partitioned when indid > 1.

0 = Table is partitioned when indid is 0 or 1.

In SQL Server 2005 (9.x) and later, rowmodctr is not fully compatible with earlier versions. For more information, see Remarks.

[Column("rowmodctr")]
[Nullable]
public int? RowModCtr { get; set; }

Property Value

int?

Rows

Data-level row count based on indid = 0 and indid = 1, and the value is repeated for indid >1.

[Column("rows")]
[Nullable]
public int? Rows { get; set; }

Property Value

int?

StatBlob

Statistics binary large object (BLOB).

Returns NULL.

[Column("statblob")]
[Nullable]
public byte[]? StatBlob { get; set; }

Property Value

byte[]

StatVersion

Returns 0.

Identified for informational purposes only. Not supported. Future compatibility is not guaranteed.

[Column]
[Nullable]
public byte? StatVersion { get; set; }

Property Value

byte?

Status

System-status information.

Identified for informational purposes only. Not supported. Future compatibility is not guaranteed.

[Column("status")]
[Nullable]
public int? Status { get; set; }

Property Value

int?

Used

For indid = 0 or indid = 1, used is the count of the total pages used for all index and table data.

For indid > 1, used is the count of pages used for the index.

0 = Index is partitioned when indid > 1.

0 = Table is partitioned when indid is 0 or 1.

Does not yield accurate results if row-overflow occurs.

[Column("used")]
[Nullable]
public int? Used { get; set; }

Property Value

int?

XMaxLen

Maximum size of a row

[Column("xmaxlen")]
[Nullable]
public short? XMaxLen { get; set; }

Property Value

short?