Analytics Platform System: Adaptive Query Processing

2. Mai 2016

Schon in der Vergangenheit war es oft so, dass viele neue Features in SQL Server erst im “großen Bruder” APS (Analytics Platform System aka Parallel Data Warehouse) implementiert und ein paar Jahre später in den SQL Server Code migriert wurden (z.B. Columnstore Indexes oder Anbindung an Big Data Systeme – Polybase). Wenn man also die APS Ankündigungen verfolgt, kann man grob erahnen, was uns im übernächsten SQL Server Release erwartet.

Vor kurzem fand ein neues APS Release mit einer interessanten Preview Funktion statt:

Analytics Platform System Appliance Update 5

In addition to the above, we are also offering an early preview of Adaptive Query Processing which can automatically re-optimize query execution mid-flight. Please note that Adaptive Query Processing is currently in beta. Any customers wishing to participate in the beta should contact their support representative.

Das würde bedeuten, dass die Engine z.B. nicht mehr hartnäckig versucht, tausendfach dieselben Daten zu lesen, nur weil sie sich in der Kardinalitätsschätzung verschätzt und für den Ausführungsplan einen suboptimalen Join Algorithmus genommen hat, sondern schaltet nach einem bestimmten Grenzwert automatisch vom Nested Loop Join auf ein Hash Join um. Auch andere Optimierungen z.B. in den Aggregatfunktionen oder im Parallelisierungsgrad sind denkbar.

Ganz neu ist die Idee nicht, Oracle hat ähnliche Funktionalitäten – Adaptive Plans und Adaptive Statistics – schon seit der Version 12.1 (Release 2013) im Arsenal.

Es bleibt noch genug Zeit bis zum Release von SQL Server 2018 (ungefähr 2 Jahre), in wenigen Wochen kommt erst die erste offizielle Version von SQL Server 2016.