Ereignisse
31. März, 23 Uhr - 2. Apr., 23 Uhr
Das größte Fabric-, Power BI- und SQL-Lernereignis. 31. März – 2. April. Verwenden Sie Code FABINSIDER, um $400 zu sparen.
Jetzt registrierenDieser Browser wird nicht mehr unterstützt.
Führen Sie ein Upgrade auf Microsoft Edge durch, um die neuesten Features, Sicherheitsupdates und den technischen Support zu nutzen.
Gilt für:✅ SQL-Analyseendpunkt und Warehouse in Microsoft Fabric
Das Warehouse in Microsoft Fabric verwendet eine Abfrage-Engine, um einen Ausführungsplan für eine bestimmte SQL-Abfrage zu erstellen. Wenn Sie eine Abfrage übermitteln, versucht der Abfrageoptimierer, alle möglichen Pläne aufzulisten und die effizienteste Option auszuwählen. Um zu bestimmen, welcher Plan den geringsten Mehraufwand (E/A, CPU, Arbeitsspeicher) erfordert, muss die Engine in der Lage sein, den Arbeitsaufwand oder die Zeilen auszuwerten, die bei jedem Operator verarbeitet werden können. Anschließend wählt er basierend auf den Kosten jedes Plans den Plan mit dem geringsten geschätzten Arbeitsaufwand aus. Statistiken sind Objekte, die relevante Informationen zu Ihren Daten enthalten, damit der Abfrageoptimierer diese Kosten schätzen kann.
Um eine optimale Abfrageleistung zu erzielen, ist es wichtig, über genaue Statistiken zu verfügen. Microsoft Fabric unterstützt derzeit die folgenden Pfade, um relevante und aktuelle Statistiken bereitzustellen:
Die herkömmliche Option zum Verwalten der Integrität von Statistiken ist in Microsoft Fabric verfügbar. Benutzer*innen können histogrammbasierte Einzelspaltenstatistiken erstellen (CREATE STATISTICS), aktualisieren (UPDATE STATISTICS) und löschen (DROP STATISTICS). Zudem können sie den Inhalt histogrammbasierter Einzelspaltenstatistiken mithilfe von DBCC SHOW_STATISTICS anzeigen. Derzeit wird eine eingeschränkte Version dieser Anweisungen unterstützt.
Erstellen von Statistiken für die dbo.DimCustomer
-Tabelle basierend auf allen Zeilen in einer CustomerKey
-Spalte:
CREATE STATISTICS DimCustomer_CustomerKey_FullScan
ON dbo.DimCustomer (CustomerKey) WITH FULLSCAN;
Manuelles Aktualisieren des Statistikobjekts DimCustomer_CustomerKey_FullScan
(ggf. nach einer umfangreichen Datenaktualisierung):
UPDATE STATISTICS dbo.DimCustomer (DimCustomer_CustomerKey_FullScan) WITH FULLSCAN;
Anzeigen von Informationen zum Statistikobjekt:
DBCC SHOW_STATISTICS ("dbo.DimCustomer", "DimCustomer_CustomerKey_FullScan");
Anzeigen nur von Informationen zum Histogramm des Statistikobjekts:
DBCC SHOW_STATISTICS ("dbo.DimCustomer", "DimCustomer_CustomerKey_FullScan") WITH HISTOGRAM;
Manuelles Löschen des Statistikobjekts DimCustomer_CustomerKey_FullScan
:
DROP STATISTICS dbo.DimCustomer.DimCustomer_CustomerKey_FullScan;
Die folgenden T-SQL-Objekte können auch verwendet werden, um manuell und automatisch erstellte Statistiken in Microsoft Fabric zu überprüfen:
Wenn Sie eine Abfrage ausgeben und der Abfrageoptimierer Statistiken für die Planuntersuchung benötigt, erstellt Microsoft Fabric diese Statistiken automatisch, wenn sie noch nicht vorhanden sind. Nachdem Statistiken erstellt wurden, kann der Abfrageoptimierer sie verwenden, um die Plankosten der auslösenden Abfrage zu schätzen. Wenn die Abfrage-Engine feststellt, dass vorhandene, für die Abfrage relevante Statistiken die Daten nicht mehr genau widerspiegeln, werden diese Statistiken automatisch aktualisiert. Da diese automatischen Vorgänge synchron ausgeführt werden, können Sie davon ausgehen, dass die Abfragedauer diese Zeit einschließt, wenn die benötigten Statistiken noch nicht vorhanden sind oder seit der letzten Statistikaktualisierung erhebliche Änderungen an den Daten vorgenommen wurden.
Es gibt verschiedene Fälle, in denen Sie eine Art von automatischen Statistiken erwarten können. Am häufigsten werden histogrammbasierte Statistiken verwendet, die vom Abfrageoptimierer für Spalten angefordert werden, auf die in GROUP BY-, JOIN-, DISTINCT- und ORDER BY-Klauseln sowie Filtern (WHERE-Klauseln) verwiesen wird. Wenn noch keine Statistiken für COLUMN_NAME
vorhanden sind und Sie beispielsweise die automatische Erstellung dieser Statistiken anzeigen möchten, wird die Erstellung einer Abfrage ausgelöst. Beispiel:
SELECT <COLUMN_NAME>
FROM <YOUR_TABLE_NAME>
GROUP BY <COLUMN_NAME>;
In diesem Fall sollten Sie davon ausgehen, dass Statistiken für COLUMN_NAME
erstellt wurden. Wenn die Spalte auch eine varchar-Spalte war, werden auch Statistiken zur durchschnittlichen Spaltenlänge erstellt. Wenn Sie überprüfen möchten, ob Statistiken automatisch erstellt wurden, können Sie die folgende Abfrage ausführen:
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;
Nun können Sie den statistics_name
der automatisch generierten Histogrammstatistik (sollte etwa _WA_Sys_00000007_3B75D760
lauten) suchen und den folgenden T-SQL-Code ausführen:
DBCC SHOW_STATISTICS ('<YOUR_TABLE_NAME>', '<statistics_name>');
Beispiel:
DBCC SHOW_STATISTICS ('sales.FactInvoice', '_WA_Sys_00000007_3B75D760');
Der Updated
-Wert im Resultset von DBCC SHOW_STATISTICS sollte ein Datum (in UTC) sein (ähnlich wie beim Ausführen der ursprünglichen GROUP BY-Abfrage).
Diese automatisch generierten Statistiken können dann von der Abfrage-Engine in nachfolgenden Abfragen genutzt werden, um die Plankosten zu reduzieren und die Ausführungseffizienz zu verbessern. Wenn genügend Änderungen in der Tabelle vorliegen, aktualisiert die Abfrage-Engine auch diese Statistiken, um die Abfrageleistung zu verbessern. Das gleiche Beispiel kann auch nach einer erheblichen Änderung der Tabelle durchgeführt werden. In Fabric verwendet die SQL-Abfrage-Engine denselben Schwellenwert für die Neukompilierung wie in SQL Server 2016 (13.x), um Statistiken zu aktualisieren.
In Microsoft Fabric gibt es mehrere Arten von Statistiken, die automatisch von der Engine generiert werden, um Abfragepläne zu verbessern. Derzeit sind sie in sys.stats zu finden, obwohl nicht alle handlungsrelevant sind:
_WA_Sys_
.ACE-AverageColumnLength_
.ACE-Cardinality
.Ereignisse
31. März, 23 Uhr - 2. Apr., 23 Uhr
Das größte Fabric-, Power BI- und SQL-Lernereignis. 31. März – 2. April. Verwenden Sie Code FABINSIDER, um $400 zu sparen.
Jetzt registrierenTraining
Modul
Optimieren von Abfragen in Azure-Datenbank für PostgreSQL - Training
Relationale Datenbanken speichern viele verschiedene Datentypen für viele verschiedene Arten von Anwendungen. Einige Datenbanken verfügen über Tausende von Benutzern und einige haben nur einen Benutzer. Einige Tabellen haben mehrere Zeilen, während andere Millionen von Zeilen haben. Einige Daten sind eindeutig, während andere Daten dupliziert werden. Alle diese Variablen bedeuten, dass Datenbankverwaltungssysteme (DBMSs) Systeme benötigen, um die Daten und die Abfragen zu verstehen, die mit diesen Daten aus
Zertifizierung
Microsoft Certified: Fabric Analytics Engineer Associate - Certifications
Als technische Fachkraft für Analysen sollten Sie über Fachkenntnisse im Entwerfen, Erstellen und Bereitstellen von Datenanalyselösungen auf Unternehmensniveau verfügen.