Share via


sp_statistics (Transact-SQL)

Aktualisiert: 17. Juli 2006

Gibt eine Liste mit allen Indizes und Statistiken einer angegebenen Tabelle oder indizierten Sicht zurück.

Themenlink (Symbol)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

Neuer Inhalt:
  • Die Werte des @accuracy-Parameters wurden definiert.