Wrong execution path
-klbOct 8 2010 — edited Oct 19 2010Query going slow through cx_oracle
select ...
from big_table a, small_table b
where a.col1= :bind1
and a.col2 = :bind2
and a.col3 = :bind3
and a.col4 = :bind4
and a.col5 = b.col1
This query, when executed via SQLPLUS uses nested loops=>big table rowid via index range scan, with small table rowid index unique scan. Perfect, and very fast.
When going through python, it does a full table scan on big_table nested loops to the index unique scan on small-table.
Even with hint /*+ INDEX(a ix_on_those_columns) */, the query from python does a full table scan against the oracle table.
The statistics are up to date on the objects.
What could be causing this?
Thanks,