sys.sysindexes (Transact-SQL)

Se aplica a:SQL Server

Contiene una fila por cada índice y tabla de la base de datos actual. Los índices XML no se admiten en esta vista. Las tablas e índices con particiones no se admiten completamente en esta vista; use la vista de catálogo sys.indexes en su lugar.

Importante

Esta tabla del sistema de SQL Server 2000 se incluye como vista para la compatibilidad con versiones anteriores. En su lugar, se recomienda el uso de las vistas del sistema de SQL Server actual. Para buscar la vista o vistas del sistema equivalentes, consulte Asignación de tablas del sistema a vistas del sistema (Transact-SQL). Esta característica se quitará en una versión futura de Microsoft SQL Server. Evite utilizar esta característica en nuevos trabajos de desarrollo y tenga previsto modificar las aplicaciones que actualmente la utilizan.

Nombre de la columna Tipo de datos Descripción
id int Id. de la tabla a la que pertenece el índice.
status int Información de estado del sistema.

Solamente se identifica con fines informativos. No se admite. La compatibilidad con versiones posteriores no está garantizada.
first binary(6) Puntero a la primera página o página raíz.

Sin usar cuando se indid = 0.

NULL = El índice se particiona cuando se indid> 1.

NULL = La tabla tiene particiones cuando la indid es 0 o 1.
indid smallint Id. del índice:

0 = Montón

1 = Índice clúster

>1 = Índice no agrupado
root binary(6) Para indid>= 1, root es el puntero a la página raíz.

Sin usar cuando se indid = 0.

NULL = El índice se particiona cuando se indid> 1.

NULL = La tabla tiene particiones cuando la indid es 0 o 1.
minlen smallint Tamaño mínimo de una fila.
keycnt smallint Número de claves.
groupid smallint Id. del grupo de archivos en el que se creó el objeto.

NULL = El índice se particiona cuando se indid> 1.

NULL = La tabla tiene particiones cuando la indid es 0 o 1.
dpages int Para indid = 0 o indid = 1, dpages es el recuento de páginas de datos usadas.

Para indid> 1, dpages es el recuento de páginas de índice usadas.

0 = El índice se particiona cuando se> suma 1.

0 = La tabla tiene particiones cuando la indid es 0 o 1.

No producen resultados precisos en caso de desbordamiento de fila.
reserved int Para indid = 0 o indid = 1, reserved es el recuento de páginas asignadas para todos los índices y datos de tabla.

Para indid> 1, reserved es el recuento de páginas asignadas para el índice.

0 = El índice se particiona cuando se> suma 1.

0 = La tabla tiene particiones cuando la indid es 0 o 1.

No producen resultados precisos en caso de desbordamiento de fila.
usados int Para indid = 0 o indid = 1, se usa el recuento de las páginas totales usadas para todos los datos de índice y tabla.

Para indid> 1, se usa el recuento de páginas usadas para el índice.

0 = El índice se particiona cuando se> suma 1.

0 = La tabla tiene particiones cuando la indid es 0 o 1.

No producen resultados precisos en caso de desbordamiento de fila.
rowcnt bigint Recuento de filas de nivel de datos basado en indid = 0 e indid = 1.

0 = El índice se particiona cuando se> suma 1.

0 = La tabla tiene particiones cuando la indid es 0 o 1.
rowmodctr int Cuenta el número total de filas insertadas, eliminadas o actualizadas desde la última vez que se actualizaron las estadísticas de la tabla.

0 = El índice se particiona cuando se> suma 1.

0 = La tabla tiene particiones cuando la indid es 0 o 1.

En SQL Server 2005 (9.x) y versiones posteriores, rowmodctr no es totalmente compatible con versiones anteriores. Para obtener más información, vea la sección Comentarios.
reserved3 int Devuelve 0.

Solamente se identifica con fines informativos. No se admite. La compatibilidad con versiones posteriores no está garantizada.
reserved4 int Devuelve 0.

Solamente se identifica con fines informativos. No se admite. La compatibilidad con versiones posteriores no está garantizada.
xmaxlen smallint Tamaño máximo de una fila
maxirow smallint Tamaño máximo de una fila de índice no hoja.

En SQL Server 2005 (9.x) y versiones posteriores, maxirow no es totalmente compatible con versiones anteriores.
OrigFillFactor tinyint Valor de factor de relleno original empleado cuando se creó el índice. Este valor no se mantiene, aunque puede ser útil si necesita volver a crear un índice y no recuerda el valor del factor de relleno que se utilizó originalmente.
StatVersion tinyint Devuelve 0.

Solamente se identifica con fines informativos. No se admite. La compatibilidad con versiones posteriores no está garantizada.
reserved2 int Devuelve 0.

Solamente se identifica con fines informativos. No se admite. La compatibilidad con versiones posteriores no está garantizada.
FirstIAM binary(6) NULL = Índice con particiones.

Solamente se identifica con fines informativos. No se admite. La compatibilidad con versiones posteriores no está garantizada.
impid smallint Marca de implementación de índice.

Devuelve 0.

Solamente se identifica con fines informativos. No se admite. La compatibilidad con versiones posteriores no está garantizada.
lockflags smallint Se utiliza para restringir las granularidades de bloqueo que se tienen en cuenta para un índice. Por ejemplo, una tabla de búsqueda que es esencialmente de solo lectura se puede configurar de modo que solo imponga bloqueos en la tabla para minimizar el costo de bloqueo.
pgmodctr int Devuelve 0.

Solamente se identifica con fines informativos. No se admite. La compatibilidad con versiones posteriores no está garantizada.
keys varbinary(816) Lista de los Id. de columna para las columnas que forman la clave de índice.

Devuelve NULL.

Para mostrar las columnas de clave de índice, use sys.sysindexkeys.
name sysname Nombre del índice o estadística. Devuelve NULL cuando se indid = 0. Modifique la aplicación para que busque un nombre de montón NULL.
statblob image Objeto binario grande de estadística (BLOB).

Devuelve NULL.
maxlen int Solamente se identifica con fines informativos. No se admite. La compatibilidad con versiones posteriores no está garantizada.
rows int Recuento de filas de nivel de datos basado en indid = 0 e indid = 1, y el valor se repite para indid>1.

Comentarios

Las columnas definidas como reservadas no deben utilizarse.

Las columnas dpages, reservadas y usadas no devolverán resultados precisos si la tabla o el índice contiene datos en la unidad de asignación de ROW_OVERFLOW. Además, se realiza el seguimiento para el total de páginas de cada índice por separado y no se agregan para la tabla base. Para ver los recuentos de páginas, use las vistas de catálogo sys.allocation_units o sys.partitions o la vista de administración dinámica sys.dm_db_partition_stats .

En SQL Server 2000 y versiones anteriores, el motor de base de datos mantuvo los contadores de modificación de nivel de fila. Este tipo de contadores se mantienen ahora en el nivel de columna. Por lo tanto, la columna rowmodctr se calcula y genera resultados similares a los resultados en versiones anteriores, pero no son exactos.

Si usa el valor de rowmodctr para determinar cuándo actualizar las estadísticas, tenga en cuenta las siguientes soluciones:

  • No haga nada. El nuevo valor rowmodctr le ayudará con frecuencia a determinar cuándo actualizar las estadísticas porque el comportamiento está razonablemente cerca de los resultados de versiones anteriores.

  • Utilice AUTO_UPDATE_STATISTICS. Para obtener más información, consulte Estadísticas.

  • Utilice un límite de tiempo para determinar cuándo debe actualizar las estadísticas. Por ejemplo, cada hora, cada día o cada semana.

  • Utilice la información de nivel de aplicación para determinar cuándo debe actualizar las estadísticas. Por ejemplo, cada vez que el valor máximo de una columna de identidad cambia en más de 10 000, o cada vez que se realiza una operación de inserción masiva.

Consulte también

Vistas de catálogo (Transact-SQL)
Asignar tablas del sistema a vistas del sistema (Transact-SQL)
sys.indexes (Transact-SQL)