1. A computer-implemented method comprising: receiving a normalized query tree; analyzing the normalized query tree to collect information about: join operators and their children, and tables in an associated query; and making said information available to a rule based optimizer that is configured to produce, from the normalized query tree, an execution plan.