Abstract
The problem of optimal query processing in distributed database systems was shown to be NP-hard. This means that heuristic algorithms are necessary to solve the query processing problem. Algorithms are described to improve the solutions generated by heuristics. Four properties are identified which optimal semi-join programs for processing tree queries have to satisfy. A semi-join program is represented by an execution graph which specifies the order and the identities of the semi-joins to be executed. Given a semi-join program, we can therefore apply these properties to check its optimality. If it does not satisfy these optimality properties, the associated improvement algorithms can be applied to improve this program. No assumptions have been made about the relation size and the selectivity of the semi-joins.