Så gott som varje kommersiell frågeoptimerare väljer den bästa planen för en fråga med hjälp av en kostnadsmodell som är starkt beroende av exakt kardinalitetsuppskattning. Kardinalitetsuppskattning fel kan uppstå på grund av användningen av felaktig statistik, ogiltiga antaganden om attribut oberoende, parameter markörer, och så vidare. Kardinalitetsuppskattningsfel kan få optimizern att välja en suboptimal plan. Vi presenterar en strategi för frågebehandling som är extremt robust eftersom den kan upptäcka och återhämta sig från kardinalitetsuppskattningsfel. Vi kallar detta för "progressiv frågeoptimering" (POP). POP validerar kardinalitetsuppskattningar mot faktiska värden som uppmätts under frågeutförandet. Om det finns betydande oenighet mellan uppskattade och faktiska värden, kan utförandet stoppas och återoptimering kan ske. Oscillation mellan optimering och utförande steg kan uppstå ett antal gånger. En återoptimering steg kan utnyttja både den faktiska kardinalitet och partiella resultat, beräknas under en tidigare utförande steg. Checkpointoperatörerna (CHECK) validerar optimizerns kardinalitetsuppskattningar mot faktiska kardinaliteter. Varje CHECK har ett villkor som anger de kardinalitetsgränser inom vilka en plan är giltig. Vi beräknar detta giltighetsområde genom en ny känslighetsanalys av frågeplansoperatörer. Om CHECK-tillståndet kränks, utlöser CHECK återoptimering. POP har prototyperats i en ledande kommersiell DBMS. En experimentell utvärdering av POP med hjälp av TPC-H-frågor illustrerar robustheten POP bidrar till frågebehandling, samtidigt som endast försumbara overhead. En fallstudie som tillämpar POP till en verklig databas och arbetsbelastning visar potentialen av POP, accelererar komplexa OLAP frågor med nästan två storleksordningar.
Progressiv fråga OPtimization (POP) REF upptäcker kardinality estimation fel i mid-execution genom att jämföra de uppskattade kardinalitet värden mot de faktiska körtid räknas.
Robust query processing through progressive optimization
{'venue': "SIGMOD '04", 'journal': None, 'mag_field_of_study': ['Computer Science']}