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 då 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