Issues in ordering source calls
Execution cost is a function of both access cost and the tuple-transfer cost (ignoring local processing costs…)
Tension between access costs & traffic costs
- E.g. Execute “S1(W,X) & S2(X,Y)” where the query binds W
- Tuple-transfer cost reduction motivates calling sources with the least general binding patterns possible
- Bound-is-easier (S1 first, and then feed X bindings to S2)
- Access cost reduction motivates calling sources with the most general binding patterns possible
- Feeding X bindings for S2 will generate many separate accesses, increasing the access cost