sp_statistics (Transact-SQL)
Gilt für: SQL Server Azure SQL-Datenbank Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)
Gibt eine Liste mit allen Indizes und Statistiken einer angegebenen Tabelle oder indizierten Sicht zurück.
Transact-SQL-Syntaxkonventionen
Syntax
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' ]
[ ; ]
Hinweis
Diese Syntax wird vom serverlosen SQL-Pool in Azure Synapse Analytics nicht unterstützt.
Argumente
[ @table_name = ] N'table_name'
Gibt die Tabelle zum Zurückgeben von Kataloginformationen an. @table_name ist "sysname" ohne Standard. Der Übereinstimmung von Wildcardmustern wird nicht unterstützt.
[ @table_owner = ] N'table_owner'
Der Name des Tabellenbesitzers der Tabelle, die zum Zurückgeben von Kataloginformationen verwendet wird. @table_owner ist "sysname" mit der Standardeinstellung "NULL
. Der Übereinstimmung von Wildcardmustern wird nicht unterstützt. Wenn owner
nicht angegeben, gelten die Standardtabellensichtsregeln des zugrunde liegenden Datenbankverwaltungssystems (DBMS).
Wenn der aktuelle Benutzer in SQL Server eine Tabelle mit dem angegebenen Namen besitzt, werden die Indizes dieser Tabelle zurückgegeben. Falls owner
nicht angegeben und der aktuelle Benutzer besitzt keine Tabelle mit dem angegebenen name
, sucht diese Prozedur nach einer Tabelle mit dem angegebenen name
Besitzer des Datenbankbesitzers. Sofern eine solche Tabelle vorhanden ist, werden die Indizes dieser Tabelle zurückgegeben.
[ @table_qualifier = ] N'table_qualifier'
Der Name des Tabellenqualifizierers. @table_qualifier ist "sysname" mit einem Standardwert von NULL
. Verschiedene DBMS-Produkte unterstützen die dreiteilige Benennung für Tabellen (<qualifier>.<owner>.<name>
). In SQL Server stellt dieser Parameter den Datenbanknamen dar. Bei anderen Produkten stellt sie den Servernamen der Datenbankumgebung für die Tabelle dar.
[ @index_name = ] N'index_name'
Der Indexname. @index_name ist "sysname" mit einem Standardwert von %
. Mustervergleiche mit Platzhalterzeichen werden unterstützt.
[ @is_unique = ] 'is_unique'
Gibt an, ob nur eindeutige Indizes (wenn Y
) zurückgegeben werden sollen. @is_unique ist "char(1)", wobei eine leere Zeichenfolge standardmäßig vorhanden ist.
[ @accuracy = ] 'Genauigkeit'
Die Ebene der Kardinalität und Seitengenauigkeit für Statistiken. @accuracy ist Char(1) mit einem Standardwert von Q
. Geben Sie E
an, dass Statistiken aktualisiert werden, damit Kardinalität und Seiten korrekt sind.
E
(SQL_ENSURE
) fordert den Fahrer auf, die Statistiken bedingungslos abzurufen.Q
(SQL_QUICK
) fordert den Treiber auf, die Kardinalität und die Seiten abzurufen, nur, wenn sie leicht vom Server verfügbar sind. In diesem Fall stellt der Treiber nicht sicher, dass die Werte aktuell sind. Anwendungen, die in den Open Group-Standard geschrieben wurden, erhaltenSQL_QUICK
immer das Verhalten von ODBC 3.x-kompatiblen Treibern.
Resultset
Spaltenname | Datentyp | Beschreibung |
---|---|---|
TABLE_QUALIFIER |
sysname | Der Name des Tabellenqualifizierers. Diese Spalte kann sein NULL . |
TABLE_OWNER |
sysname | Der Name des Tabellenbesitzers. Diese Spalte gibt immer einen Wert zurück. |
TABLE_NAME |
sysname | Tabellenname. Diese Spalte gibt immer einen Wert zurück. |
NON_UNIQUE |
smallint | Lässt keine NULL-Werte zu.0 = Eindeutig1 = Nicht eindeutig |
INDEX_QUALIFIER |
sysname | Indexbesitzername. Verschiedene DBMS-Produkte ermöglichen neben dem Tabellenbesitzer auch anderen Benutzern das Erstellen von Indizes. In SQL Server ist diese Spalte immer identisch mit TABLE_NAME . |
INDEX_NAME |
sysname | Der Name des Index. Diese Spalte gibt immer einen Wert zurück. |
TYPE |
smallint | Diese Spalte gibt immer einen Wert zurück:0 = Statistiken für eine Tabelle1 = Gruppiert2 = Hashed3 = Nicht gruppiert |
SEQ_IN_INDEX |
smallint | Position der Spalte im Index |
COLUMN_NAME |
sysname | Spaltenname für jede Spalte der TABLE_NAME zurückgegebenen. Diese Spalte gibt immer einen Wert zurück. |
COLLATION |
char(1) | Die in der Sortierung verwendete Reihenfolge. Mögliche Werte sind:A = AufsteigendD = AbsteigendNULL = Nicht zutreffend |
CARDINALITY |
int | Anzahl der Zeilen in der Tabelle oder der eindeutigen Werte im Index |
PAGES |
int | Anzahl der Seiten, die zum Speichern des Indexes oder der Tabelle benötigt werden |
FILTER_CONDITION |
varchar(128) | SQL Server gibt keinen Wert zurück. |
Rückgabecodewerte
Keine.
Hinweise
Die Indizes im Resultset werden in aufsteigender Reihenfolge nach den Spalten NON_UNIQUE
, , TYPE
, INDEX_NAME
und SEQ_IN_INDEX
.
Die Indexart Gruppiert bezeichnet einen Index, der sich dadurch auszeichnet, dass die in der Tabelle gespeicherten Daten in der durch den Index vorgegebenen Reihenfolge abgelegt sind. Dieser Wert entspricht SQL Server-Gruppierten Indizes.
Der Indextyp "Hashed" akzeptiert genaue Übereinstimmungs- oder Bereichssuchen, aber Mustervergleichssuchen verwenden den Index nicht.
Die sp_statistics
gespeicherte Systemprozedur entspricht SQLStatistics
in ODBC. Die zurückgegebenen Ergebnisse werden nach NON_UNIQUE
, , TYPE
, INDEX_QUALIFIER
, INDEX_NAME
und .SEQ_IN_INDEX
Weitere Informationen finden Sie in der ODBC-Referenz.
Berechtigungen
Erfordert die SELECT
-Berechtigung im Schema.
Beispiel: Azure Synapse Analytics and Analytics Platform System (PDW)
Im folgenden Beispiel werden Informationen zur DimEmployee
Tabelle aus der AdventureWorks
Beispieldatenbank zurückgegeben.
EXEC sp_statistics DimEmployee;