/
The Cascades Framework for Query Optimization Goetz Graefe Abstract This paper describes The Cascades Framework for Query Optimization Goetz Graefe Abstract This paper describes

The Cascades Framework for Query Optimization Goetz Graefe Abstract This paper describes - PDF document

myesha-ticknor
myesha-ticknor . @myesha-ticknor
Follow
627 views
Uploaded On 2014-12-14

The Cascades Framework for Query Optimization Goetz Graefe Abstract This paper describes - PPT Presentation

In addition to extensibility dynamic pro gramming and memorization based on and extended from the EXODUS and Volcano prototypes this new optimizer provides i manipulation of operator arguments using rules or functions ii operators that are both logi ID: 23839

addition extensibility

Share:

Link:

Embed:

Download Presentation from below link

Download Pdf The PPT/PDF document "The Cascades Framework for Query Optimiz..." is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.


Presentation Transcript

TheCascadesFrameworkforQueryOptimizationGoetzGraefeAbstractThispaperdescribesanewextensiblequeryoptimizationframeworkthatresolvesmanyoftheshort-comingsoftheEXODUSandVolcanooptimizergenerators.Inadditiontoextensibility,dynamicpro-gramming,andmemorizationbasedonandextendedfromtheEXODUSandVolcanoprototypes,thisnewoptimizerprovides(i)manipulationofoperatorargumentsusingrulesorfunctions,(ii)operatorsthatarebothlogicalandphysicalforpredicatesetc.,(iii)schema-specicrulesformaterializedviews,(iv)rulestoinsert”enforcers”or”glueoperators,”(v)rule-specicguidance,permittinggroupingofrules,(vi)basicfacilitiesthatwilllaterpermitparallelsearch,partiallyorderedcostmeasures,anddy-namicplans,(vii)extensivetracingsupport,and(viii)acleaninterfaceandimplementationmakingfulluseoftheabstractionmechanismsofC++.Wedescribeandjustifyourdesignchoicesforeachoftheseissues.TheoptimizersystemdescribedhereisoperationalandwillserveasthefoundationfornewqueryoptimizersinTandem'sNonStopSQLproductandinMicrosoft'sSQLServerproduct.1IntroductionFollowingourexperienceswiththeEXODUSOptimizerGenerator[GrD87],webuiltanewoptimizergeneratoraspartoftheVolcanoproject[GrM93].ThemaincontributionsoftheEXODUSworkweretheoptimizergener-atorarchitecturebasedoncodegenerationfromdeclarativerules,logicalandphysicalalgebra's,thedivisionofaqueryoptimizerintomodularcomponents,andinterfacedenitionsforsupportfunctionstobeprovidedbythedatabaseimplementor(DBI),whereastheVolcanoworkcombinedimprovedextensibilitywithanefcientsearchenginebasedondynamicprogrammingandmemorization.ByusingtheVolcanoOptimizerGeneratorintwoapplications,aobject-orienteddatabasesystems[BMG93]andascienticdatabasesystemprototype[WoG93],weidentiedanumberofawsinitsdesign.Overcomingtheseawsisthegoalofacompletelynewextensi-bleoptimizerdevelopedintheCascadesproject,anewprojectapplyingmanyofthelessonslearnedfromtheVolcanoprojectonextensiblequeryoptimization,parallelqueryexecution,andphysicaldatabasedesign.Com-paredtotheVolcanodesignandimplementation,thenewCascadesoptimizerhasthefollowingadvantages.Intheirentirety,theyrepresentasubstantialimprovementoverourownearlierworkaswellasotherrelatedworkinfunctionality,ease-of-use,androbustness.AbstractinterfaceclassesdeningtheDBI-optimizerinterfaceandpermittingDBI-denedsubclasshier-RulesasobjectsFacilitiesforschema-andevenquery-specicrulesSimplerulesrequiringminimalDBIsupportRuleswithsubstitutesconsistingofacomplexexpression RulesthatmapaninputpatterntoaDBI-suppliedfunctionRulestoplacepropertyenforcerssuchassortoperationsOperatorsthatmaybebothlogicalandphysical,e.g.,predicatesPatternsthatmatchanentiresubtree,e.g.,apredicateOptimizationtasksasdatastructuresIncrementalenumerationofequivalentlogicalexpressionsGuidedorexhaustivesearchOrderingofmovesbypromiseRule-specicguidanceIncrementalimprovementofestimatedlogicalpropertiesThepointsinthelistaboveandtheireffectswillbediscussedinthispaper.Whilethesystemisoperational,wehavenotperformedanyperformancestudiesandthesystemisnotfullytunedyet.DetailedanalysisandfocusedimprovementoftheCascadesoptimizer'sefciencyisleftforfurtherwork.2OptimizationAlgorithmandTasksTheoptimizationalgorithmisbrokenintoseveralparts,whichwecall”tasks.”Whileeachtaskcouldeasilybeimplementedasaprocedure,wechosetorealizetasksasobjectsthat,amongothermethods,havea”perform”methoddenedforthem.Taskobjectsoffersignicantlymoreexibilitythanprocedureinvocations,inparticu-larwithrespecttosearchalgorithmandsearchcontrol.Ataskobjectexistsforeachtaskthathasyettobedone;allsuchtaskobjectsarecollectedinataskstructure.Thetaskstructureiscurrentlyrealizedasalast-in-rst-outstack;however,otherstructurescaneasilybeenvisioned.Inparticular,taskobjectscanbereorderedveryeasilyatanypoint,enablingveryexiblemechanismsforheuristicguidance.Moreover,weplanonrepresentingthetaskstructurebyagraphthatcapturesdependenciesorthetopologicalorderingamongtasksandpermitefcientparallelsearch(usingsharedmemory).However,inordertoobtainaworkingsystemfast,thecurrentimplemen-tationisrestrictedtoaLIFOstack,andschedulingataskisverysimilartoinvokingafunction,withtheexceptionthatanyworktobedoneafterasub-taskcompletesmustbescheduledasaseparatetask.Figure1showsthetasksthatmakeuptheoptimizer'ssearchalgorithm.Arrowsindicatewhichtypeoftaskschedules(invokes)whichothertype;dashedarrowsindicatewhereinvocationspertaintoinputs,i.e.,subqueriesorsubplans.Briefpseudo-codeforthetasksisalsogivenintheappendix.The”optimize()”procedurerstcopiestheoriginalqueryintotheinternal”memo”structureandthentriggerstheentireoptimizationprocesswithatasktooptimizetheclasscorrespondingtotherootnodeoftheoriginalquerytree,whichinturntriggersoptimizationofsmallerandsmallersubtrees.Atasktooptimizeagrouporanexpressionrepresentswhatwascalledan”optimizationgoal”intheVolcanooptimizergenerator:itcombinesagrouporexpressionwithacostlimitandwithrequiredandexcludedphysicalproperties.Performingsuchataskresultseitherinaplanorafailure.Optimizingagroupmeansndingthebestplanforanyexpressioninthegroupandthereforeappliesrulestoallexpressions,whereasoptimizinganexpressionstartswithasingleexpression.Theformerisrealizedbyinvokingthelatterforeachexpression.Thelatterresultsintransitiveruleapplicationsandtherefore,iftherulesetiscomplete,ndsthebestplanwithinthestartingexpression'sgroup.Thedistinctionbetweenthetwotasktypesismadepurelyforpragmaticreasons.Ontheonehand,theremustbeatasktondthebestplanforanyexpressioninagroupinordertoinitiateoptimization toexpressionsmatchingthegivenpattern,exhaustiveenumerationofallequivalentlogicalexpressionscannotbeavoided.Ontheotherhand,ifthereissomeguidance,someofthateffortcanbeavoided,andtheCascadessearchstrategyseemssuperior.Ontheotherhand,thesamegroupmighthavetobeexploredmultipletimesfordifferentpatterns;ifso,redundantruleapplicationsandderivationsmightoccur.Inordertoavoidthat,eachexpressioninthe”memo”structureincludesabitmapthatindicateswhichtransformationruleshavealreadybeenappliedtoitandthusshouldnotbere-applied.Thus,webelievethattheCascadessearchstrategyismoreefcientbecauseitexploresgroupsonlyfortrulyusefulpatterns.Intheworstcase,i.e.,withoutanyguidance,theefciencyoftheCascadessearchwillequalthatoftheVolcanosearchstrategy.Ontheotherhand,ifsuchguidanceisincorrect,incorrectpruningofthesearchspacemayoccurandtheCascadesoptimizer'seffectivenessmightsuffer.Thus,itisveryimportantthatsuchguidancebecorrect.Weplanonusingtwotechniquesforguidance,whicharenotimplementedyet.First,byinspectingtheentireruleset,inparticularthetopoperatorsofeachrule'santecedent(”before”-pattern)andconsequent(”after”-pattern,substitute),wecanidentifywhichoperatorscanbemappedtowhichotheroperatorsinasingleruleapplication.Bytakingthetransitiveclosureofthisreachabilityrelationship,wecanexcludesomerulesfromconsideration.Notethatthistransitiveclosurecanbecomputedwhentheoptimizerisgeneratedfromtheruleset,i.e.,onlyonce.Second,weplanonimplementingmechanismsforguidancebytheDBI.Applyingarulecreatesanewexpression;noticethatthenewexpressioncanbecomplex(consistingofmul-tipleoperators,asinajoinassociativityrule)andmaybeeitheratransformationrule(creatinganewlogicalexpression)oranimplementationrule(creatinganewphysicalexpressionorplan).Infact,sinceanoperatorcanbebothlogicalandphysical,onerulemaybebothatransformationandanimplementationrule.Correctruleapplicationforsuchrulesisguaranteed,althoughweexpectsuchoperatorsandrulestobeexceptionsratherthanthenorm.Performingan”applyrule”taskisfairlycomplex.Itmayroughlybebrokenintofourcomponents.First,allbindingsfortherule'spatternarederivedanditeratedoveronebyone.Second,foreachbinding,theruleisusedtocreateanewexpression.Notethatforfunctionrules,theremaybemultiplenewexpressionsforeachbinding.Third,thenewexpressionsareintegratedinthe”memo”structure.Withinthisprocess,exactreplicasofexpressionsthatalreadyexistin”memo”areidentiedandremovedfromfurtherconsideration.Fourth,eachexpressionthatisnotaduplicateofanearlieroneisoptimizedorexploredwiththesamegoalandcontextthattriggeredthecurrentruleapplication.Letusdiscussthesefourcomponentsinturn.Sinceeachrule'santecedent(”before”-pattern)maybecomplex,theCascadesoptimizeremploysacomplexproceduretoidentifyallpossiblebindingsforarule.Thisprocedureisrecursive,witheachrecursiveinvocationforeachnodeinthepattern.Mostofitscomplexityservestoobtainallpossiblebindingsforarule'spattern.Infact,theprocedureisrealizedasaniteratorthatproducesthenextfeasiblebindingwitheachinvocation.Thestateofthisiterationiscapturedinthe”BINDING”classwithoneinstanceofthatclassforeachnodeinthepattern.Onceabindingisfound,itistranslatedintoatreeconsistingof”EXPR”nodes(notethatthisclassispartoftheDBIinterface,whereastheoptimizer'sinternaldatastructuresarenot).Thiscopysteprepresentssomeeffort,butitisolatestheoptimizerfromtheDBImethodsthatmaybeinvokedforthistree.Foreachbinding,therule'scon-ditionfunctionisinvokedandqualifyingbindingsarethentranslatedintotherule'sconsequent(”after”-pattern,substitute).Forsomerules,thisisveryeasyandentirelylefttotheoptimizer.Forotherrules,theDBIspeciedafunctiontocreatethesubstitute,andthisfunctionisinvokedrepeatedlytocreateasmanysubstituteaspossible.Inotherwords,thisfunctionmaybeaniteratorproducingmultiplesubstitutesinconsecutiveinvocations.Thus,theeffortofextractingabindingfromthe”memo”isleveragedformultipletransformationsifpossible.Eachsubstituteexpressionisthenintegratedintothe”memo”structure.Thisprocessincludessearchforanddetectionofduplicates,i.e.,expressionthathavebeenderivedearlierintheoptimization.ThisprocessisverysimilartoduplicateexpressiondetectioninboththeEXODUSandVolcanooptimizergenerators.Itisarecursiveprocessthatstartsattheleavesofthesubstitute,whichmaybeeitherqueryorplantreeleaves(i.e.,scans)orleafoperatorsthatdenotethescopeofarewriteoperation(asdescribedaspartoftheDBIinterface),andworksupwardsinthesubstitutetowardsthesubstitute'sroot;thisdirectionisrequiredforcorrectduplicate 3.1OperatorsandTheirArgumentsCentraltoanydatabasequeryoptimizerarethesetsofoperatorssupportedinthequerylanguageandinthequeryevaluationengine.Noticethatthesetwosetsaredifferent;wecallthemlogicalandphysicaloperators[Gra93].Whilepreviousextensibleoperatorsrequiredthatthesetwosetsbedisjunct,wehaveabandonedthisrequirement.The”classOP-ARG”intheCascadesoptimizerinterfaceincludesbothlogicalandphysicaloperators.Foreachoperator,onemethodcalled”is-logical”indicateswhetherornotanoperatorisalogicaloperator,whileasecondmethodcalled”is-physical”indicateswhetherornotanoperatorisaphysicaloperator.Infact,itispossiblethatanoperatorisneitherlogicalorphysical;suchanoperatormightbeusefuliftheoptimizationisorganizedasanexpansiongrammarincluding”non-terminals”liketheStarburstoptimizer[Loh88].Ontheotherhand,aDBIwhowishestodosocaneasilyretainastrictseparationoflogicalandphysicaloperators,e.g.,bydeningsubclasseswithsuitabledenitionsforthemethods”is-logical”and”is-physical”andbydeningalloperatorsassubclassesofthesetwoclasses.Thedenitionofoperatorsincludestheirarguments.Thus,noseparatemechanismsarerequiredorprovidedfor”argumenttransfer”asinEXODUSandVolcano.Notice,however,thattherearetwocrucialfacilitiesthatpermitsandencouragemodelingpredicatesetc.,whichhadbeenmodeledasoperatorargumentsinallourpro-totypesconstructedintheEXODUSandVolcanoframeworks,asprimaryoperatorsinthelogicalandphysicalalgebra's.First,anoperatorcanbebothlogicalandphysical,whichisnaturalforsingle-recordpredicates,called”sargable”inSystemR[SAC79].Second,specicpredicatetransformations,e.g.,splittingfromacomplexpred-icatethosecomponentsthatcanbepushedthroughajoin,whicharemosteasilyandefcientlyimplementedinaDBIfunctionratherthanasrulestobeinterpretedbytheoptimizer'ssearchengine,caneasilyberealizedinrulesthatinvokeaDBI-suppliedtomapanexpressiontosubstituteexpressions(oneormore).Thus,aftertheEXODUSandtheVolcanoworkhasbeenrepeatedlycriticizedthatpredicatemanipulationhasbeenverycum-bersome,theCascadesoptimizeroffersmuchimprovedfacilities.Theoptimizer'sdesigndoesnotincludeassumptionsaboutthelogicalandphysicalalgebra'stobeoptimized;therefore,noqueryorplanoperatorsarebuiltintotheoptimizer.Foruseinrules,however,therearetwospecialoperators,called”LEAF-OP”and”TREE-OP.”Theleafoperatorcanbeusedasleafinanyrule;duringmatching,itmatchesanysubtree.Beforearuleisapplied,anexpressionisextractedfromthesearchmemorythatmatchestherule'spattern;wheretherule'spatternhasleaves,theextractedexpressionalsohasleafoperatorsthatrefer(viaanarrayindex)toequivalenceclassesinthesearchmemory.Thetreeoperatorisliketheleafoperatorexceptthattheextractedexpressioncontainsanentireexpression,independentofitssizeorcomplexity,downtotheleafoperatorsinthelogicalalgebra.Thisoperatorisparticularlyusefulinconnectionwithfunctionrules,whicharedescribedbelow.Beyondthemethods”is-logical”and”is-physical,”alloperatorsmustprovideamethod”opt-cutoff”.Givenasetofmovesduringanoptimizationtask,thismethoddetermineshowmanyofthosewillbepursued,obviouslythemostpromisingones.Bydefault,allpossiblemoveswillbepursued,becauseexhaustivesearchguaranteesthattheoptimalplanwillbefound.Thereisalsoasmallsetofmethodsthatmustbeprovidedonlyforthoseoperatorsthathavebeendeclaredlogical.Forpatternmatchingandforndingduplicateexpressions,methodsformatchingandhashingarerequired.Methodsforndingandimprovinglogicalpropertiesareusedtodetermineanoriginalsetofproperties(e.g.,theschema)andthentoimproveitwhenalternativeexpressionshavebeenfound(e.g.,moreboundsonselectivityortheoutputsize).Finally,forexplorationtasks,anoperatormaybecalledupontoinitializeapatternmemoryandtodecidehowmanymovestopursueduringanexplorationtask.Similarly,therearesomemethodsforphysicaloperators.Obviously,thereisamethodtodetermineanoper-ator's(physical)outputproperties,i.e.,propertiesoftherepresentation.Moreover,therearethreemethodsthatcomputeandinspectcosts.Therstofthesecalculatesthelocalcostofanalgorithm,withoutanyregardtothecostsofitsinputs.Thesecondonecombinesthecostsandphysicalpropertiesofanalgorithm'sinputsintothecostofanentiresubplan.Thethirdofthesemethodsveries,betweenoptimizingtwoinputsofanalgorithm,thatthecostlimithasnotbeenexceededyet,andcomputesanewcostlimittobeusedwhenoptimizingthenext thepatternmemoryispermittedtoaddthepatterntoitselfandisaskedtodeterminewhetherornotexplorationshouldtakeplace.Inthemostsimplesearch,inwhichexplorationforanypatternisperformedbyexhaustiveapplicationoftransformationrules,thepatternmemoryneedstocontainonlyaBoolean,i.e.,amemorywhetherornotthegrouphasbeenexploredpreviously.Moresophisticatedpatternmemorieswouldstoreeachpattern.Obviously,thepatternmemoryinteractswiththeexplorationpromisefunction.Forthemostsimplepromisefunctionthatalwaysadmitsexhaustivesearch,thesimplepatternmemoryaboveissuitable.ItislefttotheDBItodesignpatternmemoryandpromisefunctionsmostsuitabletothealgebratobeoptimized.Beyondcheckingwhetheragivenpatternalreadyexistsinthememory,andsavingittodetectasecondex-plorationwiththesamepattern,themostcomplexmethodforpatternmemoriesistomergetwopatternmemoriesintoone.Thismethodisrequiredwhentwogroupsofequivalentexpressionsaredetectedtobeactuallyone,i.e.,whenatransformedexpressionalreadyoccursinadifferentgroupinthesearchmemory.3.6RulesNexttooperators,theotherimportantclassofobjectsintheCascadesoptimizerarerules.Noticethatrulesareobjects;thus,newonescanbecreatedatrun-time,theycanbeprinted,etc.Whileotherrule-basedoptimizers,inparticulartheEXODUSandVolcanooptimizergenerators,dividelogicalandphysicaloperatorsaswellas(logical)transformationand(physical)implementationrulesintodisjointsets,theCascadesoptimizerdoesnotdistinguishbetweenthoserules,otherthanbyinvokingtheis-logicalandis-physicalmethodsonnewlycreatedexpressions.Allrulesareinstancesofthe”classRULE,”whichprovidesforrulename,anantecedent(the”be-fore”pattern),andaconsequent(thesubstitute).Patternandsubstitutearerepresentedasexpressiontrees,whichwerediscussedabove.Intheirsimplestcase,rulesdonotcontainmorethanthat;wheneverthepatternisfoundorcanbecreatedwithexplorationtasks,thesubstituteexpressionisincludedinthesearchmemory.Botharule'spatternandsub-stitutecanbearbitrarilycomplex.IntheEXODUSandVolcanooptimizergenerators,animplementationrule'ssubstitutecouldnotconsistofmorethanasingleimplementationoperator;intheCascadesdesign,thisrestrictionhasbeenremoved.Theremainingrestrictionisthatallbutthesubstitute'stopoperatormustbelogicalopera-tors.Forexample,itispossibletotransforma(logical)joinoperatorintoa(physical)nestedloopsoperatorwitha(logical)selectiononitsinnerinput,thus,detachingtheselectionpredicatefromthejoinalgorithmandpushingitintotheinnerinputtree.Formoresophisticatedrules,twotypesofconditionfunctionsaresupported.Allofthemconsidernotonlytherulebutalsothecurrentoptimizationgoal,i.e.,costlimitandrequiredandexcludedphysicalproperties.First,beforeexplorationstarts,”promise”functionsinformstheoptimizerhowusefultherulemightbe.Thereisonepromisefunctionforoptimizationtasksandoneforexplorationtasks.Forunguidedexhaustivesearch,allpromisefunctionsshouldreturnthevalue1.0.Avalueof0orlesswillpreventtheoptimizerfromfurtherworkforthecurrentruleandexpression.Thedefaultpromisefunctionreturns0ifaspecicphysicalpropertyisrequired,2ifthesubstituteisanimplementationalgorithm,and1otherwise.Ifthecutoffmethodsassociatedwiththeoperatorschooseexhaustivesearch(seeabove),thereturnvalueofthepromisefunctionwillnotchangethequalityofthenalqueryevaluationplan,althoughitmayaffecttheorderinwhichplansarefound,pruningeffectiveness,andthereforethetimeanoptimizationtakes.Sincethepromisefunctionsareinvokedbeforeexplorationofsubgroups,i.e.,beforeentireexpressiontreescorrespondingtoarule'spatternhavebeenexploredandextractedfromthesearchmemory,a”condition”func-tioncheckswhetheraruleistrulyapplicableafterexplorationiscompleteandacompletesetofoperatorscorre-spondingtothepatternintheruleisavailable.Whereasthepromisefunctionsreturnarealvaluethatexpressesgradesofpromise,theconditionfunctionreturnsaBooleantoindicatewhetherornottheruleisapplicable.Inadditiontopromiseandconditionfunctions,asmallsetofmethodsisassociatedwithrules.Ofcourse,thereareconstructor,destructor,andprintmethods,aswellasmethodtoextractthepattern,thesubstitute,therule'sname,anditsarity(thepattern'snumberofleafoperators).The”rule-type”methodindicateswhethera 5SummaryandConclusionsBeyondabetterandmorerobustimplementationthanfoundintheEXODUSandVolcanooptimizergenerators,theCascadesoptimizeroffersanumberofadvantages,withoutgivingupmodularity,extensibility,dynamicpro-gramming,andmemorizationexploredinthoseearlierprototypes.First,predicatesandotheritemoperationscanconvenientlymodeledaspartofthequeryandplanalgebra.Operatorsthatarebothlogicalandphysical;thus,itiseasytospecifyoperatorsthatmayappearbothintheoptimizerinput(thequery)andinitsoutput(theplan).FunctionrulesandthetreeoperatorpermitdirectmanipulationofevencomplextreesofitemoperationsusingDBI-suppliedfunctions.Second,enforcerssuchassortingarenormaloperatorsinallways;inparticular,theyareinsertedintoaplanbasedonexplicitrules.InVolcano,theywerespecialoperatorsthatdidnotappearinanyrule.Third,bothexploration(enumerationofequivalentlogicalexpressions)andoptimization(mappingalogicaltoaphysicalexpression)canbeguidedandcontrolledbytheDBI.Togetherwiththemorerobustimple-mentationasrequiredforindustrialdeployment,webelievethattheCascadesoptimizerrepresentsasubstantialimprovementoverearlierextensibledatabasequeryoptimizers.6AcknowledgmentsThequeryprocessinggroupatTandemhasbeenveryhelpfulinforcingmetoaddressthehardproblemsunre-solvedintheEXODUSandVolcanooptimizergeneratorsandinndingeffectiveandusablesolutions.DavidMaierhasbeenagreatsoundingboardforideasduringthedesignanddevelopmentoftheCascadesoptimizer.7References[BMG93]J.A.Blakeley,W.J.McKenna,andG.Graefe,ExperiencesBuildingtheOpenOODBQueryOpti-mizer,Proc.ACMSIGMODConf.,Washington,DC,May1993,287.[GrD87]G.GraefeandD.J.DeWitt,TheEXODUSOptimizerGenerator,Proc.ACMSIGMODConf.,SanFrancisco,CA,May1987,160.[Gra93]G.Graefe,QueryEvaluationTechniquesforLargeDatabases,ACMComputingSurveys25,2(June1993),73-170.[GrM93]G.GraefeandW.J.McKenna,TheVolcanoOptimizerGenerator:ExtensibilityandEfcientSearch,Proc.IEEEInt'l.Conf.onDataEng.,Vienna,Austria,April1993,209.[Loh88]G.M.Lohman,Grammar-LikeFunctionalRulesforRepresentingQueryOptimizationAlternatives,Proc.ACMSIGMODConf.,Chicago,IL,June1988,18.[MDZ93]G.Mitchell,U.Dayal,andS.B.Zdonik,ControlofanExtensibleQueryOptimizer:APlanning-BasedApproach,Proc.Int'l.Conf.onVeryLargeDataBases,Dublin,Ireland,August1993,517.[SAC79]P.G.Selinger,M.M.Astrahan,D.D.Chamberlin,R.A.Lorie,andT.G.Price,AccessPathSelec-tioninaRelationalDatabaseManagementSystem,Proc.ACMSIGMODConf.,Boston,MA,May-June1979,[WoG93]R.H.WolniewiczandG.Graefe,AlgebraicOptimizationofComputationsoverScienticDatabases,Proc.Int'lConf.onVeryLargeDataBases,Dublin,Ireland,August1993,13.