Udalosti
Pridajte sa k nám vo Vegas FabCon
31. 3., 23 - 2. 4., 23
Konečná udalosť pod vedením komunity služby Microsoft Fabric, Power BI, SQL a AI. Marec 31 až Apríl 2, 2025.
Zaregistrujte saTento prehliadač už nie je podporovaný.
Inovujte na Microsoft Edge a využívajte najnovšie funkcie, aktualizácie zabezpečenia a technickú podporu.
Vzťahuje sa na:✅ koncový bod analýzy SQL a sklad v službe Microsoft Fabric
Sklad v službe Microsoft Fabric používa nástroj dotazov na vytvorenie plánu vykonávania pre daný dotaz SQL. Keď odošlete dotaz, optimalizátor dotazov sa pokúsi vyčísliť všetky možné plány a vybrať najefektívnejšieho kandidáta. Ak chcete určiť, ktorý plán by si vyžadoval najmenej režijné náklady (I/O, procesor, pamäť), musí byť nástroj schopný vyhodnotiť množstvo práce alebo riadkov, ktoré môžu byť spracované na každom operátore. Na základe nákladov každého plánu potom vyberie ten, ktorý má najmenej odhadovanú prácu. Štatistické údaje sú objekty, ktoré obsahujú relevantné informácie o vašich údajoch, čo optimalizátoru dotazov umožňuje odhadnúť tieto náklady.
Na dosiahnutie optimálneho výkonu dotazu je dôležité mať presné štatistiky. Microsoft Fabric v súčasnosti podporuje nasledujúce cesty k relevantným a aktuálnym štatistikám:
V službe Microsoft Fabric je k dispozícii tradičná možnosť uchovávania štatistického stavu. Používatelia môžu vytvárať, aktualizovať a drop histogramom založenú na štatistike jedného stĺpca pomocou možností VYTVORIŤ ŠTATISTIKU, AKTUALIZOVAŤ ŠTATISTIKU A ŠTATISTIKU DROP. Používatelia môžu tiež zobraziť obsah štatistiky jedného stĺpca založenej na histograme pomocou SHOW_STATISTICS DBCC. V súčasnosti je podporovaná obmedzená verzia týchto príkazov.
Ak chcete vytvoriť štatistiku v tabuľke dbo.DimCustomer
založenú na všetkých riadkoch v stĺpci CustomerKey
:
CREATE STATISTICS DimCustomer_CustomerKey_FullScan
ON dbo.DimCustomer (CustomerKey) WITH FULLSCAN;
Ak chcete manuálne aktualizovať štatistický objekt DimCustomer_CustomerKey_FullScan
, možno po veľkej aktualizácii údajov:
UPDATE STATISTICS dbo.DimCustomer (DimCustomer_CustomerKey_FullScan) WITH FULLSCAN;
Zobrazenie informácií o objekte štatistiky:
DBCC SHOW_STATISTICS ("dbo.DimCustomer", "DimCustomer_CustomerKey_FullScan");
Ak chcete zobraziť iba informácie o histograme štatistického objektu:
DBCC SHOW_STATISTICS ("dbo.DimCustomer", "DimCustomer_CustomerKey_FullScan") WITH HISTOGRAM;
Manuálne zrušenie štatistického objektu DimCustomer_CustomerKey_FullScan
:
DROP STATISTICS dbo.DimCustomer.DimCustomer_CustomerKey_FullScan;
Nasledujúce objekty T-SQL možno použiť aj na kontrolu manuálne vytvorených aj automaticky vytvorených štatistík v službe Microsoft Fabric:
Vždy, keď vytvoríte dotaz a optimalizátor dotazov, ktoré si vyžadujú štatistiky na skúmanie plánu, microsoft Fabric tieto štatistiky automaticky vytvorí, ak ešte neexistujú. Po vytvorení štatistiky ich môže optimalizovať dotaz pri odhadovaní nákladov plánu spúšťacieho dotazu. Okrem toho ak nástroj dotazov určí, že existujúca štatistika relevantná pre dotaz už presne neodráža údaje, táto štatistika sa automaticky obnoví. Keďže tieto automatické operácie sa vykonávajú synchrónne, môžete očakávať, že trvanie dotazu zahrnie tentoraz, ak ešte neexistujú potrebné štatistiky alebo od posledného obnovenia štatistiky nastali významné zmeny údajov.
Existujú rôzne prípady, v ktorých môžete očakávať určitý typ automatických štatistík. Najbežnejšie sú štatistiky založené na histograme, ktoré požaduje optimalizátor dotazov pre stĺpce uvedené v stĺpcoch, na ktoré sa odkazuje v zoskupení BYs, JOIN, klauzuly DISTINCT, filtre (klauzuly WHERE) a ORDER BYs. Ak napríklad chcete zobraziť automatické vytvorenie týchto štatistík, dotaz spustí vytvorenie, ak štatistika COLUMN_NAME
ešte neexistuje. Napríklad:
SELECT <COLUMN_NAME>
FROM <YOUR_TABLE_NAME>
GROUP BY <COLUMN_NAME>;
V tomto prípade by ste mali očakávať, že sa vytvorili štatistiky COLUMN_NAME
. Ak by stĺpec bol tiež varchar column, zobrazili by sa tiež štatistiky priemernej dĺžky stĺpca. Ak chcete overiť, či sa automaticky vytvorili štatistiky, môžete spustiť nasledujúci dotaz:
select
object_name(s.object_id) AS [object_name],
c.name AS [column_name],
s.name AS [stats_name],
s.stats_id,
STATS_DATE(s.object_id, s.stats_id) AS [stats_update_date],
s.auto_created,
s.user_created,
s.stats_generation_method_desc
FROM sys.stats AS s
INNER JOIN sys.objects AS o
ON o.object_id = s.object_id
LEFT JOIN sys.stats_columns AS sc
ON s.object_id = sc.object_id
AND s.stats_id = sc.stats_id
LEFT JOIN sys.columns AS c
ON sc.object_id = c.object_id
AND c.column_id = sc.column_id
WHERE o.type = 'U' -- Only check for stats on user-tables
AND s.auto_created = 1
AND o.name = '<YOUR_TABLE_NAME>'
ORDER BY object_name, column_name;
Teraz môžete nájsť statistics_name
automaticky vygenerované štatistiky histogramu (malo by to byť niečo ako _WA_Sys_00000007_3B75D760
) a spustiť nasledujúci T-SQL:
DBCC SHOW_STATISTICS ('<YOUR_TABLE_NAME>', '<statistics_name>');
Napríklad:
DBCC SHOW_STATISTICS ('sales.FactInvoice', '_WA_Sys_00000007_3B75D760');
Hodnota Updated
v množine výsledkov databázy DBCC SHOW_STATISTICS by mala byť dátum (v UTC) podobný dátumu, ako keď ste spustili pôvodný dotaz GROUP BY.
Tieto automaticky generované štatistiky potom môže nástroj dotazov v následných dotazoch využiť na zlepšenie nákladov a efektivity vykonávania plánu. Ak v tabuľke dôjde k dostatočným zmenám, nástroj dotazov obnoví tieto štatistiky aj s cieľom zlepšiť optimalizáciu dotazu. Rovnaké cvičenie z predchádzajúcej ukážky je možné použiť po výraznej zmene tabuľky. V službe Fabric používa nástroj dotazov SQL na obnovenie štatistiky rovnakú rekompilaciu prahovú hodnotu ako SQL Server 2016 (13,x).
V službe Microsoft Fabric existuje niekoľko typov štatistík, ktoré nástroj automaticky vygeneruje na zlepšenie plánov dotazov. V súčasnosti sa nachádzajú v sys.stats , aj keď nie všetky sú užitočné:
_WA_Sys_
.ACE-AverageColumnLength_
.ACE-Cardinality
.Udalosti
Pridajte sa k nám vo Vegas FabCon
31. 3., 23 - 2. 4., 23
Konečná udalosť pod vedením komunity služby Microsoft Fabric, Power BI, SQL a AI. Marec 31 až Apríl 2, 2025.
Zaregistrujte sa