Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL-databas i Microsoft Fabric
Funktionen för sys.dm_db_stats_properties dynamisk hantering returnerar statistik för det angivna databasobjektet i den aktuella databasen.
För partitionerade tabeller, se även den liknande sys.dm_db_incremental_stats_properties.
Syntax
sys.dm_db_stats_properties (object_id, stats_id)
Arguments
object_id
ID:t för objektet i den aktuella databasen.
object_id är int.
stats_id
ID:t för statistik för den specificerade object_id. Du kan få statistik-ID:t från sys.stats dynamiska hanteringsvy.
stats_id är int.
Tabellen returneras
| Kolumnnamn | Datatyp | Description |
|---|---|---|
object_id |
int | ID för objektet (tabell eller indexerad vy). |
stats_id |
int | ID för statistikobjektet. Är unikt i tabellen eller i indexvyn. Mer information finns i sys.stats (Transact-SQL). |
last_updated |
datetime2 | Datum och tid för att statistikobjektet senast uppdaterades. Mer information finns i avsnittet Anmärkningar i den här artikeln. |
rows |
bigint | Totalt antal rader i tabellen eller den indexerade vyn när statistiken senast uppdaterades. Om statistiken filtreras eller motsvarar ett filtrerat index kan antalet rader vara mindre än antalet rader i tabellen. |
rows_sampled |
bigint | Totalt antal rader som samplas för statistikberäkningar. |
steps |
int | Antal steg i histogrammet. Mer information finns i DBCC SHOW_STATISTICS (Transact-SQL). |
unfiltered_rows |
bigint | Totalt antal rader i tabellen innan filteruttrycket appliceras (för filtrerad statistik). Om statistik inte filtreras unfiltered_rows är lika med värdet som returneras i kolumnen rows . |
modification_counter |
bigint | Totalt antal ändringar för den ledande statistikkolumnen (kolumnen som histogrammet byggs på) sedan senaste uppdateringen av statistiken. Minnesoptimerade tabeller: från och med SQL Server 2016 (13.x) och i Azure SQL Database innehåller denna kolumn: totalt antal ändringar för tabellen sedan senaste gången statistik uppdaterades eller databasen startades om. |
persisted_sample_percent |
float | Sparad exempelprocent som används för statistikuppdateringar som inte uttryckligen anger en samplingsprocent. Om värdet är noll anges ingen bevarad exempelprocentsats för den här statistiken. Gäller för: SQL Server 2016 (13.x) SP1 CU4 och senare versioner |
Anmärkningar
Funktionen returnerar sys.dm_db_stats_properties en tom radmängd under något av följande villkor:
-
object_idellerstats_idärNULL. - Det angivna objektet hittas inte eller motsvarar inte en tabell eller indexerad vy.
- Det angivna statistik-ID:t motsvarar inte existerande statistik för det angivna objekt-ID:t.
- Den nuvarande användaren har inte behörighet att se statistikobjektet.
Detta beteende möjliggör säker användning av sys.dm_db_stats_properties när korsappliceras på rader i vyer som sys.objects och sys.stats.
Uppdateringsdatumet för statistik lagras i -statistikblobobjektet tillsammans med histogrammet och densitetsvektor, inte i metadata. När inga data läss för att generera statistikdata skapas inte statistikbloben, datumet är inte tillgängligt och last_updated kolumnen är NULL. Detta villkor gäller för filtrerad statistik där predikatet inte returnerar några rader, eller för nya tomma tabeller.
Permissions
Du behöver SELECT behörigheter på statistikkolumner, eller så måste du äga tabellen, eller vara medlem i den sysadmin fasta serverrollen, den db_owner fasta databasrollen eller den db_ddladmin fasta databasrollen.
Examples
A. Enkelt exempel
Följande exempel ger information om statistiken för Person.Person tabellen i databasen AdventureWorks .
SELECT * FROM sys.dm_db_stats_properties (object_id('Person.Person'), 1);
B. Returnera alla statistikegenskaper för en tabell
Följande exempel återger egenskaper för alla statistik som finns för tabellen Sales.SalesOrderDetail.
SELECT
OBJECT_SCHEMA_NAME(stat.object_id) AS schema_name,
OBJECT_NAME(stat.object_id) AS table_name,
sp.stats_id,
stat.[name],
stat.filter_definition,
sp.last_updated,
sp.[rows],
sp.rows_sampled,
sp.steps,
sp.unfiltered_rows,
sp.modification_counter
FROM sys.stats AS stat
OUTER APPLY sys.dm_db_stats_properties(stat.object_id, stat.stats_id) AS sp
WHERE stat.object_id = OBJECT_ID(N'Sales.SalesOrderDetail')
C. Egenskaper för returstatistik för ofta modifierade objekt
Följande exempel visar alla tabeller, indexerade vyer och statistik i den aktuella databasen där den ledande kolumnen har ändrats mer än 1 000 gånger sedan den senaste statistikuppdateringen.
SELECT
OBJECT_SCHEMA_NAME(obj.[object_id]) AS schema_name,
obj.[name],
stat.[name],
stat.stats_id,
sp.last_updated,
sp.modification_counter
FROM sys.objects AS obj
INNER JOIN sys.stats AS stat ON stat.object_id = obj.object_id
OUTER APPLY sys.dm_db_stats_properties(stat.object_id, stat.stats_id) AS sp
WHERE sp.modification_counter > 1000;