Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
van toepassing op:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL-database in Microsoft Fabric
Geeft eigenschappen van statistieken terug voor het gespecificeerde databaseobject (tabel of geïndexeerde weergave) in de huidige SQL Server-database. Voor gepartitioneerde tabellen, zie de vergelijkbare sys.dm_db_incremental_stats_properties.
Syntaxis
sys.dm_db_stats_properties (object_id, stats_id)
Arguments
object_id
Is de ID van het object in de huidige database waarvoor eigenschappen van een van zijn statistieken worden opgevraagd.
object_id is int.
stats_id
Is de ID van statistieken voor de gespecificeerde object_id. De statistieken-id kan worden verkregen vanuit de dynamische beheerweergave sys.stats .
stats_id is int.
Tabel geretourneerd
| Kolomnaam | Gegevenstype | Description |
|---|---|---|
| object_id | int | Id van het object (tabel of geïndexeerde weergave) waarvoor de eigenschappen van het statistiekenobject moeten worden geretourneerd. |
| stats_id | int | Id van het statistiekenobject. Is uniek in de tabel of geïndexeerde weergave. Zie sys.stats (Transact-SQL)voor meer informatie. |
| last_updated | datetime2 | Datum en tijd waarop het statistiekobject voor het laatst is bijgewerkt. Zie de sectie Opmerkingen op deze pagina voor meer informatie. |
| rows | bigint | Totaal aantal rijen in de tabel of geïndexeerde weergave toen statistieken voor het laatst werden bijgewerkt. Als de statistieken worden gefilterd of overeenkomen met een gefilterde index, kan het aantal rijen kleiner zijn dan het aantal rijen in de tabel. |
| rows_sampled | bigint | Totaal aantal rijen dat is gesampleerd voor berekeningen van statistieken. |
| steps | int | Aantal stappen in het histogram. Zie DBCC-SHOW_STATISTICS (Transact-SQL)voor meer informatie. |
| unfiltered_rows | bigint | Totaal aantal rijen in de tabel voordat de filterexpressie wordt toegepast (voor gefilterde statistieken). Als statistieken niet worden gefilterd, is unfiltered_rows gelijk aan de waarde die in de kolom rijen terugkeert. |
| modification_counter | bigint | Totaal aantal aanpassingen voor de leidende statistiekkolom (de kolom waarop het histogram is gebouwd) sinds de laatste keer dat statistieken werden bijgewerkt. Geheugen-geoptimaliseerde tabellen: vanaf SQL Server 2016 (13.x) en in Azure SQL Database bevat deze kolom: het totaal aantal wijzigingen voor de tabel sinds de laatste keer dat statistieken werden bijgewerkt of de database opnieuw werd opgestart. |
| persisted_sample_percent | float | Persisted sample percentage gebruikt voor statistische updates die geen expliciet steekproefpercentage specificeren. Als de waarde nul is, wordt er geen persistent steekproefpercentage ingesteld voor deze statistiek. Van toepassing op: SQL Server 2016 (13.x) SP1 CU4 |
Opmerkingen
sys.dm_db_stats_properties geeft een lege rijset terug onder een van de volgende voorwaarden:
- object_id of stats_id is NULL.
- Het opgegeven object wordt niet gevonden of komt niet overeen met een tabel of geïndexeerde weergave.
- De opgegeven statistiek-ID komt niet overeen met bestaande statistieken voor de opgegeven object-ID.
- De huidige gebruiker heeft geen rechten om het statistiekobject te bekijken.
Dit gedrag maakt veilig gebruik van sys.dm_db_stats_properties mogelijk wanneer het wordt toegepast op rijen in weergaven zoals sys.objects en sys.stats.
De updatedatum van statistieken wordt samen met het histogram en de dichtheidsvector opgeslagen in het blobobject voor statistieken, niet in de metagegevens. Wanneer er geen data wordt gelezen om statistische data te genereren, wordt de statistiekblob niet aangemaakt, is de datum niet beschikbaar en is de kolom last_updated NUL. Dit geldt voor gefilterde statistieken waarbij het predicaat geen rijen teruggeeft, of voor nieuwe lege tabellen.
Permissions
Vereist dat de gebruiker selectierechten heeft op statistiekkolommen of dat de gebruiker de tabel bezit of lid is van de sysadmin vaste serverrol, de db_owner vaste databaserol of de db_ddladmin vaste databaserol.
Voorbeelden
Eén. Eenvoudig voorbeeld
Het volgende voorbeeld geeft de statistieken voor de Person.Person tabel in de AdventureWorks-database terug.
SELECT * FROM sys.dm_db_stats_properties (object_id('Person.Person'), 1);
B. Alle statistische eigenschappen voor een tabel teruggeven
Het volgende voorbeeld geeft eigenschappen van alle bestaande statistieken voor de tabel TEST weer.
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. Statistiekeigenschappen teruggeven voor vaak gewijzigde objecten
Het volgende voorbeeld geeft alle tabellen, geïndexeerde weergaven en statistieken terug in de huidige database waarvoor de leidende kolom meer dan 1000 keer is aangepast sinds de laatste statistiekupdate.
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;
Zie ook
DBCC-SHOW_STATISTICS (Transact-SQL)
sys.stats (Transact-SQL)
Objectgerelateerde dynamische beheerweergaven en -functies (Transact-SQL)
Dynamische beheerweergaven en -functies (Transact-SQL)
sys.dm_db_incremental_stats_properties (Transact-SQL)
sys.dm_db_stats_histogram (Transact-SQL)