Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für:✅ SQL-Analyseendpunkt und Warehouse in Microsoft Fabric
In Microsoft Fabric ist das Abfrageerkenntnisse-Feature eine skalierbare, nachhaltige und erweiterbare Lösung, um die SQL-Analyseerfahrung zu verbessern. Mit historischen Abfragedaten, aggregierten Erkenntnissen und Zugriff auf tatsächlichen Abfragetext können Sie die Abfrageleistung analysieren und optimieren. QI stellt Nur Informationen zu Abfragen bereit, die im Kontext eines Benutzers ausgeführt werden, Systemabfragen werden nicht berücksichtigt.
Das Abfrageerkenntnisse-Feature bietet einen zentralen Ort für historische Abfragedaten und umsetzbare Einblicke für 30 Tage und hilft Ihnen dabei, fundierte Entscheidungen zu treffen, um die Leistung Ihres Warehouse- oder SQL-Analyseendpunkts zu verbessern. Wenn eine SQL-Abfrage in Microsoft Fabric ausgeführt wird, sammelt und konsolidiert das Abfrageerkenntnisse-Feature ihre Ausführungsdaten, sodass Sie wertvolle Informationen erhalten. Sie können den vollständigen Abfragetext für Administrator-, Mitglieds- und Mitwirkendenrollen anzeigen.
- Historische Abfragedaten: Abfrageeinblicke speichert historische Daten zu Abfrageausführungen, sodass Sie Leistungsänderungen im Laufe der Zeit nachverfolgen können. Systemabfragen werden nicht in Abfrageerkenntnissen gespeichert.
- Aggregierte Einblicke: Query Insights aggregiert Abfrageausführungsdaten in Erkenntnisse, die umsetzbarer sind, z. B. das Identifizieren langer Ausgeführter Abfragen oder die meisten aktiven Benutzer. Diese Aggregationen basieren auf der Abfrageform. Weitere Informationen finden Sie unter Wie werden ähnliche Abfragen aggregiert, um Erkenntnisse zu generieren?
-
Warehouse Insights: Um den Gesamtzustand Ihres Lagers zu erfassen, verwenden Sie die
sql_pool_insightsAnsicht. Diese Ansicht bietet Metriken und Druckindikatoren auf Poolebene, die Ihnen dabei helfen, Die Ressourcenzuordnung zu überwachen und Leistungsprobleme über Pools hinweg zu diagnostizieren.
Voraussetzungen
Sie benötigen Zugriff auf einen SQL-Analyseendpunkt oder ein Warehouse in einem Arbeitsbereich mit Premium-Kapazität und mindestens der Berechtigung Mitwirkender.
Wann benötigen Sie Abfrageerkenntnisse?
Das Abfrageerkenntnisse-Feature befasst sich mit verschiedenen Fragen und Problemen im Zusammenhang mit der Abfrageleistung und Datenbankoptimierung, darunter:
Abfrageleistungsanalyse
- Was ist die historische Leistung unserer Abfragen?
- Gibt es zeitintensive Abfragen, die Aufmerksamkeit benötigen?
- Können wir die Abfragen identifizieren, die Leistungsengpässe verursachen?
- Wurde der Cache für meine Abfragen verwendet?
- Welche Abfragen verbrauchen die meiste CPU?
Abfrageoptimierung und Abstimmung
- Welche Abfragen werden häufig ausgeführt, und lässt sich ihre Leistung verbessern?
- Können wir Abfragen identifizieren, die fehlgeschlagen sind oder abgebrochen wurden?
- Können Änderungen der Abfrageleistung im Laufe der Zeit nachverfolgt werden?
- Gibt es Abfragen, die konsistent schlechte Leistung bringen?
Überwachung von Benutzeraktivitäten
- Wer hat eine bestimmte Abfrage übermittelt?
- Wer sind die aktivsten Benutzer oder die Benutzer mit den zeitintensivsten Abfragen?
SQL-Pool und Ressourcenüberwachung
- War mein SQL-Pool während der Abfrageausführung unter Druck?
- Wie oft hat der Pool in den letzten 24 Stunden Druck erlebt?
- Wurden kürzlich Änderungen an der Arbeitsbereichskapazität oder poolkonfiguration vorgenommen?
- Welche Pools verbrauchen den höchsten Prozentsatz der Ressourcen?
- Kann ich Druckereignisse mit langsam ausgeführten Abfragen korrelieren?
- Wie kann ich Trends im Pooldruck im Laufe der Zeit erkennen?
Die folgenden Systemansichten bieten Antworten auf diese Fragen:
queryinsights.exec_requests_history
- Gibt Informationen zu jeder abgeschlossenen SQL-Anforderung/Abfrage zurück.
queryinsights.exec_sessions_history
- Gibt Informationen zu abgeschlossenen Sitzungen zurück.
queryinsights.long_running_queries
- Gibt die Informationen zu Abfragen nach Abfrageausführungszeit zurück.
queryinsights.häufig_laufende_abfragen
- Gibt Informationen zu häufig ausgeführten Abfragen zurück.
queryinsights.sql_pool_insights
- Gibt Informationen zur Lagerressourcenzuordnung, Konfigurationsänderungen und Druck zurück.
Wo werden Abfrageerkenntnisse angezeigt?
Automatisch generierte Ansichten befinden sich unter dem queryinsights-Schema im SQL-Analyseendpunkt und Warehouse. Suchen Sie z. B. im Fabric Explorer eines Warehouse Abfrageerkenntnisse unter Schemas, queryinsights, Ansichten.
Nach dem Ausführung Ihrer Abfrage abgeschlossen ist, werden die entsprechenden Ausführungsdaten in den queryinsights-Ansichten des Warehouse oder SQL-Analyseendpunkts angezeigt, mit dem eine Verbindung hergestellt wurde. Wenn Sie eine datenbankübergreifende Abfrage im Kontext von WH_2 ausführen, erscheint Ihre Abfrage in den Abfrageerkenntnissen von WH_2. Es kann bis zu 15 Minuten dauern, bis abgeschlossene Abfragen in den Abfrageerkenntnissen angezeigt werden, je nachdem, welche gleichzeitige Workload ausgeführt wird. Die Zeit für Abfragen, die in Abfrageerkenntnissen angezeigt werden, erhöht sich mit der Zunahme gleichzeitiger Abfragen, die ausgeführt werden.
Wie werden ähnliche Abfragen aggregiert, um Erkenntnisse zu generieren?
Abfragen werden von den Abfrageerkenntnissen als identisch betrachtet, wenn die Abfragen dasselbe Shape aufweisen, auch wenn die Prädikate möglicherweise unterschiedlich sind.
Sie können die query hash- Spalte in den Ansichten verwenden, um ähnliche Abfragen zu analysieren und einen Drilldown zu jeder Ausführung veranlassen.
Beispielsweise werden die folgenden Abfragen nach der Parametrisierung ihrer Prädikate als identisch betrachtet:
SELECT * FROM Orders
WHERE OrderDate BETWEEN '1996-07-01' AND '1996-07-31';
and
SELECT * FROM Orders
WHERE OrderDate BETWEEN '2000-07-01' AND '2006-07-31';
Beispiele
Identifizieren von Abfragen, die von Ihnen in den letzten 30 Minuten ausgeführt wurden
Die folgende Abfrage verwendet queryinsights.exec_requests_history und die integrierte USER_NAME()-Funktion, die Ihren aktuellen Sitzungsbenutzernamen zurückgibt.
SELECT * FROM queryinsights.exec_requests_history
WHERE start_time >= DATEADD(MINUTE, -30, GETUTCDATE())
AND login_name = USER_NAME();
Ermitteln der Abfragen, die am meisten CPU verbrauchen nach CPU-Zeit
Die folgende Abfrage gibt die 100 wichtigsten Abfragen nach zugeordneter CPU-Zeit zurück.
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;
Ermitteln, welche Abfragen die meisten Daten remote scannen statt zwischenzuspeichern
Sie können feststellen, ob die Überprüfung großer Datenmengen während der Abfrageausführung ihre Abfrage verlangsamt und Entscheidungen treffen, um den Abfragecode entsprechend zu optimieren. Mit dieser Analyse können Sie verschiedene Abfrageausführungen vergleichen und ermitteln, ob die Varianz der gescannten Datenmenge der Grund für Leistungsänderungen ist.
Darüber hinaus können Sie die Verwendung des Caches bewerten, indem Sie die Summe der data_scanned_memory_mb und data_scanned_disk_mb untersuchen und mit der data_scanned_remote_storage_mb für frühere Ausführungen vergleichen.
Hinweis
Die gescannten Daten berücksichtigen möglicherweise nicht die Daten, die während der Zwischenphasen der Abfrageausführung verschoben wurden. In einigen Fällen kann die Größe der verschobenen Daten und die für die Verarbeitung notwendige CPU-Leistung größer sein als der Wert der gescannten Daten anzeigt.
Die gescannten Werte werden als 0 für COPY INTO Anweisungen angezeigt.
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;
Identifizieren der am häufigsten ausgeführten Abfragen mithilfe einer Teilzeichenkette im Abfragetext
Die folgende Abfrage gibt die aktuellsten Abfragen zurück, die einer bestimmten Zeichenkette entsprechen, absteigend sortiert nach der Anzahl der erfolgreichen Ausführungen.
SELECT * FROM queryinsights.frequently_run_queries
WHERE last_run_command LIKE '%<some_label>%'
ORDER BY number_of_successful_runs DESC;
Identifizieren von zeitintensiven Abfragen mithilfe einer Teilzeichenkette
Die folgende Abfrage gibt die Abfragen zurück, die einer bestimmten Zeichenkette entsprechen, sortiert nach absteigender mittlerer Abfrage-Ausführungszeit.
SELECT * FROM queryinsights.long_running_queries
WHERE last_run_command LIKE '%<some_label>%'
ORDER BY median_total_elapsed_time_ms DESC;
Abfragen von Insights-Ansichten
- queryinsights.exec_requests_history
- queryinsights.exec_sessions_history
- queryinsights.long_running_queries
- queryinsights.häufig_laufende_abfragen
- queryinsights.sql_pool_insights