Fabric-tietovaraston tilastotiedot
Koskee:✅ SQL-analytiikan päätepiste ja Microsoft Fabric -varasto
Microsoft Fabricin varasto käyttää kyselymoduulia tietyn SQL-kyselyn suoritussuunnitelman luomiseen. Kun lähetät kyselyn, kyselyn optimoija yrittää luetteloida kaikki mahdolliset palvelupaketit ja valita tehokkaimman ehdokkaan. Määrittääkseen, mikä suunnitelma edellyttäisi pienintä yleiskustannuksia (I/O, suoritin, muisti), moduulin on pystyttävä arvioimaan kullakin operaattorilla mahdollisesti käsiteltävän työn tai rivien määrä. Kunkin palvelupaketin kustannusten perusteella se valitsee sitten sen, jossa on pienin arvioitu työmäärä. Tilastotiedot ovat objekteja, jotka sisältävät merkityksellisiä tietoja tiedoistasi, jotta kyselyoptimointi voi arvioida nämä kustannukset.
Tilastotietojen käyttäminen
Jotta kyselyiden suorituskyky olisi optimaalinen, on tärkeää saada tarkat tilastotiedot. Microsoft Fabric tukee tällä hetkellä seuraavia polkuja asianmukaisten ja ajantasaisten tilastotietojen tarjoamiseen:
- Käyttäjän määrittämät tilastotiedot
- Käyttäjä käyttää DDL-syntaksia manuaalisesti tilastotietojen luomiseen, päivittämiseen ja pudottamiseen
- Automaattiset tilastotiedot
- Moduuli luo ja ylläpitää tilastotietoja automaattisesti kyselyn aikana
Manuaaliset tilastotiedot kaikille taulukoille
Microsoft Fabric tarjoaa perinteisen vaihtoehdon tilastojen terveyden ylläpitoon. Käyttäjät voivat luoda, päivittää ja pudottaa histogrammipohjaisia yksisarakkeisia tilastotietoja tilastotietojen luonnin tilastotietojen, PÄIVITYSTILASTOJEN ja PUDOTUSTILASTOJEN avulla. Käyttäjät voivat myös tarkastella histogrammipohjaisten yksisarakkeisten tilastotietojen sisältöä DBCC SHOW_STATISTICS. Tällä hetkellä näiden lausekkeiden rajoitettua versiota tuetaan.
- Jos luot tilastotietoja manuaalisesti, harkitse keskittymistä sarakkeisiin, joita käytetään paljon kyselyn kuormituksessa (erityisesti RYHMÄN BYs, ORDER BYs, suodattimet ja JOIN-suodattimet).
- Harkitse saraketason tilastotietojen päivittämistä säännöllisesti sen jälkeen, kun tiedot ovat muuttuneet, mikä muuttaa huomattavasti rivimäärää tai tietojen jakautumista.
Esimerkkejä manuaalisten tilastojen ylläpidosta
Tilastotietojen luominen taulukosta dbo.DimCustomer
kaikkien sarakkeen CustomerKey
rivien perusteella:
CREATE STATISTICS DimCustomer_CustomerKey_FullScan
ON dbo.DimCustomer (CustomerKey) WITH FULLSCAN;
Tilasto-objektin DimCustomer_CustomerKey_FullScan
manuaalinen päivittäminen:
UPDATE STATISTICS dbo.DimCustomer (DimCustomer_CustomerKey_FullScan) WITH FULLSCAN;
Tilasto-objektin tietojen näyttäminen:
DBCC SHOW_STATISTICS ("dbo.DimCustomer", "DimCustomer_CustomerKey_FullScan");
Näytä vain tilasto-objektin histogrammitiedot seuraavasti:
DBCC SHOW_STATISTICS ("dbo.DimCustomer", "DimCustomer_CustomerKey_FullScan") WITH HISTOGRAM;
Tilasto-objektin DimCustomer_CustomerKey_FullScan
manuaalinen pudottaminen:
DROP STATISTICS dbo.DimCustomer.DimCustomer_CustomerKey_FullScan;
Seuraavien T-SQL-objektien avulla voidaan myös tarkistaa sekä manuaalisesti luodut että automaattisesti luodut tilastotiedot Microsoft Fabricissa:
- sys.stats-luettelonäkymä
- luettelonäkymän sys.stats_columns
- STATS_DATE system-funktio
Kyselyn automaattiset tilastotiedot
Aina, kun teet kyselyn ja kyselyoptimointi edellyttää tilastotietoja suunnitelmatutkimusta varten, Microsoft Fabric luo nämä tilastot automaattisesti, jos niitä ei vielä ole olemassa. Kun tilastotiedot on luotu, kyselyoptimointitoiminto voi hyödyntää niitä käynnistävän kyselyn suunnitelmakustannusten arvioinnissa. Lisäksi jos kyselymoduuli määrittää, että kyselyn kannalta olennaiset olemassa olevat tilastotiedot eivät enää vastaa tarkasti tietoja, nämä tilastot päivitetään automaattisesti. Koska nämä automaattiset toiminnot tehdään synkronisesti, voit odottaa kyselyn keston sisältävän tämän ajan, jos tarvittavia tilastoja ei vielä ole olemassa tai merkittäviä tietojen muutoksia on tapahtunut viimeisimmän tilastopäivityksen jälkeen.
Tarkista automaattiset tilastotiedot kyselyn aikana
Joissakin tapauksissa saatat odottaa joitain automaattisia tilastoja. Yleisimpiä ovat histogrammipohjaiset tilastotiedot, joita kyselyn optimointitoiminto pyytää sarakkeille, joihin viitataan group BYs-, JOIN-, DISTINCT-lauseiden, suodattimien (WHERE-lauseet) ja ORDER BYs -lauseiden muodossa. Jos esimerkiksi haluat nähdä näiden tilastotietojen automaattisen luonnin, kysely käynnistää luonnin, jos tilastoja COLUMN_NAME
ei vielä ole olemassa. Esimerkkejä:
SELECT <COLUMN_NAME>
FROM <YOUR_TABLE_NAME>
GROUP BY <COLUMN_NAME>;
Tässä tapauksessa sinun kannattaa odottaa, että tilastotiedot COLUMN_NAME
on luotu. Jos sarake olisi myös varchar-sarake, sarakkeen keskimääräinen pituustilasto olisi myös luotu. Jos haluat vahvistaa, että tilastotiedot on luotu automaattisesti, voit suorittaa seuraavan kyselyn:
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;
Nyt voit löytää statistics_name
automaattisesti muodostetun histogrammitilaston (pitäisi olla esimerkiksi _WA_Sys_00000007_3B75D760
) ja suorittaa seuraavan T-SQL:n:
DBCC SHOW_STATISTICS ('<YOUR_TABLE_NAME>', '<statistics_name>');
Esimerkkejä:
DBCC SHOW_STATISTICS ('sales.FactInvoice', '_WA_Sys_00000007_3B75D760');
Updated
DBCC SHOW_STATISTICS tulosjoukon arvon on oltava päivämäärä (UTC-alueella) samaan tapaan kuin suorittaessasi alkuperäisen GROUP BY -kyselyn.
Näitä automaattisesti luotuja tilastotietoja voidaan sitten hyödyntää seuraavissa kyselyissä kyselymoduulissa suunnittelun kustannusten ja suorituksen tehokkuuden parantamiseksi. Jos taulukossa tapahtuu tarpeeksi muutoksia, kyselymoduuli päivittää myös nämä tilastotiedot kyselyiden optimoinnin parantamiseksi. Sama aiempi malliharjoitus voidaan ottaa käyttöön, kun taulukkoa on muutettu huomattavasti. Fabricissa SQL-kyselymoduuli käyttää samaa jälleenmäydentämiskynnystä kuin SQL Server 2016 (13.x) tilastotietojen päivittämiseen.
Automaattisesti luotujen tilastotietojen tyypit
Microsoft Fabricissa on useita erityyppisiä tilastoja, jotka moduuli luo automaattisesti kyselysuunnitelmien parantamiseksi. Tällä hetkellä ne löytyvät sys.stats-tiedostoista , vaikka kaikki eivät ole toiminnallisia:
- Histogrammin tilastotiedot
- Luotu saraketta kohden, joka tarvitsee histogrammitilastoja kyselyn aikana
- Nämä objektit sisältävät histogrammia ja tiheyden tietoja tietyn sarakkeen jakautumisesta. Vastaavat tilastotiedot, jotka luotiin automaattisesti kyselyn aikana Azure Synapse Analyticsin erillisissä varannoissa.
- Nimi alkaa merkkijonolla
_WA_Sys_
. - Sisältöä voi tarkastella DBCC SHOW_STATISTICS
- Sarakkeen keskimääräinen pituustilasto
- Luotu muuttujan merkkisarakkeille (varchar), jotka ovat suurempia kuin 100, jotka tarvitsevat sarakkeen keskimääräisen pituuden kyselyn aikana.
- Nämä objektit sisältävät arvon, joka edustaa varchar-sarakkeen keskimääräistä rivikokoa tilastotietojen luomishetkellä.
- Nimi alkaa merkkijonolla
ACE-AverageColumnLength_
. - Sisältöä ei voi tarkastella, eikä käyttäjä voi käsitellä sitä.
- Taulukkopohjaiset kardinaliteettitilastot
- Luotu per taulukko, joka tarvitsee kardinaliteettiarvion kyselyn aikana.
- Nämä objektit sisältävät arvion taulukon rivimäärästä.
- Nimetty
ACE-Cardinality
. - Sisältöä ei voi tarkastella, eikä käyttäjä voi käsitellä sitä.
Rajoitukset
- Vain yhden sarakkeen histogrammitilastoja voidaan luoda ja muokata manuaalisesti.
- Monisarakkeisten tilastojen luomista ei tueta.
- Muut tilasto-objektit saattavat näkyä sys.stats-tiedostoissa lukuun ottamatta manuaalisesti luotuja tilastoja ja automaattisesti luotuja tilastotietoja. Näitä objekteja ei käytetä kyselyn optimoinnissa.