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őkre vonatkozik:SQL Server
Azure SQL Database
Felügyelt Azure SQL-példány
Azure Synapse Analytics
Elemzési platformrendszer (PDW)
SQL Analytics-végpont a Microsoft Fabricben
Raktár a Microsoft Fabricben
SQL-adatbázis a Microsoft Fabricben
Táblázat vagy indexelt nézet aktuális lekérdezésoptimalizálási statisztikáit jeleníti meg. A lekérdezésoptimalizáló statisztikák használatával becsüli meg a lekérdezés eredményének számosságát vagy sorainak számát, ami lehetővé teszi, hogy a Lekérdezésoptimalizáló kiváló minőségű lekérdezéstervet hozzon létre. A Lekérdezésoptimalizáló például számosságbecslésekkel választhatja ki az indexkeresési operátort a lekérdezési terv indexkeresési operátora helyett, így elkerülve az erőforrás-igényes indexvizsgálatot, javítva a lekérdezés teljesítményét.
A Lekérdezésoptimalizáló egy tábla vagy indexelt nézet statisztikáit egy statisztikai objektumban tárolja. Egy tábla esetében a statisztikai objektum egy indexen vagy egy táblaoszloplistán jön létre. A statisztikai objektum tartalmaz egy fejlécet a statisztikák metaadataival, egy hisztogramot a statisztikai objektum első kulcsoszlopában lévő értékek eloszlásával, valamint egy sűrűségvektort az oszlopközi korreláció méréséhez. Az adatbázismotor számosságbecsléseket képes kiszámítani a statisztikai objektum bármely adatával. További információ: Statistics és Cardinality Estimation (SQL Server).
DBCC SHOW_STATISTICS megjeleníti a fejlécet, a hisztogramot és a sűrűségvektort a statisztikai objektumban tárolt adatok alapján. A szintaxis lehetővé teszi táblázat vagy indexelt nézet megadását a célindex nevével, statisztikájával vagy oszlopnevével együtt.
Fontos frissítések az SQL Server korábbi verzióiban:
Az SQL Server 2012 (11.x) Service Pack 1 csomagtól kezdve a sys.dm_db_stats_properties dinamikus felügyeleti nézet programozott módon lekérheti a nem növekményes statisztikák statisztikai objektumában található fejlécadatokat.
Az SQL Server 2014 (12.x) Service Pack 2 és az SQL Server 2012 (11.x) Service Pack 1 csomagtól kezdve a sys.dm_db_incremental_stats_properties dinamikus felügyeleti nézet programozott módon lekérheti a statisztikai objektum fejlécadatait a növekményes statisztikákhoz.
Az SQL Server 2016 (13.x) Service Pack 1 CU 2-től kezdve a sys.dm_db_stats_histogram dinamikus felügyeleti nézet programozott módon lekérheti a statisztikai objektumban található hisztogramadatokat.
-
Ezt a szintaxist az Azure Synapse Analytics kiszolgáló nélküli SQL-készlete nem támogatja.
A Microsoft Fabric Data Warehouse statisztikáiról további információt a Statisztika című témakörben talál.
Transact-SQL szintaxis konvenciói
Szintaxis
Szintaxis az SQL Serverhez, az Azure SQL Database-hez és az SQL Database-hez a Fabricben:
DBCC SHOW_STATISTICS ( table_or_indexed_view_name , target )
[ WITH [ NO_INFOMSGS ] < option > [ , ...n ] ]
< option > ::=
STAT_HEADER | DENSITY_VECTOR | HISTOGRAM | STATS_STREAM
[ ; ]
Az Azure Synapse Analytics, az Analytics Platform System (PDW) és a Microsoft Fabric Warehouse szintaxisa:
DBCC SHOW_STATISTICS ( table_name , target )
[ WITH { STAT_HEADER | DENSITY_VECTOR | HISTOGRAM } [ , ...n ] ]
[ ; ]
Érvek
table_or_indexed_view_name
Annak a táblázatnak vagy indexelt nézetnek a neve, amelyhez statisztikai adatokat szeretne megjeleníteni.
table_name
A megjelenítendő statisztikákat tartalmazó tábla neve. A tábla nem lehet külső tábla.
cél
Annak az indexnek, statisztikának vagy oszlopnak a neve, amelyhez statisztikai adatokat szeretne megjeleníteni. cél szögletes zárójelek, egyszeri idézőjelek, dupla idézőjelek vagy idézőjelek nélkül vannak megadva.
- Ha cél egy tábla vagy indexelt nézet meglévő indexének vagy statisztikájának neve, a rendszer visszaadja a célra vonatkozó statisztikai adatokat.
- Ha a cél egy meglévő oszlop neve, és egy automatikusan létrehozott statisztikai objektum található ezen az oszlopon, a rendszer visszaadja az automatikusan létrehozott statisztikai adatokat.
Ha nem létezik automatikusan létrehozott statisztika egy oszlopcélhoz, a rendszer a 2767-et jelző hibaüzenetet adja vissza.
Az Azure Synapse Analytics and Analytics Platform Systemben (PDW) cél nem lehet oszlopnév.
A Microsoft Fabric Warehouse-ban cél lehet egyoszlopos hisztogram-statisztika vagy oszlop neve. Ha egy oszlopnevet használ cél, ez a parancs csak az automatikusan létrehozott hisztogramstatisztikáról ad vissza terjesztési információkat. A manuálisan létrehozott hisztogram-statisztikák adatainak megtekintéséhez adja meg a statisztikai nevet cél.
NO_INFOMSGS
Letiltja a 0 és 10 közötti súlyossági szintű információs üzeneteket.
STAT_HEADER | DENSITY_VECTOR | HISZTOGRAM | STATS_STREAM [ , n ]
Egy vagy több beállítás megadása korlátozza az utasítás által visszaadott eredményhalmazokat a megadott beállításra vagy beállításokra. Ha nincs megadva beállítás, a rendszer minden statisztikai adatot visszaad.
STATS_STREAM csak tájékoztatási célokra van azonosítva. Nem támogatott. A jövőbeli kompatibilitás nem garantált.
Eredményhalmaz
Az alábbi táblázat a STAT_HEADER megadásakor visszaadott oszlopokat ismerteti.
| Oszlop neve | Leírás |
|---|---|
| Név | A statisztikai objektum neve. |
| Frissül | A statisztikák legutóbbi frissítésének dátuma és időpontja. A STATS_DATE függvény alternatív módon kéri le ezeket az információkat. További információt a lap Megjegyzések szakaszában talál. |
| Sorok | A táblázat vagy indexelt nézetben lévő sorok teljes száma a statisztikák legutóbbi frissítésekor. 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. További információ: Statistics. |
| Mintavételezett sorok | Statisztikai számításokhoz mintavételezett sorok teljes száma. Ha a mintául vett sorok < sorokat, a megjelenített hisztogram és sűrűség eredményei a mintául szolgáló sorok alapján lesznek megbecsülve. |
| Utaslépcső | A hisztogram lépéseinek száma. Minden lépés egy oszlopértéktartományra terjed ki, amelyet egy felső kötött oszlopérték követ. A hisztogram lépései a statisztika első kulcsoszlopán vannak definiálva. A lépések maximális száma 200. |
| Sűrűség | Számított 1/különböző értékek a statisztikai objektum első kulcsoszlopában lévő összes értékhez, kivéve a hisztogram határértékeit. Ezt a sűrűségértéket a Lekérdezésoptimalizáló nem használja, és az SQL Server 2008 (10.0.x) előtti verziókkal való kompatibilitás érdekében jelenik meg. |
| Kulcs átlagos hossza | Az értékenkénti bájtok átlagos száma a statisztikai objektum összes kulcsoszlopához. |
| Sztringindex | Igen, azt jelzi, hogy a statisztikai objektum sztringösszegző statisztikákat tartalmaz a LIKE operátort használó lekérdezési predikátumok számosságbecsléseinek javítása érdekében; például WHERE ProductName LIKE '%Bike'. A sztringösszegző statisztikák a hisztogramtól külön vannak tárolva, és a statisztikai objektum első kulcsoszlopán jönnek létre karakter, varchar, ncharnvarchar, varchar(max), nvarchar(max), szövegesvagy ntext.. |
| Kifejezés szűrése | A statisztikai objektumban szereplő táblázatsorok részhalmazának predikátuma.
NULL = nem szűrt statisztikák. A szűrt predikátumokról további információt a Szűrt indexek létrehozása című témakörben talál. A szűrt statisztikákról további információt a Statisztikacímű témakörben talál. |
| Szűretlen sorok | A szűrőkifejezés alkalmazása előtt a tábla sorainak teljes száma. Ha a szűrőkifejezés NULL, Unfiltered Rows egyenlő Rows. |
| Megőrzött mintaszázad | 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. A következőkre vonatkozik: SQL Server 2016 (13.x) Service Pack 1 CU 4 |
Az alábbi táblázat a megadott eredményhalmazban DENSITY_VECTOR visszaadott oszlopokat ismerteti.
| Oszlop neve | Leírás |
|---|---|
| Minden sűrűség | A sűrűség 1/különböző értékek. Az eredmények sűrűséget jelenítenek meg a statisztikai objektum egyes oszlopelőtagjaihoz, sűrűségenként egy sorhoz. A különálló értékek soronként és oszlopelőtagonként eltérő oszlopértékek. Ha például a statisztikai objektum kulcsoszlopokat (A, B, C) tartalmaz, az eredmények az egyes oszlopelőtagok különböző értéklistáinak sűrűségét jelentik: (A), (A,B) és (A, B, C). Az előtag (A, B, C) használatával mindegyik lista külön értéklista: (3, 5, 6), (4, 4, 6), (4, 5, 6), (4, 5, 7). Az előtag (A, B) használatával ugyanazok az oszlopértékek a következő különböző értéklistákat tartalmaznak: (3, 5), (4, 4) és (4, 5) |
| Átlagos hossz | Átlagos hossz bájtban az oszlopelőtag oszlopértékeinek tárolásához. Ha például a listában szereplő értékek (3, 5, 6) 4 bájtot igényelnek, a hossz 12 bájt. |
| Oszlopok | Azon oszlopok nevei az előtagban, amelyeknél az összes sűrűség és az átlagos hossz megjelenik. |
Az alábbi táblázat az eredményhalmazban a beállítás megadásakor HISTOGRAM visszaadott oszlopokat ismerteti.
| Oszlop neve | Leírás |
|---|---|
RANGE_HI_KEY |
Hisztogramlépés felső kötött oszlopértéke. Az oszlopértéket kulcsértéknek is nevezik. |
RANGE_ROWS |
Azon sorok becsült száma, amelyek oszlopértéke egy hisztogramlépésen belül esik, a felső korlát kivételével. |
EQ_ROWS |
Azon sorok becsült száma, amelyek oszlopértéke megegyezik a hisztogram lépés felső határával. |
DISTINCT_RANGE_ROWS |
A hisztogramlépésen belül eltérő oszlopértékkel rendelkező sorok becsült száma, a felső kötött kivételével. |
AVG_RANGE_ROWS |
Az ismétlődő oszlopértékekkel rendelkező sorok átlagos száma egy hisztogramlépésen belül, a felső kötött kivételével. Ha DISTINCT_RANGE_ROWS 0-nál nagyobb, AVG_RANGE_ROWS akkor a függvény a osztással RANGE_ROWSDISTINCT_RANGE_ROWSszámítja ki. Ha DISTINCT_RANGE_ROWS 0, AVG_RANGE_ROWS a hisztogram lépéshez 1 értéket ad vissza. |
Megjegyzések
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 updated oszlop is.NULL Ez a helyzet olyan szűrt statisztikák esetében, amelyeknél a predikátum nem ad vissza sorokat, vagy új üres táblákat.
Hisztogram
A hisztogram az adathalmaz minden egyes különböző értékének előfordulási gyakoriságát méri. A lekérdezésoptimalizáló kiszámítja a statisztikai objektum első kulcsoszlopában lévő oszlopértékek hisztogramját, az oszlopértékeket a sorok statisztikai mintavételezésével vagy a tábla vagy nézet összes sorának teljes vizsgálatával választja ki. Ha a hisztogram egy mintául szolgáló sorkészletből jön létre, a sorok számának és a különböző értékek számának tárolt összegei becslések, és nem kell egész egész számoknak lenniük.
A hisztogram létrehozásához a lekérdezésoptimalizáló rendezi az oszlopértékeket, kiszámítja az egyes oszlopértékeknek megfelelő értékek számát, majd az oszlopértékeket legfeljebb 200 összefüggő hisztogramlépésre összesíti. Minden lépés tartalmaz egy oszlopértéktartományt, majd egy felső kötött oszlopértéket. A tartomány magában foglalja a határértékek közötti összes lehetséges oszlopértéket, kivéve magukat a határértékeket. A rendezett oszlopértékek közül a legalacsonyabb az első hisztogramlépés felső határértéke.
Az alábbi ábrán egy hat lépésből áll a hisztogram. Az első felső határérték bal oldalán található terület az első lépés.
Minden hisztogram lépésnél:
- A félkövér vonal a felső határértéket (RANGE_HI_KEY) és az előfordulások számát (EQ_ROWS) jelöli.
- A RANGE_HI_KEY egyszínű területe az oszlopértékek tartományát és az egyes oszlopértékek előfordulásának átlagos számát (AVG_RANGE_ROWS) jelöli. Az első hisztogram lépés AVG_RANGE_ROWS mindig 0.
- A pontozott vonalak a tartomány különböző értékeinek teljes számának (DISTINCT_RANGE_ROWS) és a tartomány értékeinek teljes számának (RANGE_ROWS) becsléséhez használt mintaértékeket jelölik. A lekérdezésoptimalizáló RANGE_ROWS és DISTINCT_RANGE_ROWS használ a AVG_RANGE_ROWS kiszámításához, és nem tárolja a mintául szolgáló értékeket.
A lekérdezésoptimalizáló a hisztogram lépéseit a statisztikai pontosságuknak megfelelően határozza meg. Maximális különbségi algoritmussal minimalizálja a hisztogram lépéseinek számát, miközben maximalizálja a határértékek közötti különbséget. A lépések maximális száma 200. A hisztogram lépéseinek száma kisebb lehet, mint a különböző értékek száma, még a 200-nál kevesebb határponttal rendelkező oszlopok esetében is. Egy 100 különböző értékkel rendelkező oszlop például 100-nál kevesebb határponttal rendelkező hisztogrammal rendelkezhet.
Sűrűségvektor
A lekérdezésoptimalizáló sűrűségek használatával növeli a számosság becslését azon lekérdezések esetében, amelyek ugyanazon tábla vagy indexelt nézetben több oszlopot ad vissza. A sűrűségvektor egy sűrűséget tartalmaz a statisztikai objektum egyes oszlopelőtagjaihoz. Ha például egy statisztikai objektumban a kulcsoszlopok CustomerId, ItemId és Price, a sűrűség kiszámítása az alábbi oszlopelőtagok mindegyikén történik.
| Oszlopelőtag | Sűrűség számítása: |
|---|---|
(CustomerId) |
A CustomerId egyező értékeket tartalmazó sorok |
(CustomerId, ItemId) |
A CustomerId és ItemId egyező értékekkel rendelkező sorok |
(CustomerId, ItemId, Price) |
A CustomerId, ItemIdés Price egyező értékekkel rendelkező sorok |
Korlátozások
DBCC SHOW_STATISTICS nem ad statisztikai adatokat a térbeli indexekhez és a memóriaoptimalizált oszlopcentrikus indexekhez.
Az SQL Server és az SQL Database engedélyei
A statisztikai objektum megtekintéséhez a felhasználónak rendelkeznie kell SELECT engedéllyel a táblában.
A következő követelmények vonatkoznak arra, SELECT hogy az engedélyek elegendőek legyenek a parancs futtatásához:
- A felhasználóknak engedélyekkel kell rendelkezniük a statisztikai objektum összes oszlopához.
- A felhasználóknak engedéllyel kell rendelkezniük egy szűrőfeltétel összes oszlopára (ha van ilyen).
- A tábla nem rendelkezhet sorszintű biztonsági szabályzattal.
- Ha a statisztikai objektum bármelyik oszlopa dinamikus adatmaszkolási szabályokkal van elfedve, a
SELECTengedély mellett a felhasználónak rendelkeznie kell aUNMASKengedéllyel, vagy a db_ddladmin szerepkör tagjának kell lennie.
Az SQL Server 2012 (11.x) Service Pack 1 szervizcsomag előtti verziókban a felhasználónak rendelkeznie kell a táblával, vagy a felhasználónak tagja kell lennie a sysadmin rögzített kiszolgálói szerepkörnek, a db_owner rögzített adatbázis-szerepkörnek vagy a db_ddladmin rögzített adatbázis-szerepkörnek. Ha vissza szeretné változtatni a viselkedést az SQL Server 2012 előtti (11.x) Service Pack 1 viselkedésre, használja a 9485-ös nyomkövetési jelzőt.
A Microsoft Fabric Data Warehouse és az SQL Analytics végpontjának engedélyei
Ahhoz, hogy megtekinthesse a statisztikai objektumot a Fabric Data Warehouse-ban vagy az SQL Analytics-végpontban, a felhasználónak rendelkeznie kell a SELECT táblára vonatkozó engedéllyel, vagy a Viewer Fabric munkaterületi szerepkör tagjának vagy magasabb szerepkör-tagsággal kell rendelkeznie.
Engedélyek az Azure Synapse Analytics and Analytics Platform Systemhez (PDW)
DBCC SHOW_STATISTICS
SELECT engedélyt igényel a táblához vagy tagsághoz a sysadmin rögzített kiszolgálói szerepkörben, a db_owner rögzített adatbázis-szerepkörben vagy a db_ddladmin rögzített adatbázis-szerepkörben.
Az Azure Synapse Analytics and Analytics Platform System (PDW) korlátozásai és korlátozásai
DBCC SHOW_STATISTICS az Shell-adatbázisban a Control csomópont szintjén tárolt statisztikákat jeleníti meg. Nem jeleníti meg az SQL Server által automatikusan létrehozott statisztikákat a számítási csomópontokon.
DBCC SHOW_STATISTICS külső táblák nem támogatottak.
A Microsoft Fabric DBCC SHOW_STATISTICS Warehouse-ban csak a hisztogramstatisztikák eredményeit jeleníti meg, a statisztikákat nem ACE-* .
Példák: SQL Server, Azure SQL Database és SQL Database a Fabricben
Egy. Az összes statisztikai adat visszaadása
Az alábbi példa az AdventureWorks2025 adatbázis táblázatának indexének Person.Address összes statisztikai információját AK_Address_rowguid mutatja.
DBCC SHOW_STATISTICS ("Person.Address", AK_Address_rowguid);
GO
B. A HISZTOGRAM beállítás megadása
Ez a Customer_LastName megjelenített statisztikai adatokat a HISZTOGRAM-adatokra korlátozza.
DBCC SHOW_STATISTICS ("dbo.DimCustomer", Customer_LastName) WITH HISTOGRAM;
GO
Példák: Azure Synapse Analytics and Analytics Platform System (PDW)
C. Egy statisztikai objektum tartalmának megjelenítése
Az alábbi példa létrehoz egy statisztikai objektumot, majd megjeleníti a Customer_LastName statisztikáinak tartalmát a DimCustomer táblában az AdventureWorksPDW2022 mintaadatbázisban.
-- Uses AdventureWorksPDW
--First, create a statistics object
CREATE STATISTICS Customer_LastName
ON AdventureWorksPDW2012.dbo.DimCustomer (LastName);
GO
DBCC SHOW_STATISTICS ("dbo.DimCustomer", Customer_LastName);
GO
Az eredmények a fejlécet, a sűrűségvektort és a hisztogram egy részét mutatják.
Kapcsolódó tartalom
- Statisztika
- Statisztikák a Microsoft Fabric Adattárházban
- sys.dm_db_stats_properties (Transact-SQL)
- sys.dm_db_stats_histogram (Transact-SQL)
- sys.dm_db_incremental_stats_properties (Transact-SQL)
- INDEX LÉTREHOZÁSA (Transact-SQL)
- Statok létrehozása (Transact-SQL)
- DROP STATISZTIKÁK (Transact-SQL)
- sp_autostats (Transact-SQL)
- sp_createstats (Transact-SQL)
- STATS_DATE (Transact-SQL)
- STATISZTIKÁK FRISSÍTÉSE (Transact-SQL)