Delen via


Query's uitvoeren op inzichten in Fabric-datawarehousing

Van toepassing op:✅ SQL Analytics-eindpunt en -magazijn in Microsoft Fabric

In Microsoft Fabric is de functie queryinzichten een schaalbare, duurzame en uitbreidbare oplossing om de SQL-analyse-ervaring te verbeteren. Met historische querygegevens, geaggregeerde inzichten en toegang tot werkelijke querytekst kunt u uw queryprestaties analyseren en afstemmen. QI biedt informatie over query's die alleen worden uitgevoerd in de context van een gebruiker. Systeemquery's worden niet overwogen.

De functie queryinzichten biedt een centrale locatie voor historische querygegevens en bruikbare inzichten gedurende 30 dagen, zodat u weloverwogen beslissingen kunt nemen om de prestaties van uw warehouse- of SQL-analyse-eindpunt te verbeteren. Wanneer een SQL-query wordt uitgevoerd in Microsoft Fabric, verzamelt en consolideert de functie queryinzichten de uitvoeringsgegevens, zodat u waardevolle informatie krijgt. U kunt volledige querytekst weergeven voor de rollen Beheerder, Lid en Inzender.

  • Historische querygegevens: met de functie queryinzichten worden historische gegevens over queryuitvoeringen opgeslagen, zodat u in de loop van de tijd prestatiewijzigingen kunt bijhouden. Systeemquery's worden niet opgeslagen in query-inzichten.
  • Geaggregeerde inzichten: Met de functie queryinzichten worden queryuitvoeringsgegevens samengevoegd tot inzichten die beter kunnen worden uitgevoerd, zoals het identificeren van langlopende query's of de meeste actieve gebruikers. Deze aggregaties zijn gebaseerd op de queryshape. Zie Hoe worden vergelijkbare query's samengevoegd om inzichten te genereren voor meer informatie?

Voordat u begint

U moet toegang hebben tot een SQL-analyse-eindpunt of -warehouse binnen een Premium-capaciteitswerkruimte met inzender- of hogere machtigingen.

Wanneer hebt u query-inzichten nodig?

De functie queryinzichten heeft betrekking op verschillende vragen en problemen met betrekking tot queryprestaties en databaseoptimalisatie, waaronder:

Analyse van queryprestaties

  • Wat zijn de historische prestaties van onze query's?
  • Zijn er langlopende query's die aandacht nodig hebben?
  • Kunnen we de query's identificeren die prestatieknelpunten veroorzaken?
  • Is de cache gebruikt voor mijn query's?
  • Welke query's verbruiken de meeste CPU?

Queryoptimalisatie en -afstemming

  • Welke query's worden vaak uitgevoerd en kunnen de prestaties worden verbeterd?
  • Kunnen we query's identificeren die zijn mislukt of geannuleerd?
  • Kunnen we wijzigingen in queryprestaties in de loop van de tijd bijhouden?
  • Zijn er query's die consistent slecht presteren?

Bewaking van gebruikersactiviteiten

  • Wie heeft een bepaalde query ingediend?
  • Wie zijn de meest actieve gebruikers of de gebruikers met de meest langlopende query's?

Er zijn drie systeemweergaven om antwoord te geven op deze vragen:

Waar kunt u query-inzichten zien?

Automatisch gegenereerde weergaven bevinden zich onder het schema in het queryinsights SQL Analytics-eindpunt en Warehouse. Zoek in Fabric Explorer van een magazijn bijvoorbeeld queryinzichtweergaven onder Schema's, queryinsights, Weergaven.

Schermopname van Fabric Explorer waarin wordt getoond waar u query-inzichten kunt vinden onder Schema's, queryinsights, Weergaven.

Nadat de uitvoering van uw query is voltooid, ziet u de uitvoeringsgegevens in de queryinsights weergaven van het warehouse- of SQL-analyse-eindpunt waaraan u bent verbonden. Als u een query voor meerdere databases uitvoert in de context van WH_2, wordt uw query weergegeven in de queryinzichten van WH_2. Het kan tot 15 minuten duren voordat voltooide query's worden weergegeven in queryinzichten, afhankelijk van de gelijktijdige workload die wordt uitgevoerd. De tijd die nodig is om query's weer te geven in queryinzichten, neemt toe met een toename in gelijktijdige query's die worden uitgevoerd.

Hoe worden vergelijkbare query's samengevoegd om inzichten te genereren?

Query's worden door de Query Insights als dezelfde vorm beschouwd als de query's dezelfde vorm hebben, zelfs als de predicaten mogelijk anders zijn.

U kunt de query hash kolom in de weergaven gebruiken om vergelijkbare query's te analyseren en in te zoomen op elke uitvoering.

De volgende query's worden bijvoorbeeld als hetzelfde beschouwd nadat hun predicaten zijn geparameteriseerd:

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

en

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

Voorbeelden

Identificeer query's die in de afgelopen 30 minuten door u worden uitgevoerd

De volgende query gebruikt queryinsights.exec_requests_history en de ingebouwde USER_NAME() functie, die de gebruikersnaam van uw huidige sessie retourneert.

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

Belangrijkste CPU-verbruiksquery's identificeren op CPU-tijd

De volgende query retourneert de top 100 query's op basis van de toegewezen CPU-tijd.

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;

Bepalen welke query's de meeste gegevens scannen van externe in plaats van cache

U kunt bepalen of het scannen van grote gegevens tijdens het uitvoeren van query's uw query vertraagt en beslissingen neemt om uw querycode dienovereenkomstig aan te passen. Met deze analyse kunt u verschillende queryuitvoeringen vergelijken en bepalen of de variantie in de hoeveelheid gescande gegevens de reden is voor prestatiewijzigingen.

Bovendien kunt u het gebruik van cache beoordelen door de som van data_scanned_memory_mb en data_scanned_disk_mb, en te vergelijken met de data_scanned_remote_storage_mb eerdere uitvoeringen.

Notitie

De gescande gegevens kunnen de gegevens die tijdens de tussenliggende fasen van de uitvoering van de query zijn verplaatst, mogelijk niet meemaken. In sommige gevallen kan de grootte van de verplaatste gegevens en de CPU die nodig is om te worden verwerkt, groter zijn dan de gescande gegevenswaarde aangeeft.

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;

De meest frequent uitgevoerde query's identificeren met behulp van een subtekenreeks in de querytekst

De volgende query retourneert de meest recente query's die overeenkomen met een bepaalde tekenreeks, gesorteerd op het aantal geslaagde uitvoeringen aflopend.

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

Langlopende query's identificeren met behulp van een subtekenreeks in de querytekst

De volgende query retourneert de query's die overeenkomen met een bepaalde tekenreeks, gesorteerd op de uitvoeringstijd van de mediaanquery, aflopend.

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