Google Cloud hat die allgemeine Verfügbarkeit von BigQuery-verlaufsbasierten Optimierungen angekündigt, die die Abfrageleistung um das bis zu 100-fache verbessern können. Diese neue Funktion wurde entwickelt, um aus zuvor abgeschlossenen Ausführungen ähnlicher Abfragen zu lernen und zusätzliche Verbesserungen zu identifizieren und anzuwenden.
Ein interessanter Aspekt der verlaufsbasierten Optimierungen von BigQuery ist ihre Fähigkeit, verschiedene Arten von Abfragen zu verbessern, einschliesslich solcher, die hochselektive Joins beinhalten. Wenn BigQuery beispielsweise einen Join identifiziert, der eine viel geringere Anzahl von Zeilen als seine Eingabe erzeugt, kann es diesen Join früher im Ausführungsplan ausführen. Dies kann die Datenmenge, die verarbeitet werden muss, erheblich reduzieren, was zu einer Verbesserung der Gesamtleistung führt.
Darüber hinaus können verlaufsbasierte Optimierungen von BigQuery dazu beitragen, die Datenmenge zu reduzieren, die BigQuery scannt, indem sie selektive Semi-Joins in die Abfrage einfügen. In einigen Fällen kann BigQuery einen hochselektiven Join (ähnlich wie beim Join-Pushdown) in einer Abfrage mit mehreren parallelen Ausführungspfaden identifizieren, die schliesslich zusammengeführt werden. BigQuery kann dann neue "Semi-Join"-Operationen basierend auf dem selektiven Join einfügen, die die Datenmenge "reduzieren", die von diesen parallelen Ausführungspfaden gescannt und verarbeitet wird.
Insgesamt sind verlaufsbasierte Optimierungen eine wertvolle Ergänzung zu BigQuery. Durch die Nutzung historischer Daten aus früheren Abfrageausführungen kann diese neue Funktion die Abfrageleistung erheblich verbessern und die Kosten senken. Da sie ausserdem automatisch funktioniert, können Benutzer von diesen Verbesserungen profitieren, ohne Änderungen an ihren Abfragen vornehmen zu müssen.