This discussion really belongs on the performance list and I am copying that list with mail-followup-to set.
On Fri, Feb 20, 2004 at 12:26:22 +0530, V Chitra <[EMAIL PROTECTED]> wrote: > Hi All, > > I have a select statement > > select * from v_func_actual_costs > where parent_project='10478' or proj_pk = '10478' > > both the fields parent_project and proj_pk have indexes based on them, but when I > ran explain plan on this statement I found that none of the indexes are being > called. But, if I make two separate statement and combine them with Union ALL, the > indexes are being called. The select statement in this case is > > select * from ct_admin.v_func_actual_costs > where parent_project='10478' > union all > select * from ct_admin.v_func_actual_costs > where proj_pk = '10478' > > Can anybody help me to find a reason for the same. This is just a part of the query > so I cannot use the Union ALL clause. Have you analyzed the databases recently? Can you supply explain analyze output for the queries? It isn't necessarily faster to use two index scans instead of one sequential scan depending on the fraction of the table being returned and some other factors. If the planner is making the wrong choice in your case, you need to supply the list with more information to get help figuring out why the wrong choice is being made. ---------------------------(end of broadcast)--------------------------- TIP 8: explain analyze is your friend