Compartir a través de


sp_statistics (Transact-SQL)

Se aplica a: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)

Devuelve una lista de todos los índices y estadísticas de una vista indizada o tabla especificada.

Convenciones de sintaxis de Transact-SQL

Sintaxis

sp_statistics
    [ @table_name = ] N'table_name'
    [ , [ @table_owner = ] N'table_owner' ]
    [ , [ @table_qualifier = ] N'table_qualifier' ]
    [ , [ @index_name = ] N'index_name' ]
    [ , [ @is_unique = ] 'is_unique' ]
    [ , [ @accuracy = ] 'accuracy' ]
[ ; ]

Nota:

El grupo de SQL sin servidor no admite esta sintaxis en Azure Synapse Analytics.

Argumentos

[ @table_name = ] N'table_name'

Especifica la tabla que se usa para devolver información de catálogo. @table_name es sysname, sin ningún valor predeterminado. No se admite la coincidencia de patrones comodín.

[ @table_owner = ] N'table_owner'

Nombre del propietario de la tabla que se usa para devolver información del catálogo. @table_owner es sysname, con un valor predeterminado de NULL. No se admite la coincidencia de patrones comodín. Si owner no se especifica, se aplican las reglas de visibilidad de tabla predeterminadas del sistema de administración de bases de datos subyacente (DBMS).

En SQL Server, si el usuario actual posee una tabla con el nombre especificado, se devuelven los índices de esa tabla. Si owner no se especifica y el usuario actual no posee una tabla con el especificado name, este procedimiento busca una tabla con la propiedad especificada name por el propietario de la base de datos. Si existe una, se devuelven los índices de esa tabla.

[ @table_qualifier = ] N'table_qualifier'

Nombre del calificador de tabla. @table_qualifier es sysname, con un valor predeterminado de NULL. Varios productos de DBMS admiten la nomenclatura de tres partes para tablas (<qualifier>.<owner>.<name>). En SQL Server, este parámetro representa el nombre de la base de datos. En algunos productos, representa el nombre de servidor del entorno de base de datos de la tabla.

[ @index_name = ] N'index_name'

Nombre de índice. @index_name es sysname, con un valor predeterminado de %. Se admite la coincidencia de patrón de caracteres comodín.

[ @is_unique = ] 'is_unique'

Indica si solo se van a devolver índices únicos (si Y). @is_unique es char(1), con un valor predeterminado de cadena vacía.

[ @accuracy = ] 'precision'

Nivel de cardinalidad y precisión de página para las estadísticas. @accuracy es char(1), con un valor predeterminado de Q. Especifique E para asegurarse de que las estadísticas se actualicen para que la cardinalidad y las páginas sean precisas.

  • E (SQL_ENSURE) pide al controlador que recupere incondicionalmente las estadísticas.

  • Q (SQL_QUICK) pide al controlador que recupere la cardinalidad y las páginas, solo si están disponibles fácilmente desde el servidor. En este caso, el controlador no garantiza que los valores estén actualizados. Las aplicaciones escritas en el estándar Open Group siempre obtienen SQL_QUICK el comportamiento de los controladores compatibles con ODBC 3.x.

Conjunto de resultados

Nombre de la columna Tipo de datos Descripción
TABLE_QUALIFIER sysname Nombre del calificador de la tabla. Esta columna puede ser NULL.
TABLE_OWNER sysname Nombre del propietario. Esta columna siempre devuelve un valor.
TABLE_NAME sysname Nombre de la tabla. Esta columna siempre devuelve un valor.
NON_UNIQUE smallint No acepta valores NULL.

0 = Único
1 = No único
INDEX_QUALIFIER sysname Nombre del propietario del índice. Algunos productos DBMS permiten crear índices a usuarios que no sean los propietarios de la tabla. En SQL Server, esta columna siempre es la misma que TABLE_NAME.
INDEX_NAME sysname El nombre del índice. Esta columna siempre devuelve un valor.
TYPE smallint Esta columna siempre devuelve un valor:

0 = Estadísticas de una tabla
1 = Agrupado
2 = hash
3 = No agrupado
SEQ_IN_INDEX smallint Posición de la columna dentro del índice.
COLUMN_NAME sysname Nombre de columna para cada columna del TABLE_NAME devuelto. Esta columna siempre devuelve un valor.
COLLATION char(1) Orden utilizado en la intercalación. Puede ser:

A = ascendente
D = Descendente
NULL = No aplicable
CARDINALITY int Número de filas de la tabla o valores únicos del índice.
PAGES int Número de páginas para el almacenamiento del índice o tabla.
FILTER_CONDITION varchar(128) SQL Server no devuelve un valor.

Valores de código de retorno

Ninguno.

Comentarios

Los índices del conjunto de resultados aparecen en orden ascendente por las columnas NON_UNIQUE, TYPE, INDEX_NAMEy SEQ_IN_INDEX.

El tipo de índice clúster hace referencia a un índice en el que los datos de la tabla se almacenan en el orden del índice. Este valor corresponde a los índices en clúster de SQL Server.

El tipo de índice Hashed acepta búsquedas exactas de coincidencias o intervalos, pero las búsquedas de coincidencia de patrones no usan el índice.

El sp_statistics procedimiento almacenado del sistema es equivalente a SQLStatistics en ODBC. Los resultados devueltos se ordenan mediante NON_UNIQUE, TYPE, INDEX_QUALIFIER, INDEX_NAME, y SEQ_IN_INDEX. Para obtener más información, consulte la referencia de ODBC.

Permisos

Es necesario contar con un permiso de tipo SELECT sobre el esquema.

Ejemplo: Azure Synapse Analytics and Analytics Platform System (PDW)

En el ejemplo siguiente se devuelve información sobre la DimEmployee tabla de la AdventureWorks base de datos de ejemplo.

EXEC sp_statistics DimEmployee;