Kapslad slingkoppling

En kapslad loop-koppling är en naiv algoritm som sammanfogar två uppsättningar genom att använda två kapslade loopar . Join-operationer är viktiga för databashantering .

Algoritm

Två relationer och sammanfogas enligt följande:

     
         
             
                 algoritmen  nested_loop_join  är  för varje  tuppel  r  i  R  do  för varje  tuppel  s  i  S  gör  om  r  och  s  uppfyller kopplingsvillkoret  ger  tuppel <  r  ,  s  > 

Denna algoritm kommer att involvera n r *b s + b r blocköverföringar och n r + b r sökningar, där b r och b s är antalet block i relationerna R respektive S, och n r är antalet tuplar i relation R .

Algoritmen körs i I/Os, där och är antalet tuplar som finns i respektive och kan enkelt generaliseras för att sammanfoga valfritt antal relationer ...

för blockkapslade loop join är en generalisering av den enkla kapslade loops-algoritmen som drar fördel av ytterligare minne för att minska antalet gånger som -relationen skannas. Den laddar stora bitar av relation R i huvudminnet. För varje bit skannar den S och utvärderar sammanfogningsvillkoret för alla tuppelpar, för närvarande i minnet. Detta minskar antalet gånger S skannas till en gång per bit.

Variation för indexsammanfogning

Om den inre relationen har ett index på attributen som används i joinen kan den naiva nest loop joinen ersättas med en index join.

     
        
             algoritm  index_join  är  för varje  tuppel  r  i  R  do  för varje  tuppel  s  i  S  i indexuppslagningen  ger  ger  tuppel <  r  ,  s  > 

Tidskomplexiteten för denna variation förbättras från

Se även