Dela via


Fråga efter insikter i informationslager för infrastrukturresurser

Gäller för: SQL-analysslutpunkt och lager i Microsoft Fabric

I Microsoft Fabric är frågeinsiktsfunktionen en skalbar, hållbar och utökningsbar lösning för att förbättra SQL-analysupplevelsen. Med historiska frågedata, aggregerade insikter och åtkomst till faktisk frågetext kan du analysera och finjustera frågeprestandan. QI innehåller information om frågor som endast körs i en användares kontext, systemfrågor beaktas inte.

Funktionen frågeinsikter ger en central plats för historiska frågedata och användbara insikter i 30 dagar, vilket hjälper dig att fatta välgrundade beslut för att förbättra prestandan för din lager- eller SQL-analysslutpunkt. När en SQL-fråga körs i Microsoft Fabric samlar frågeinsiktsfunktionen in och konsoliderar sina körningsdata, vilket ger dig värdefull information. Du kan visa fullständig frågetext för administratörs-, medlems- och deltagarroller.

  • Historiska frågedata: Funktionen frågeinsikter lagrar historiska data om frågekörningar så att du kan spåra prestandaändringar över tid. Systemfrågor lagras inte i frågeinsikter.
  • Aggregerade insikter: Frågeinsiktsfunktionen aggregerar frågekörningsdata till insikter som är mer användbara, till exempel att identifiera långvariga frågor eller de flesta aktiva användare. Dessa sammansättningar baseras på frågeformen och beskrivs ytterligare i Hur aggregeras liknande frågor för att generera insikter?.

Innan du börjar

Du bör ha åtkomst till en SQL-analysslutpunkt eller ett lager i en Arbetsyta för Premium-kapacitet med deltagare eller högre behörigheter.

När behöver du frågeinsikter?

Funktionen query insights tar upp flera frågor och problem som rör frågeprestanda och databasoptimering, inklusive:

Frågeprestandaanalys

  • Vad är den historiska prestandan för våra frågor?
  • Finns det några långvariga frågor som behöver åtgärdas?
  • Kan vi identifiera de frågor som orsakar flaskhalsar i prestanda?

Frågeoptimering och justering

  • Vilka frågor körs ofta och kan deras prestanda förbättras?
  • Kan vi identifiera frågor som har misslyckats eller avbrutits?
  • Kan vi spåra ändringar i frågeprestanda över tid?
  • Finns det några frågor som konsekvent presterar dåligt?

Övervakning av användaraktivitet

  • Vem skickade en viss fråga?
  • Vilka är de mest aktiva användarna eller de användare som har de mest långvariga frågorna?

Det finns tre systemvyer som ger svar på dessa frågor:

Var kan du se frågeinsikter?

Autogenererade vyer finns under queryinsights schemat i SQL Analytics-slutpunkten och warehouse. I Infrastrukturutforskaren i ett lager hittar du till exempel frågeinsiktsvyer under Scheman, queryinsights, Views.

Skärmbild från Infrastrukturutforskaren som visar var du hittar vyer för frågeinsikter under Scheman, queryinsights, Vyer.

När frågan har slutfört körningen ser du dess körningsdata i vyerna queryinsights för den slutpunkt för lager- eller SQL-analys som du var ansluten till. Om du kör en fråga mellan databaser i kontexten för WH_2visas frågan i frågeinsikterna WH_2i . Slutförda frågor kan ta upp till 15 minuter att visas i frågeinsikter beroende på den samtidiga arbetsbelastning som körs. Den tid det tar för frågor att visas i frågeinsikter ökar med en ökning av samtidiga frågor som körs.

Hur aggregeras liknande frågor för att generera insikter?

Frågor anses vara desamma av funktionen query insights om två frågor har en exakt matchning i frågetexten, förutom predikatvärde. Blanksteg och nya radtecken gör att frågorna betraktas som olika.

Du kan använda query hash kolumnen i vyerna för att analysera liknande frågor och öka detaljnivån för varje körning.

Följande frågor anses till exempel vara desamma när deras predikat parametriseras:

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

och

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

Exempel

Identifiera frågor som du har kört under de senaste 30 minuterna

Följande fråga använder queryinsights.exec_requests_history och den inbyggda USER_NAME() funktionen, som returnerar ditt aktuella sessionsanvändarnamn.

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

Identifiera de frågor som körs oftast med hjälp av en delsträng i frågetexten

Följande fråga returnerar de senaste frågorna som matchar en viss sträng, ordnade efter antalet lyckade körningar som fallande.

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

Identifiera långvariga frågor med hjälp av en delsträng i frågetexten

Följande fråga returnerar de frågor som matchar en viss sträng, ordnade efter den fallande mediankörningstiden för frågan.

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