Del via


Spørringsinnsikt i datalager for stoff

Gjelder for:✅ SQL Analytics-endepunkt og Warehouse i Microsoft Fabric

I Microsoft Fabric er funksjonen for spørringsinnsikt en skalerbar, bærekraftig og utvidbar løsning for å forbedre SQL-analyseopplevelsen. Med historiske spørringsdata, aggregert innsikt og tilgang til faktisk spørringstekst kan du analysere og justere spørringsytelsen. QI gir informasjon om spørringer som bare kjøres i en brukers kontekst, systemspørringer vurderes ikke.

Funksjonen for spørringsinnsikt gir en sentral plassering for historiske spørringsdata og handlingsrettet innsikt i 30 dager, slik at du kan ta informerte beslutninger for å forbedre ytelsen til lageret eller SQL-analyseendepunktet. Når en SQL-spørring kjører i Microsoft Fabric, samler og konsoliderer spørringsinnsiktsfunksjonen utførelsesdataene, noe som gir deg verdifull informasjon. Du kan vise fullstendig spørringstekst for administrator-, medlems- og bidragsyterroller.

  • Historiske spørringsdata: Funksjonen for spørringsinnsikt lagrer historiske data om spørringskjøringer, slik at du kan spore ytelsesendringer over tid. Systemspørringer lagres ikke i spørringsinnsikt.
  • Aggregert innsikt: Funksjonen for spørringsinnsikt aggregerer spørringskjøringsdata til innsikter som er mer gjennomførbare, for eksempel identifisering av langvarige spørringer eller de fleste aktive brukere. Disse aggregasjonene er basert på spørringsfiguren. Hvis du vil ha mer informasjon, kan du se Hvordan aggregeres lignende spørringer for å generere innsikt?

Før du starter

Du bør ha tilgang til et SQL Analytics-endepunkt eller Warehouse i et premium kapasitetsområde med bidragsytere eller høyere tillatelser.

Når trenger du spørringsinnsikt?

Funksjonen for spørringsinnsikt tar for seg flere spørsmål og bekymringer knyttet til spørringsytelse og databaseoptimalisering, inkludert:

Spørringsytelsesanalyse

  • Hva er den historiske ytelsen til spørringene våre?
  • Er det noen langvarige spørringer som trenger oppmerksomhet?
  • Kan vi identifisere spørringene som forårsaker flaskehalser for ytelse?
  • Ble hurtigbuffer brukt for spørringene mine?
  • Hvilke spørringer bruker mest CPU?

Spørringsoptimalisering og justering

  • Hvilke spørringer kjøres ofte, og kan ytelsen forbedres?
  • Kan vi identifisere spørringer som har mislyktes eller blitt avbrutt?
  • Kan vi spore endringer i spørringsytelse over tid?
  • Er det noen spørringer som konsekvent yter dårlig?

Overvåking av brukeraktivitet

  • Hvem sendte inn en bestemt spørring?
  • Hvem er de mest aktive brukerne eller brukerne med de mest langvarige spørringene?

Det finnes tre systemvisninger for å gi svar på disse spørsmålene:

Hvor kan du se spørringsinnsikt?

Autogenererte visninger er under queryinsights skjemaet i SQL Analytics-endepunktet og Warehouse. Finn for eksempel spørringsinnsiktsvisninger under Skjemaer, spørringssyn, Visninger i Stoffutforsker for et lager.

Skjermbilde fra Fabric Explorer som viser hvor du finner spørringsinnsiktsvisninger under Skjemaer, spørringssyn, Visninger.

Når spørringen er fullført, ser du kjøringsdataene i queryinsights visningene til lager- eller SQL-analyseendepunktet du var koblet til. Hvis du kjører en spørring på tvers av WH_2databaser mens du er i konteksten til , vises spørringen i spørringsinnsikten til WH_2. Fullførte spørringer kan ta opptil 15 minutter å vises i spørringsinnsikt, avhengig av den samtidige arbeidsbelastningen som kjøres. Tiden det tar for spørringer å vises i spørringsinnsikt, øker med økning i samtidige spørringer som kjøres.

Hvordan aggregeres lignende spørringer for å generere innsikt?

Spørringer betraktes som de samme av spørringsinnsiktene hvis spørringene har samme figur, selv om predikatene kan være forskjellige.

Du kan bruke kolonnen i visningene til å analysere lignende spørringer og drille query hash ned til hver kjøring.

Følgende spørringer anses for eksempel som de samme etter at predikatene er parameteriserte:

SELECT * FROM Orders
WHERE OrderDate BETWEEN '1996-07-01' AND '1996-07-31';

og

SELECT * FROM Orders
WHERE OrderDate BETWEEN '2000-07-01' AND '2006-07-31';

Eksempler

Identifisere spørringer som kjøres av deg i løpet av de siste 30 minuttene

Følgende spørring bruker queryinsights.exec_requests_history og den innebygde USER_NAME() funksjonen, som returnerer gjeldende øktbrukernavn.

SELECT * FROM queryinsights.exec_requests_history 
WHERE start_time >= DATEADD(MINUTE, -30, GETUTCDATE())
AND login_name = USER_NAME();

Identifiser øverste CPU-forbrukerspørringer etter CPU-tid

Følgende spørring returnerer de 100 beste spørringene etter tildelt CPU-tid.

SELECT TOP 100 distributed_statement_id, query_hash, allocated_cpu_time_ms, label, command
FROM queryinsights.exec_requests_history
ORDER BY allocated_cpu_time_ms DESC;

Identifiser hvilke spørringer som skanner de fleste data fra ekstern i stedet for hurtigbuffer

Du kan finne ut om den store dataskanningen under kjøring av spørringen reduserer spørringen og tar avgjørelser om å justere spørringskoden tilsvarende. Denne analysen lar deg sammenligne ulike kjøringer av spørringer og identifisere om variansen i mengden data som skannes, er årsaken til ytelsesendringer.

I tillegg kan du vurdere bruken av hurtigbufferen ved å undersøke summen av data_scanned_memory_mb og data_scanned_disk_mb, og sammenligne den data_scanned_remote_storage_mb med for tidligere kjøringer.

Merk

Dataskannerte verdier tar kanskje ikke hensyn til dataene som flyttes i de mellomliggende fasene av kjøring av spørringer. I noen tilfeller kan størrelsen på dataene som er flyttet og prosessoren som kreves for å behandle, være større enn den skannede dataverdien indikerer.

SELECT distributed_statement_id, query_hash, data_scanned_remote_storage_mb, data_scanned_memory_mb, data_scanned_disk_mb, label, command
FROM queryinsights.exec_requests_history
ORDER BY data_scanned_remote_storage_mb DESC;

Identifisere spørringer som kjører oftest ved hjelp av en delstreng i spørringsteksten

Følgende spørring returnerer de nyeste spørringene som samsvarer med en bestemt streng, sortert etter antall vellykkede kjøringer synkende.

SELECT * FROM queryinsights.frequently_run_queries
WHERE last_run_command LIKE '%<some_label>%'
ORDER BY number_of_successful_runs DESC;

Identifisere langvarige spørringer ved hjelp av en delstreng i spørringsteksten

Følgende spørring returnerer spørringene som samsvarer med en bestemt streng, sortert etter median spørringskjøringstid synkende.

SELECT * FROM queryinsights.long_running_queries
WHERE last_run_command LIKE '%<some_label>%'
ORDER BY median_total_elapsed_time_ms DESC;