A small-footprint relational database system providing a deterministic join
enumeration methodology for left-deep processing trees is described. By
providing a deterministic branch-and-bound join enumeration method for
left-deep processing trees, the invention is able to efficiently optimize
complex queries with high join degree by employing a novel approach to
cost-based pruning of the search space. For each subquery, plan generation
involves the following four distinct steps. First, the system adjusts
predicate selectivities to account for disjuncts, Between predicates, and
user estimates of selectivities. Next, the system constructs a join graph
for the query that models inner and outer equijoin predicates, sargable
single-variable predicates on single quantifiers, and Cartesian products.
The system then enumerates join strategies and prune the search space
using a branch-and-bound heuristic. Finally, the system recalls the
cheapest strategy and constructs the detailed access plan for that
strategy. Empirical performance results on several production queries show
that this approach requires significantly less memory than other
deterministic join enumeration approaches, which have been described in
the literature.
Uma pequeno-pegada que o sistema da base de dados relacional que fornece um deterministic junta a metodologia da enumeração para árvores processando esquerdo-profundas é descrita. Fornecendo um branch-and-bound deterministic junta o método da enumeração para árvores processando esquerdo-profundas, a invenção pode optimize eficientemente perguntas complexas com elevação junta o grau empregando uma aproximação da novela a podar custo-baseado do espaço da busca. Para cada subquery, a geração da planta envolve as seguintes quatro etapas distintas. Primeiramente, o sistema ajusta selectivities do predicado para esclarecer disjuncts, entre predicados, e estimativas do usuário dos selectivities. Em seguida, o sistema constrói um gráfico juntar para a pergunta que os modelos internos e o equijoin exterior predicam, predicados único-variáveis sargable em únicos quantifiers, e produtos cartesian. O sistema enumerates então junta estratégias e poda o espaço da busca usando um heurístico branch-and-bound. Finalmente, o sistema recorda a estratégia a mais barata e constrói a planta detalhada do acesso para essa estratégia. Os resultados empíricos do desempenho em diversas perguntas da produção mostram que esta aproximação requer significativamente menos memória do que outros deterministic juntam as aproximações da enumeração, que foram descritas na literatura.