Partager via


sp_statistics (Transact-SQL)

S’applique à : SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)

Retourne la liste de tous les index et statistiques d'une table ou d'une vue indexée.

Conventions de la syntaxe Transact-SQL

Syntaxe

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' ]
[ ; ]

Notes

Cette syntaxe n’est pas prise en charge par le pool SQL serverless dans Azure Synapse Analytics.

Arguments

[ @table_name = ] N'table_name'

Spécifie la table utilisée pour retourner les informations de catalogue. @table_name est sysname, sans valeur par défaut. La correspondance des modèles génériques n’est pas prise en charge.

[ @table_owner = ] N’table_owner'

Nom du propriétaire de la table utilisé pour retourner les informations du catalogue. @table_owner est sysname, avec la valeur par défaut NULL. La correspondance des modèles génériques n’est pas prise en charge. Si owner ce n’est pas spécifié, les règles de visibilité de table par défaut du système de gestion de base de données sous-jacent (SGBD) s’appliquent.

Dans SQL Server, si l’utilisateur actuel possède une table portant le nom spécifié, les index de cette table sont retournés. Si owner elle n’est pas spécifiée et si l’utilisateur actuel ne possède pas de table avec la table spécifiée name, cette procédure recherche une table avec le propriétaire de la base de données spécifié name . Si cette table existe, ses index sont retournés.

[ @table_qualifier = ] N’table_qualifier'

Nom du qualificateur de table. @table_qualifier est sysname, avec la valeur par défaut NULL. Différents produits SGBD prennent en charge le nommage en trois parties pour les tables (<qualifier>.<owner>.<name>). Dans SQL Server, ce paramètre représente le nom de la base de données. Dans d'autres produits, elle représente le nom du serveur de l'environnement de base de données de la table.

[ @index_name = ] N’index_name'

Nom de l'index. @index_name est sysname, avec la valeur par défaut %. La recherche de correspondance avec des caractères génériques est prise en charge.

[ @is_unique = ] 'is_unique'

Indique si seuls les index uniques (si Y) doivent être retournés. @is_unique est char(1), avec une chaîne vide par défaut.

[ @accuracy = ] 'accuracy'

Niveau de cardinalité et précision de page pour les statistiques. @accuracy est char(1), avec la valeur par défaut Q. Spécifiez E pour vous assurer que les statistiques sont mises à jour afin que la cardinalité et les pages soient précises.

  • E (SQL_ENSURE) demande au conducteur de récupérer inconditionnellement les statistiques.

  • Q (SQL_QUICK) demande au pilote de récupérer la cardinalité et les pages, uniquement s’ils sont facilement disponibles à partir du serveur. Dans ce cas, le pilote ne garantit pas que les valeurs sont actuelles. Les applications écrites dans la norme Open Group obtiennent SQL_QUICK toujours le comportement des pilotes compatibles ODBC 3.x.

Jeu de résultats

Nom de la colonne Type de données Description
TABLE_QUALIFIER sysname Nom du qualificateur de la table. Cette colonne peut être NULL.
TABLE_OWNER sysname Nom du propriétaire de la table. Cette colonne renvoie toujours une valeur.
TABLE_NAME sysname Nom de la table. Cette colonne renvoie toujours une valeur.
NON_UNIQUE smallint N'accepte pas la valeur NULL.

0 = Unique
1 = Non unique
INDEX_QUALIFIER sysname Nom du propriétaire de l’index. Certains produits SGBD acceptent que des utilisateurs autres que le propriétaire de la table créent des index. Dans SQL Server, cette colonne est toujours la même que TABLE_NAME.
INDEX_NAME sysname Nom de l’index. Cette colonne renvoie toujours une valeur.
TYPE smallint Cette colonne renvoie toujours une valeur :

0 = Statistiques d’une table
1 = Clustered
2 = Hachage
3 = Non cluster
SEQ_IN_INDEX smallint Position de la colonne dans l'index
COLUMN_NAME sysname Nom de colonne pour chaque colonne du TABLE_NAME retour. Cette colonne renvoie toujours une valeur.
COLLATION char(1) Ordre utilisé dans les classements. Valeurs possibles :

A = Croissant
D = Décroissant
NULL = Non applicable
CARDINALITY int Nombre de lignes dans la table ou valeurs uniques dans l’index.
PAGES int Nombre de pages pour stocker l'index ou la table.
FILTER_CONDITION varchar(128) SQL Server ne retourne pas de valeur.

Valeurs des codes de retour

Aucune.

Notes

Les index du jeu de résultats apparaissent dans l’ordre croissant par les colonnes NON_UNIQUE, TYPE, INDEX_NAMEet SEQ_IN_INDEX.

Le type d'index cluster fait référence à un index dans lequel les données de la table sont stockées dans l'ordre de l'index. Cette valeur correspond aux index cluster SQL Server.

Le hachage du type d’index accepte la correspondance exacte ou les recherches de plage, mais les recherches de correspondance de modèles n’utilisent pas l’index.

La sp_statistics procédure stockée système est équivalente à SQLStatistics ODBC. Les résultats retournés sont classés par NON_UNIQUE, TYPE, INDEX_QUALIFIER, INDEX_NAME, et SEQ_IN_INDEX. Pour plus d’informations, consultez la référence ODBC.

autorisations

Nécessite l’autorisation SELECT sur le schéma.

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

L’exemple suivant retourne des informations sur la DimEmployee table de l’exemple AdventureWorks de base de données.

EXEC sp_statistics DimEmployee;