sys.dm_db_stats_properties (Transact-SQL)sys.dm_db_stats_properties (Transact-SQL)

DIESES THEMA GILT FÜR:jaSQL Server (ab 2008)jaAzure SQL-DatenbankneinAzure SQL Data Warehouse neinParallel Data Warehouse THIS TOPIC APPLIES TO:yesSQL Server (starting with 2008)yesAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

Gibt Statistikeigenschaften für das angegebene Datenbankobjekt (Tabelle oder indizierte Sicht) in der aktuellen SQL ServerSQL Server-Datenbank zurück.Returns properties of statistics for the specified database object (table or indexed view) in the current SQL ServerSQL Server database. Bei partitionierten Tabellen finden Sie unter ähnlichen sys.dm_db_incremental_stats_properties.For partitioned tables, see the similar sys.dm_db_incremental_stats_properties.

SyntaxSyntax

sys.dm_db_stats_properties (object_id, stats_id)  

ArgumenteArguments

object_idobject_id
ID des Objekts in der aktuellen Datenbank, für die Eigenschaften einer der enthaltenen Statistiken angefordert werden.Is the ID of the object in the current database for which properties of one of its statistics is requested. object_id ist int.object_id is int.

stats_idstats_id
ID der Statistik für die angegebene object_id.Is the ID of statistics for the specified object_id. Die Statistik-ID kann aus der dynamischen Verwaltungssicht sys.stats abgerufen werden.The statistics ID can be obtained from the sys.stats dynamic management view. stats_id ist int.stats_id is int.

Zurückgegebene TabelleTable Returned

SpaltennameColumn name DatentypData type BeschreibungDescription
object_idobject_id intint ID des Objekts (Tabelle oder indizierte Sicht), für das die Eigenschaften des Statistikobjekts zurückgegeben werden sollen.ID of the object (table or indexed view) for which to return the properties of the statistics object.
stats_idstats_id intint Die ID des Statistikobjekts.ID of the statistics object. Diese ist innerhalb der Tabelle oder indizierten Sicht eindeutig.Is unique within the table or indexed view. Weitere Informationen finden Sie unter sys.stats (Transact-SQL).For more information, see sys.stats (Transact-SQL).
last_updatedlast_updated datetime2datetime2 Datum und Uhrzeit der letzten Aktualisierung des Statistikobjekts.Date and time the statistics object was last updated.
rowsrows bigintbigint Gesamtanzahl der Zeilen in der Tabelle oder indizierten Sicht zum Zeitpunkt der letzten Aktualisierung der Statistik.Total number of rows in the table or indexed view when statistics were last updated. Wenn die Statistik gefiltert wird oder einem gefilterten Index entspricht, kann die Anzahl der Zeilen geringer als die Anzahl der Zeilen in der Tabelle sein.If the statistics are filtered or correspond to a filtered index, the number of rows might be less than the number of rows in the table.
rows_sampledrows_sampled bigintbigint Gesamtzahl der Zeilen, die für die statistischen Berechnungen in die Stichprobe aufgenommen wurden.Total number of rows sampled for statistics calculations.
stepssteps intint Anzahl der Schritte im Histogramm.Number of steps in the histogram. Weitere Informationen finden Sie unter DBCC SHOW_STATISTICS (Transact-SQL)enthalten.For more information, see DBCC SHOW_STATISTICS (Transact-SQL).
unfiltered_rowsunfiltered_rows bigintbigint Gesamtanzahl der Zeilen in der Tabelle vor dem Anwenden des Filterausdrucks (für gefilterte Statistiken).Total number of rows in the table before applying the filter expression (for filtered statistics). Wenn die Statistik nicht gefiltert ist, entspricht „unfiltered_rows“ dem in der rows-Spalte zurückgegebenen Wert.If statistics are not filtered, unfiltered_rows is equal to the value returns in the rows column.
modification_countermodification_counter bigintbigint Gesamtanzahl der Änderungen für die führende Statistikspalte (auf der das Histogramm basiert) seit der letzten Aktualisierung der Statistik.Total number of modifications for the leading statistics column (the column on which the histogram is built) since the last time statistics were updated.

Speicheroptimierte Tabellen: ab SQL Server 2016SQL Server 2016 und Azure SQL-DatenbankAzure SQL Database enthält diese Spalte: Gesamtzahl der Änderungen für die Tabelle, die seit der letzten Statistiken aktualisiert wurden oder die Datenbank wurde neu gestartet.Memory-optimized tables: starting SQL Server 2016SQL Server 2016 and in Azure SQL-DatenbankAzure SQL Database this column contains: total number of modifications for the table since the last time statistics were updated or the database was restarted.
persisted_sample_percentpersisted_sample_percent floatfloat Beibehalten von Prozentsatz für die Stichprobe verwendet wird, für die Statistik-Updates, die einen Sampling Prozentsatz nicht explizit angeben.Persisted sample percentage used for statistic updates that do not explicitly specify a sampling percentage. Wenn der Wert 0 (null) ist, ist kein Prozentsatz der beibehaltenen Beispiel für diese Statistik festgelegt.If value is zero, then no persisted sample percentage is set for this statistic.

Gilt für: SQL Server 2016SQL Server 2016 SP1 CU4Applies to: SQL Server 2016SQL Server 2016 SP1 CU4

HinweiseRemarks

Sys. dm_db_stats_properties unter einer der folgenden Bedingungen ein leeres Rowset zurück:sys.dm_db_stats_properties returns an empty rowset under any of the following conditions:

  • Object_id oder Stats_id ist NULL.object_id or stats_id is NULL.

  • Das angegebene Objekt wurde nicht gefunden bzw. entspricht keiner Tabelle bzw. keiner indizierten Sicht.The specified object is not found or does not correspond to a table or indexed view.

  • Die angegebene Statistik-ID entspricht keiner vorhandenen Statistik für die angegebene Objekt-ID.The specified statistics ID does not correspond to existing statistics for the specified object ID.

  • Der aktuelle Benutzer verfügt nicht über die erforderlichen Berechtigungen zum Anzeigen des Statistikobjekts.The current user does not have permissions to view the statistics object.

    Dieses Verhalten ermöglicht die sichere Verwendung von dm_db_stats_properties Wenn Cross angewendet auf Zeilen in Sichten wie z. B. sys.objects und sys.stats.This behavior allows for the safe usage of sys.dm_db_stats_properties when cross applied to rows in views such as sys.objects and sys.stats.

BerechtigungenPermissions

Erfordert, dass der Benutzer über SELECT-Berechtigungen für Statistikspalten verfügt, Besitzer der Tabelle oder Mitglied der festen Serverrolle sysadmin, der festen Datenbankrolle db_owner oder der festen Datenbankrolle db_ddladmin ist.Requires that the user has select permissions on statistics columns or the user owns the table or the user is a member of the sysadmin fixed server role, the db_owner fixed database role, or the db_ddladmin fixed database role.

BeispieleExamples

A.A. Einfaches BeispielSimple example

Im folgende Beispiel gibt die Statistiken für die Person.Person -Tabelle in der AdventureWorks-Datenbank.The following example returns the statistics for the Person.Person table in the AdventureWorks database.

SELECT * FROM sys.dm_db_stats_properties (object_id('Person.Person'), 1);

B.B. Zurückgeben aller Statistikeigenschaften für eine TabelleReturning all statistics properties for a table

Im folgenden Beispiel werden die Eigenschaften aller Statistiken zurückgegeben, die für die TEST-Tabelle vorhanden sind.The following example returns properties of all statistics that exist for the table TEST.

SELECT sp.stats_id, name, filter_definition, last_updated, rows, rows_sampled, steps, unfiltered_rows, modification_counter   
FROM sys.stats AS stat   
CROSS APPLY sys.dm_db_stats_properties(stat.object_id, stat.stats_id) AS sp  
WHERE stat.object_id = object_id('TEST');  

C.C. Zurückgeben von Statistikeigenschaften für häufig geänderte ObjekteReturning statistics properties for frequently modified objects

Im folgenden Beispiel werden alle Tabellen, indizierten Sichten und Statistiken, für die die führende Spalte seit dem letzten Statistikupdate mehr als tausend Mal geändert wurde, aus der aktuellen Datenbank zurückgegeben.The following example returns all tables, indexed views, and statistics in the current database for which the leading column was modified more than 1000 times since the last statistics update.

SELECT obj.name, obj.object_id, stat.name, stat.stats_id, last_updated, modification_counter  
FROM sys.objects AS obj   
INNER JOIN sys.stats AS stat ON stat.object_id = obj.object_id  
CROSS APPLY sys.dm_db_stats_properties(stat.object_id, stat.stats_id) AS sp  
WHERE modification_counter > 1000;  

Siehe auchSee Also

DBCC SHOW_STATISTICS (Transact-SQL) DBCC SHOW_STATISTICS (Transact-SQL)
sys.stats (Transact-SQL) sys.stats (Transact-SQL)
Objektbezogene dynamische Verwaltungssichten und -funktionen (Transact-SQL) Object Related Dynamic Management Views and Functions (Transact-SQL)
Dynamische Verwaltungssichten und -funktionen (Transact-SQL)Dynamic Management Views and Functions (Transact-SQL)
Sys.dm_db_incremental_stats_properties (Transact-SQL)sys.dm_db_incremental_stats_properties (Transact-SQL)
Sys.dm_db_stats_histogram (Transact-SQL)sys.dm_db_stats_histogram (Transact-SQL)