sp_statistics (Transact-SQL)
Aktualisiert: 17. Juli 2006
Gibt eine Liste mit allen Indizes und Statistiken einer angegebenen Tabelle oder indizierten Sicht zurück.
Transact-SQL-Syntaxkonventionen
Syntax
sp_statistics [ @table_name = ] 'table_name' [ , [ @table_owner = ] 'owner' ]
[ , [ @table_qualifier = ] 'qualifier' ]
[ , [ @index_name = ] 'index_name' ]
[ , [ @is_unique = ] 'is_unique' ]
[ , [ @accuracy = ] 'accuracy' ]
Argumente
- [ @table_name=] 'table_name'
Gibt die Tabelle an, die zum Zurückgeben von Kataloginformationen verwendet wird. table_name ist vom Datentyp sysname und hat keinen Standardwert. Mustervergleiche mit Platzhalterzeichen werden nicht unterstützt.
[ @table_owner= ] 'owner'
Der Name des Besitzers der Tabelle, mit der Kataloginformationen zurückgegeben werden. table_owner ist vom Datentyp sysname und hat den Standardwert NULL. Mustervergleiche mit Platzhalterzeichen werden nicht unterstützt. Wenn owner nicht angegeben wird, gelten die Standardregeln für die Sichtbarkeit von Tabellen des zugrunde liegenden DBMS.In SQL Server werden die Indizes einer Tabelle zurückgegeben, wenn der aktuelle Benutzer diese Tabelle mit dem angegebenen Namen besitzt. Wenn owner nicht angegeben wird und der aktuelle Benutzer keine Tabelle mit dem angegebenen Wert für name besitzt, wird nach einer Tabelle mit dem angegebenen Wert für name gesucht, die im Besitz des Datenbankbesitzers ist. Sofern eine solche Tabelle vorhanden ist, werden die Indizes dieser Tabelle zurückgegeben.
- [ @table_qualifier= ] 'qualifier'
Der Name des Tabellenqualifizierers. qualifier ist vom Datentyp sysname, der Standardwert ist NULL. Verschiedene DBMS-Produkte unterstützen eine dreiteilige Namensgebung für Tabellen (qualifier**.owner.**name). In SQL Server stellt dieser Parameter den Datenbanknamen dar. Bei anderen Produkten stellt er den Servernamen der Datenbankumgebung für die Tabelle dar.
- [ @index_name= ] 'index_name'
Der Indexname. index_name ist vom Datentyp sysname und hat den Standardwert %. 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 vom Datentyp char(1) und hat den Standardwert N.
[ @accuracy= ] 'accuracy'
Der Grad der Kardinalität und der Seitengenauigkeit für Statistiken. accuracy ist vom Datentyp char(1) und hat den Standardwert Q. Geben Sie E an, um sicherzustellen, dass die Statistiken aktualisiert werden, sodass die Kardinalität und Seiten stimmen.Der Wert E (SQL_ENSURE) weist den Treiber zum unbedingten Abrufen der Statistiken an.
Der Wert Q (SQL_QUICK) weist den Treiber nur dann zum Abrufen der Kardinalität und Seiten an, wenn diese sofort auf dem Server verfügbar sind. In diesem Fall wird vom Treiber nicht sichergestellt, dass die Werte aktuell sind. Anwendungen, die nach dem X/Open-Standard geschrieben wurden, rufen immer das SQL_QUICK-Verhalten von Treibern ab, die mit ODBC 3.x kompatibel sind.
Rückgabecodewerte
Keine
Resultsets
Spaltenname | Datentyp | Beschreibung |
---|---|---|
TABLE_QUALIFIER |
sysname |
Der Name des Qualifizierers der Tabelle. Diese Spalte kann NULL enthalten. |
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 |
NOT NULL 0 = Eindeutig 1 = Nicht eindeutig |
INDEX_QUALIFIER |
sysname |
Der Name des Indexbesitzers. Verschiedene DBMS-Produkte ermöglichen neben dem Tabellenbesitzer auch anderen Benutzern das Erstellen von Indizes. In SQL Server ist diese Spalte stets mit TABLE_NAME identisch. |
INDEX_NAME |
sysname |
Der Name des Indexes. Diese Spalte gibt immer einen Wert zurück. |
TYPE |
smallint |
Diese Spalte gibt immer einen Wert zurück: 0 = Statistik für eine Tabelle 1 = Gruppiert 2 = Hash 3 = Nicht gruppiert |
SEQ_IN_INDEX |
smallint |
Position der Spalte im Index |
COLUMN_NAME |
sysname |
Der Name der Spalte, der für jede Spalte von TABLE_NAME zurückgegeben wird. Diese Spalte gibt immer einen Wert zurück. |
COLLATION |
char(1) |
Die in der Sortierung verwendete Reihenfolge. Mögliche Werte sind: A = Aufsteigend D = Absteigend NULL = 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. |
Hinweise
Die Indizes im Resultset werden in aufsteigender Reihenfolge entsprechend den Spalten NON_UNIQUE, TYPE, INDEX_NAME und SEQ_IN_INDEX zurückgegeben.
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. Dies entspricht in SQL Server gruppierten Indizes.
Beim Indextyp Hash ist die Suche nach genauen Übereinstimmungen oder Wertebereichen zwar zulässig, bei Mustervergleichen wird der Index jedoch nicht verwendet.
sp_statistics entspricht SQLStatistics in ODBC. Die zurückgegebenen Ergebnisse sind sortiert nach NON_UNIQUE, TYPE, INDEX_QUALIFIER, INDEX_NAME und SEQ_IN_INDEX. Weitere Informationen finden Sie unter ODBC API Reference (in Englisch).
Berechtigungen
Setzt die SELECT-Berechtigung für das Schema voraus.
Siehe auch
Verweis
Gespeicherte Prozeduren für Kataloginformationen (Transact-SQL)
Gespeicherte Systemprozeduren (Transact-SQL)
Hilfe und Informationen
Informationsquellen für SQL Server 2005
Änderungsverlauf
Version | Verlauf |
---|---|
17. Juli 2006 |
|