Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőre vonatkozik:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL-adatbázis a Microsoft Fabric rendszerben
A sys.dm_db_stats_properties dinamikus menedzsment függvény a megadott adatbázisobjektum statisztikáit adja vissza a jelenlegi adatbázisban.
A partíciós táblák esetében lásd a hasonló sys.dm_db_incremental_stats_properties is.
Syntax
sys.dm_db_stats_properties (object_id, stats_id)
Arguments
object_id
Az objektum azonosítója a jelenlegi adatbázisban.
object_id
az int.
stats_id
A megadott object_idstatisztikák azonosítója . A statisztikai azonosítót a sys.stats dinamikus menedzsment nézetből lehet megszerezni.
stats_id
az int.
Visszaadott tábla
| Oszlop neve | Adattípus | Leírás |
|---|---|---|
object_id |
int | Az objektum azonosítója (tábla vagy indexelt nézet). |
stats_id |
int | A statisztikai objektum azonosítója. A tábla vagy az indexelt nézet egyedi. További információ: sys.stats (Transact-SQL). |
last_updated |
datetime2 | A statisztikai objektum utolsó frissítésének dátuma és időpontja. További információt a jelen cikk Megjegyzések szakaszában talál. |
rows |
bigint | A táblázatban vagy az indexelt nézetben szereplő sorok teljes száma, amikor a statisztikákat utoljára frissítették. Ha a statisztikák szűrve vannak, vagy egy szűrt indexnek felelnek meg, a sorok száma kisebb lehet, mint a tábla sorainak száma. |
rows_sampled |
bigint | Statisztikai számításokhoz mintavételezett sorok teljes száma. |
steps |
int | A hisztogram lépéseinek száma. További információ: DBCC SHOW_STATISTICS (Transact-SQL). |
unfiltered_rows |
bigint | A táblázatban lévő sorok összessége a szűrőkifejezés alkalmazása előtt (szűrt statisztikák esetén). Ha a statisztikákat nem szűrik, unfiltered_rows akkor megegyezik az oszlopban visszaadott rows értékkel. |
modification_counter |
bigint | A vezető statisztikai oszlop (az oszlop, amelyen a hisztográfia épül) összes módosítása az utolsó statisztika frissítése óta. Memóriára optimalizált táblák: az SQL Server 2016-tól (13.x) kezdve, és Azure SQL Database-ben ez az oszlop tartalmazza: a táblázat összes módosításának számát azóta, hogy legutóbb a statisztikák frissültek vagy újraindították az adatbázist. |
persisted_sample_percent |
float | A statisztikai frissítésekhez használt, a mintavételezési százalékot nem explicit módon meg nem határozó statisztikai frissítésekhez használt megmaradó minta százalékos aránya. Ha az érték nulla, akkor nincs megőrzött minta százalékos értéke ehhez a statisztikai adathoz. Érvényes: SQL Server 2016 (13.x) SP1 CU4 és újabb verziók |
Megjegyzések
A sys.dm_db_stats_properties függvény üres sorhalmazt ad vissza bármelyik alábbi feltétel esetén:
-
object_idvagystats_idazNULL. - A megadott objektum nem található meg, vagy nem felel meg egy táblának vagy indexelt nézetnek.
- A megadott statisztikai azonosító nem felel meg a megadott objektumazonosító meglévő statisztikáinak.
- A jelenlegi felhasználónak nincs engedélye a statisztikai objektum megtekintésére.
Ez a viselkedés lehetővé teszi a keresztbe való alkalmazásra sys.dm_db_stats_properties biztonságos használatot olyan nézetekben, mint sys.objects és sys.stats.
A statisztikai frissítés dátuma a statisztikai blobobjektumban a hisztogram és sűrűségvektorvan tárolva, nem a metaadatokban. Ha a rendszer nem olvas be adatokat a statisztikai adatok létrehozásához, a statisztikai blob nem jön létre, a dátum nem érhető el, és az last_updated oszlop is.NULL Ez a feltétel vonatkozik szűrt statisztikákra, amelyekre a predikátum nem ad vissza sorokat, vagy új üres táblákra.
Permissions
Statisztikai SELECT oszlopokra kell jogosultságot szerezned, vagy a tábla tulajdonosának kell lenned, vagy tagnak kell lenned a sysadmin fix szerver, a db_owner fix adatbázis vagy a db_ddladmin fix adatbázis szerep tagjaként.
Examples
A. Egyszerű példa
A következő példa visszaadja Person.Person az adatbázis táblázatának statisztikáit AdventureWorks tartalmazó információkat.
SELECT * FROM sys.dm_db_stats_properties (object_id('Person.Person'), 1);
B. A táblázat összes statisztikai tulajdonságát visszaadja
A következő példa adja vissza az összes statisztika tulajdonságait, amelyek a táblázatban Sales.SalesOrderDetailléteznek.
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. Statisztikai visszaigazolás tulajdonságokkal gyakran módosított objektumok esetén
A következő példa visszaadja az összes táblázatot, indexelt nézetet és statisztikát a jelenlegi adatbázisban, ahol az első oszlopot több mint 1000-szer módosították az utolsó statisztikai frissítés óta.
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;