Export (0) Print
Expand All

Index Class

The Index object represents a SQL Server index.

Namespace:  Microsoft.SqlServer.Management.Smo
Assembly:  Microsoft.SqlServer.Smo (in Microsoft.SqlServer.Smo.dll)

[EvaluationModeAttribute(AutomatedPolicyEvaluationMode.CheckOnSchedule)]
[PhysicalFacetAttribute]
public sealed class Index : ScriptNameObjectBase, 
	ISfcSupportsDesignMode, ICreatable, IDroppable, IMarkForDrop, IAlterable, 
	IRenamable, IExtendedProperties, IScriptable

The Index type exposes the following members.

  NameDescription
Public methodIndex()Initializes a new instance of the Index class.
Public methodIndex(SqlSmoObject, String)Initializes a new instance of the Index class on the specified parent object and with the specified name.
Top

  NameDescription
Public propertyBoundingBoxXMaxSpecifies the x-coordinate of the upper right corner of a bounding box.
Public propertyBoundingBoxXMinSpecifies the x-coordinate of the lower-left corner of a bounding box.
Public propertyBoundingBoxYMaxSpecifies the y-coordinate of upper-right corner of a bounding box.
Public propertyBoundingBoxYMinSpecifies the y-coordinate of the lower-left corner of a bounding box.
Public propertyBucketCountGets or sets the value of the bucket count for a hash index.
Public propertyCellsPerObjectDefines the maximum number of cells that tessellation can count per object.
Public propertyCompactLargeObjectsGets or sets the Boolean property value that specifies whether to compact the large object (LOB) data in the index.
Public propertyDisallowPageLocksGets or sets the Boolean property value that specifies whether the index allows page locks.
Public propertyDisallowRowLocksGets or sets the Boolean property value that specifies whether the index allows row locks.
Public propertyDistributionColumnsRetrieves the collection of distribution columns used by the distribution policy on this index.
Public propertyDistributionPolicyReturns the distribution policy that is currently used to distribute the rows of the current Index across the bricks.
Public propertyEventsGets the index events supported by the Index object.
Public propertyExtendedPropertiesRepresents a collection of ExtendedProperty objects. Each ExtendedProperty object represents an extended property defined on the Index object.
Public propertyFileGroupGets or sets the filegroup where the index pages are stored.
Public propertyFileStreamFileGroupGets or Sets the file group name for the index.
Public propertyFileStreamPartitionSchemeGets or Sets the partition scheme name for the index.
Public propertyFillFactorGets or sets the percentage of an index page to fill when the index is created or re-created.
Public propertyFilterDefinitionGets or sets the String value that contains the definition for the filter.
Public propertyHasCompressedPartitionsGets or sets the Boolean property value that specifies whether the index has compressed partitions.
Public propertyHasFilterGets the Boolean property value that specifies whether the index has a filter defined for a range of index values.
Public propertyIDGets the index ID value that uniquely identifies the index within the database.
Public propertyIgnoreDuplicateKeysGets or sets the Boolean property value that specifies whether the index ignores duplicate keys.
Public propertyIndexedColumnsGets a collection of IndexedColumn objects that represent all the columns participating in the index.
Public propertyIndexedXmlPathNameGets or sets the name of the indexed XML path.
Public propertyIndexedXmlPathNamespacesGets the collection of indexed XML path namespace.
Public propertyIndexedXmlPathsGets or sets the collection of indexed XML paths.
Public propertyIndexKeyTypeGets or sets the index key type.
Public propertyIndexTypeGets or sets the type of index.
Public propertyIsClusteredGets or sets the Boolean property value that specifies whether the index is clustered.
Public propertyIsDisabledGets or sets the Boolean property value that specifies whether the index is disabled.
Public propertyIsFileTableDefinedGets or sets whether the file table is defined.
Public propertyIsFullTextKeyGets the Boolean value that specifies whether the index is enabled for row identification in Microsoft Search.
Public propertyIsIndexOnComputedGets the Boolean property value that specifies whether the index is based on a computed column.
Public propertyIsIndexOnTableGets the Boolean property value that specifies whether the index is defined for a table or a view.
Public propertyIsMemoryOptimizedGets or sets the Boolean property value that specifies whether the index is memory optimized.
Public propertyIsPartitionedGets the Boolean property value that specifies whether the index is stored in a partitioned scheme.
Public propertyIsSpatialIndexGets a value that indicates whether an index is a spatial index.
Public propertyIsSystemNamedGets the Boolean property value that specifies whether the index was named automatically by the system.
Public propertyIsSystemObjectGets the Boolean property value that specifies whether the index is a system object.
Public propertyIsUniqueGets or sets the Boolean property value that specifies whether the index is unique or not.
Public propertyIsXmlIndexGets or sets the Boolean property value that specifies whether the index is an XML index.
Public propertyLevel1GridGets or sets the first level of decomposition for a geometry data type.
Public propertyLevel2GridSpecifies the second level of decomposition for a geometry data type.
Public propertyLevel3GridSpecifies the third level of decomposition for a geometry data type.
Public propertyLevel4GridGets or sets the fourth level of decomposition for a geometry data type.
Public propertyLowPriorityAbortAfterWaitSpecifies the action that will be taken after the Low Priority expires during an online index build operation on this index.
Public propertyLowPriorityMaxDurationSpecifies the amount of time (in minutes) to wait with Low Priority for acquiring the locks required for the online index build operations on this Index.
Public propertyMaximumDegreeOfParallelismGets or sets the maximum number of processors that can be used when running a query that uses the index.
Public propertyNameGets or sets the name of the index. (Overrides NamedSmoObject.Name.)
Public propertyNoAutomaticRecomputationGets or sets the Boolean property value that specifies whether statistics are regenerated when an index is created.
Public propertyOnlineIndexOperationGets or sets the Boolean property value that specifies whether the index will be kept online during index operations thus allowing access to the data.
Public propertyPadIndexGets or sets the Boolean property value that specifies whether space is left open on each page of the intermediate levels of the index.
Public propertyParentGets or sets the SqlSmoObject object that is the parent of the Index object.
Public propertyParentXmlIndexGets or sets the parent of an XML index.
Public propertyPartitionSchemeGets or sets the partition scheme associated with the index.
Public propertyPartitionSchemeParametersRepresents a collection of PartitionSchemeParameter objects. Each PartitionSchemeParameter object represents a parameter in the partition scheme associated with the index.
Public propertyPhysicalPartitionsGets a collection of PhysicalPartition objects that represent all the physical partitions on which the index is stored.
Public propertyPropertiesGets a collection of Property objects that represent the object properties. (Inherited from SqlSmoObject.)
Public propertySecondaryXmlIndexTypeGets or sets the secondary XML index type.
Public propertySortInTempdbGets or sets the Boolean property value that specifies whether the index is sorted using the tempdb database for intermediate storage of data.
Public propertySpaceUsedGets or sets the disk space used to store the index data in kilobytes.
Public propertySpatialIndexTypeGets or sets the Spatial Index Type for a column.
Public propertyStateGets the state of the referenced object. (Inherited from SmoObjectBase.)
Public propertyUrnGets the Uniform Resource Name (URN) address value that uniquely identifies the object. (Inherited from SqlSmoObject.)
Public propertyUserDataGets or sets user-defined data associated with the referenced object. (Inherited from SmoObjectBase.)
Top

  NameDescription
Public methodAlter()Updates any Index object property changes on the instance of SQL Server.
Public methodAlter(IndexOperation)Updates any Index object property changes on the instance of SQL Server for a specified index operation.
Public methodAlterAllIndexesUpdates any Index object property changes for all indexes on the instance of SQL Server for a specified index operation.
Public methodCheckIndexTests the integrity of database pages that store the index.
Public methodCheckIndexWithResultTests the integrity of database pages that store the index.
Public methodCreateCreates an index on the instance of SQL Server as defined by the Index object.
Public methodDisableDisables the index.
Public methodDiscoverDiscovers a list of type Object. (Inherited from SqlSmoObject.)
Public methodDropDrops the index.
Public methodDropAndMove(String)Drops a clustered index and moves the underlying table data to the specified filegroup.
Public methodDropAndMove(String, StringCollection)Drops a clustered index and moves the underlying table data to the partition scheme with the specified partition scheme parameters.
Public methodEnableEnables the index.
Public methodEnumFragmentation()Enumerates a list of fragmentation information for the index using the default fast fragmentation option.
Public methodEnumFragmentation(FragmentationOption)Enumerates a list of fragmentation information for the index with the specified fragmentation option.
Public methodEnumFragmentation(FragmentationOption, Int32)Enumerates a list of fragmentation information for the index with the specified fragmentation option and partition number.
Public methodEnumStatisticsEnumerates a list of statistical information for the index.
Public methodEquals (Inherited from Object.)
Protected methodFormatSqlVariantFormats an object as SqlVariant type. (Inherited from SqlSmoObject.)
Protected methodGetContextDBGets the context database that is associated with this object. (Inherited from SqlSmoObject.)
Protected methodGetDBNameGets the database name that is associated with the object. (Inherited from SqlSmoObject.)
Public methodGetHashCode (Inherited from Object.)
Protected methodGetPropValueGets a property value of the SqlSmoObject object. (Inherited from SqlSmoObject.)
Protected methodGetPropValueOptionalGets a property value of the SqlSmoObject object. (Inherited from SqlSmoObject.)
Protected methodGetPropValueOptionalAllowNullGets a property value of the SqlSmoObject object. (Inherited from SqlSmoObject.)
Protected methodGetServerObjectGets the server of the SqlSmoObject object. (Inherited from SqlSmoObject.)
Public methodGetType (Inherited from Object.)
Public methodInitialize()Initializes the object and forces the properties be loaded. (Inherited from SqlSmoObject.)
Public methodInitialize(Boolean)Initializes the object and forces the properties be loaded. (Inherited from SqlSmoObject.)
Protected methodIsObjectInitializedVerifies whether the object has been initialized. (Inherited from SqlSmoObject.)
Protected methodIsObjectInSpaceVerifies whether the object is isolated or connected to the instance of SQL Server. (Inherited from SqlSmoObject.)
Public methodMarkForDropMarks the index to be dropped the next time that the Alter method is run on the Index object's parent object.
Public methodRebuild()Rebuilds the index.
Public methodRebuild(Int32)Rebuilds the index on the partition with the specified partition number.
Public methodRebuildAllIndexesRebuilds all the indexes.
Public methodRecalculateSpaceUsageUpdates the disk resource usage of the index.
Public methodRecreateRe-creates the index.
Public methodRefreshRefreshes the Index object and its properties. (Overrides ScriptNameObjectBase.Refresh().)
Public methodRenameRenames the index.
Public methodReorganizeReorganizes the index based on current property settings.
Public methodReorganizeAllIndexesReorganizes all the indexes based on current property settings.
Public methodScript()Generates a Transact-SQL script that can be used to re-create the index.
Public methodScript(ScriptingOptions)Generates a Transact-SQL script that can be used to re-create the index as specified by the script options.
Protected methodSetParentImplSets the parent of the SqlSmoObject to the newParent parameter. (Inherited from SqlSmoObject.)
Public methodToStringReturns a String that represents the referenced object. (Inherited from SqlSmoObject.)
Public methodUpdateStatistics()Updates statistics for the referenced index.
Public methodUpdateStatistics(StatisticsScanType)Updates statistics for the referenced index with the specified statistics scan type.
Public methodUpdateStatistics(StatisticsScanType, Int32)Updates statistics for the referenced index with the specified statistics scan type and specified sample size.
Public methodUpdateStatistics(StatisticsScanType, Int32, Boolean)Updates statistics for the referenced index with the specified statistics scan type and specified sample size and with the option to recompute the statistics.
Public methodUpgradeToClusteredColumnStoreIndexUpgrades the index to either clustered index or column store index.
Public methodValidateValidates the state of an object. (Inherited from SmoObjectBase.)
Top

  NameDescription
Public eventPropertyChangedRepresents the event that occurs when a property is changed. (Inherited from SqlSmoObject.)
Public eventPropertyMetadataChangedRepresents the event that occurs when property metadata changes. (Inherited from SqlSmoObject.)
Top

  NameDescription
Explicit interface implemetationPrivate methodIAlienObject.DiscoverDiscovers any dependencies. Do not reference this member directly in your code. It supports the SQL Server infrastructure. (Inherited from SqlSmoObject.)
Explicit interface implemetationPrivate methodIAlienObject.GetDomainRootReturns the root of the domain. (Inherited from SqlSmoObject.)
Explicit interface implemetationPrivate methodIAlienObject.GetParentGets the parent of this object. Do not reference this member directly in your code. It supports the SQL Server infrastructure. (Inherited from SqlSmoObject.)
Explicit interface implemetationPrivate methodIAlienObject.GetPropertyTypeGets the type of the specified property. (Inherited from SqlSmoObject.)
Explicit interface implemetationPrivate methodIAlienObject.GetPropertyValueGets the value of the specified property. (Inherited from SqlSmoObject.)
Explicit interface implemetationPrivate methodIAlienObject.GetUrnGets the Unified Resource Name (URN) of the object. Do not reference this member directly in your code. It supports the SQL Server infrastructure. (Inherited from SqlSmoObject.)
Explicit interface implemetationPrivate methodIAlienObject.ResolveGets the instance that contains the information about the object from the Unified Resource Name (URN) of the object. (Inherited from SqlSmoObject.)
Explicit interface implemetationPrivate methodIAlienObject.SetObjectStateSets the object state to the specified SfcObjectState value. (Inherited from SqlSmoObject.)
Explicit interface implemetationPrivate methodIAlienObject.SetPropertyValueSets the property value. (Inherited from SqlSmoObject.)
Explicit interface implemetationPrivate methodISfcPropertyProvider.GetPropertySetGets the interface reference to the set of properties of this object. (Inherited from SqlSmoObject.)
Explicit interface implemetationPrivate propertyISfcSupportsDesignMode.IsDesignModeGets a Boolean value that indicates whether the object supports design mode.
Top

To get Index object properties, users can be a member of the public fixed server role.

To set Index object properties, create or drop an index, update statistics on an index, or rebuild, reorganize, or re-create an index, users must have one of the following:

  • ALTER permission on the parent table or view

  • Membership of the db_owner or the db_ddladmin fixed database roles

  • Membership of the sysadmin fixed server role

Thread Safety

Any public static (Shared in Microsoft Visual Basic) members of this type are safe for multithreaded operations. Any instance members are not guaranteed to be thread safe.

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.
Was this page helpful?
(1500 characters remaining)
Thank you for your feedback

Community Additions

ADD
Show:
© 2014 Microsoft