Lars Volker created IMPALA-7942:
-----------------------------------

             Summary: Add query hints for cardinalities and selectivities
                 Key: IMPALA-7942
                 URL: https://issues.apache.org/jira/browse/IMPALA-7942
             Project: IMPALA
          Issue Type: New Feature
          Components: Frontend
    Affects Versions: Impala 3.2.0
            Reporter: Lars Volker


The optimizer can pick suboptimal plans when tables don't have statistics. To 
allow users to help the optimizer, we should support query hints to specify 
cardinalities of scans, predicated (and possibly joins).

This could look like the following example.
{code:sql}
select x from medium /*+ num_rows(1000000000) */
  join small /*+ num_rows(1000000) */
  join (select * from big /*+ num_rows(1000000000) */
        where c1 < 10 /*+ selectivity(0.00001) */) as big
  where medium.id = small.id and small.id = big.id;
{code}
Instead of cardinalities we could also support specifying the number of rows 
that pass a predicate (or join).

We should not rely on the specified cardinalities to be accurate, e.g. the 
following should still execute a scan:
{code:sql}
select count(*) from T /*+ num_rows(100) */
  where id < 100 /*+ selectivity(0.1) */;
{code}
This is a first step towards giving users more control over the planner / 
optimizer.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to