sys.sysindexes (Transact-SQL)

Actualizado: 5 de diciembre de 2005

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

ms190283.note(es-es,SQL.90).gifImportante:
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 equivalentes del sistema, vea el tema sobre cómo asignar tablas del sistema de SQL Server 2000 a vistas del sistema de SQL Server 2005. 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 columna Tipo de datos Descripción

id

int

Id. de la tabla a la que pertenece el índice.

status

int

Información del estado interno del sistema.

first

binary(6)

Puntero a la primera página o página raíz.

En SQL Server 6.5 y anterior, sysindexes.first apunta siempre al inicio de un montón, al inicio del nivel hoja de un índice, o al inicio de una cadena de páginas text e image.

En SQL Server 7.0 y posterior, sysindexes.first no se utiliza cuando indid = 0.

NULL = El índice tiene particiones cuando indid > 1.

NULL = La tabla tiene particiones cuando indid es 0 ó 1.

indid

smallint

Id. del índice:

0 = Montón

1 = Índice agrupado

>1 = Índice no agrupado

root

binary(6)

Para indid >= 1, root es el puntero a la página raíz.

En SQL Server 6.5 y anterior, sysindexes.root apunta a la última página del montón cuando indid = 0.

En SQL Server 7.0 y posterior, sysindexes.root no se utiliza cuando indid = 0.

NULL = El índice tiene particiones cuando indid > 1.

NULL = La tabla tiene particiones cuando indid es 0 ó 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 tiene particiones cuando indid > 1.

NULL = La tabla tiene particiones cuando indid es 0 ó 1.

dpages

int

Para indid = 0 o indid = 1, dpages es el número de páginas de datos utilizadas.

Para indid > 1, dpages es el número de páginas de índice utilizadas.

0 = El índice tiene particiones cuando indid > 1.

0 = La tabla tiene particiones cuando 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 número de páginas asignadas a todos los datos de índice y de tabla.

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

0 = El índice tiene particiones cuando indid > 1.

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

No producen resultados precisos en caso de desbordamiento de fila.

used

int

Para indid = 0 o indid = 1, used es el número total de páginas utilizadas para todos los datos de índice y de tabla.

Para indid > 1, used es el número de páginas utilizadas para el índice.

0 = El índice tiene particiones cuando indid > 1.

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

No producen resultados precisos en caso de desbordamiento de fila.

rowcnt

bigint

Total de filas de datos basado en indid = 0 e indid = 1.

0 = El índice tiene particiones cuando indid > 1.

0 = La tabla tiene particiones cuando 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 tiene particiones cuando indid > 1.

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

En SQL Server 2005, rowmodctr no es totalmente compatible con las versiones anteriores. Para obtener más información, vea la sección Notas.

xmaxlen

smallint

Tamaño máximo de una fila

maxirow

smallint

Tamaño máximo de una fila de índice nodo.

En SQL Server 2005, maxirow no es totalmente compatible con las 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

Identificado para fines informativos solamente. No compatible. La compatibilidad con versiones posteriores no está garantizada.

Devuelve 0.

reserved2

int

Identificado para fines informativos solamente. No compatible. La compatibilidad con versiones posteriores no está garantizada.

Devuelve 0.

FirstIAM

binary(6)

Identificado para fines informativos solamente. No compatible. La compatibilidad con versiones posteriores no está garantizada.

NULL = Índice con particiones.

impid

smallint

Identificado para fines informativos solamente. No compatible. La compatibilidad con versiones posteriores no está garantizada. Indicador de implementación de índice.

Devuelve 0.

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 sólo lectura se puede configurar de modo que sólo imponga bloqueos en la tabla para minimizar el costo de bloqueo.

pgmodctr

int

Identificado para fines informativos solamente. No compatible. La compatibilidad con versiones posteriores no está garantizada.

Devuelve 0.

keys

varbinary(816)

Lista de los Id. de columna para las columnas que forman la clave de índice.

Devuelve NULL.

Para visualizar las columnas de clave de índice, utilice sys.sysindexkeys (Transact-SQL).

name

sysname

Nombre del índice o estadística. Devuelve NULL cuando 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

Identificado para fines informativos solamente. No compatible. La compatibilidad con versiones posteriores no está garantizada.

rows

int

Total de filas de datos basado en indid = 0 e indid = 1, y el valor se repite para indid >1.

Notas

Las columnas definidas como reservadas no deben utilizarse.

En versiones anteriores de SQL Server, cada tabla que tenía al menos una columna text, ntext o image también tenía una fila en sysindexes con indid = 255. En SQL Server 2005, este Id. de índice ya no existe. Cuando una tabla o un índice tiene uno o varios tipos de datos de objetos grandes (LOB), se asignará una unidad de asignación LOB_DATA por partición para administrar el almacenamiento de esos datos. Para obtener más información, vea Organización de tablas e índices.

Las columnas dpages, reserved y used no devuelven resultados precisos si la tabla o el índice contienen datos en la unidad de asignación 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 totales de página, utilice las vistas de catálogo sys.allocation_units o sys.partitions, o bien la vista de administración dinámica sys.dm_db_partition_stats.

En versiones anteriores de SQL Server, Database Engine (Motor de base de datos) mantenía contadores de modificaciones de filas. En SQL Server 2005, esos contadores se mantiene en el nivel de columna. Por lo tanto, la columna rowmodctr se calcula y produce resultados similares a los resultados de versiones anteriores, pero no son exactos.

Si se utiliza el valor en rowmodctr para determinar cuándo deben actualizarse las estadísticas, considere las siguientes soluciones:

  • No haga nada. El nuevo valor rowmodctr le ayudará con frecuencia a determinar cuándo debe actualizar las estadísticas porque el comportamiento es razonablemente parecido a los resultados de las versiones anteriores.
  • Utilice AUTO_UPDATE_STATISTICS. Para obtener más información, vea Estadísticas de índice.
  • 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 del 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 identity cambie en más de 10.000, o cada vez que se realice una operación de inserción masiva.

Vea también

Referencia

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

Ayuda e información

Obtener ayuda sobre SQL Server 2005

Historial de cambios

Versión Historial

5 de diciembre de 2005

Contenido modificado:
  • Se ha cambiado el valor devuelto de NULL a 0 para índices y tablas con particiones en las columnas dpages, reserved, used, rowcnt y rowmodctr.
  • Se han corregido los resultados devueltos en la columna FirstIAM.