Not
Å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
Returnerar egenskaper för statistik för det specificerade databasobjektet (tabell eller indexerad vy) i den aktuella SQL Server-databasen. För partitionerade tabeller, se den liknande sys.dm_db_incremental_stats_properties.
Syntax
sys.dm_db_stats_properties (object_id, stats_id)
Arguments
object_id
Är ID:t för objektet i den aktuella databasen för vilket egenskaper hos en av dess statistik efterfrågas.
object_id är int.
stats_id
Är ID:t för statistik för den angivna object_id. Statistik-ID:t kan hämtas från den dynamiska hanteringsvyn sys.stats .
stats_id är int.
Tabell returnerad
| Kolumnnamn | Datatyp | Description |
|---|---|---|
| object_id | int | ID för objektet (tabell eller indexerad vy) för vilket egenskaperna för statistikobjektet ska returneras. |
| 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 Kommentarer på den här sidan. |
| 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 är unfiltered_rows lika med värdet som returneras i raderkolumnen. |
| 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 | Persistent urvalsprocent används för statistikuppdateringar som inte uttryckligen specificerar en urvalsprocent. 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 |
Anmärkningar
sys.dm_db_stats_properties returnerar en tom radmängd under något av följande villkor:
- object_id eller stats_id är NULL.
- 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 de 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 ingen data läses för att generera statistikdata skapas inte statistikblobben, datumet är inte tillgängligt och kolumnen last_updated är NULL. Detta gäller för filtrerad statistik där predikatet inte returnerar några rader, eller för nya tomma tabeller.
Permissions
Kräver att användaren har valbehörigheter på statistikkolumner eller att användaren äger tabellen eller är medlem i den sysadmin fasta serverrollen, den db_owner fasta databasrollen eller den db_ddladmin fasta databasrollen.
Examples
A. Enkelt exempel
Följande exempel returnerar statistiken för Person.Person tabellen i AdventureWorks-databasen.
SELECT * FROM sys.dm_db_stats_properties (object_id('Person.Person'), 1);
B. Returnerar alla statistikegenskaper för en tabell
Följande exempel returnerar egenskaper för alla statistik som finns för tabellen 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. Returnerar statistikegenskaper 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 1000 gånger sedan den senaste statistikuppdateringen.
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;
Se även
DBCC-SHOW_STATISTICS (Transact-SQL)
sys.stats (Transact-SQL)
Objektrelaterade dynamiska hanteringsvyer och funktioner (Transact-SQL)
Vyer och funktioner för dynamisk hantering (Transact-SQL)
sys.dm_db_incremental_stats_properties (Transact-SQL)
sys.dm_db_stats_histogram (Transact-SQL)