Hi Javior, sorry for the late reply. I have given the number of records in the mentioned table as required.
Select count(*) from account_master; >> 1920523 Select count (distinct account_num) from account_master; >> 1920523 Select account_num, count(account_num) from account_master group by account_num; >> all are single account numbers only Thanks Daiesh. On Apr 22, 5:21 pm, Javier Montani <jmont...@gmail.com> wrote: > Could you provide the following: > Select count(*) from account_master; > Select count (distinct account_num) from account_master; > Select account_num, count(account_num) from account_master group by > account_num; > > 2009/4/22 Daiesh <mcavenkad...@gmail.com> > > > > > Hi All, > > > Thanks to all for your valuable reply's > > > The table is huge and the query is below > > > SELECT status, ROWID > > FROM account_master > > WHERE account_num = :b1 > > > its explained plan as below > > > PLAN_TABLE_OUTPUT > > > -------------------------------------------------------------------------------- > > > --------------------------------------------------------------------- > > | Id | Operation | Name | Rows | Bytes | Cost > > | > > --------------------------------------------------------------------- > > | 0 | SELECT STATEMENT | | 1 | 22 | 2 > > | > > | 1 | INDEX RANGE SCAN | IND_ALL_ACC | 1 | 22 | 2 > > | > > --------------------------------------------------------------------- > > > Even the above query cost is too low why its take time to execute? > > please could you suggest on this? > > > Thanks > > Daiesh > > > On Apr 21, 6:28 pm, ddf <orat...@msn.com> wrote: > > > Comments embedded. > > > > On Apr 21, 7:57 am, Javier Montani <jmont...@gmail.com> wrote: > > > > > Some times the issue is the way the indexes are managed. > > > > The query plan already states an index is used; please explain your > > > comment. > > > > > Try something like: > > > > SELECT /*+ INDEX(l item_order_ix) */ l.line_item_id, order_id, > > l.unit_price > > > > * l.quantity FROM order_items l WHERE l.order_id = :b1; > > > > Again, an index IS being used, the OP believes that the index range > > > scan is performing poorly. As I stated earlier it's not likely that > > > the index range scan is misbehaving, it's more likely that the data > > > volume is so great from that access operation that Oracle is having to > > > filter the results on one or more remaining conditions. I've > > > personally seen situations where two columns, always used in queries, > > > are indexed independently and only one of the indexes is used, causing > > > Oracle to filter the remaining data on the second, indexex value. > > > Creating a concatenated index on the paired columns substantially > > > reduced the resultset and improved the query time from 18+ minutes to > > > less than a second. So what could appear to be an index scan issue > > > (based solely upon the query plan) became an issue of excessive > > > filtering (revealed by the output from autotrace). > > > > This is why I question the OP's assumption the index range scan is at > > > fault. > > > > > or > > > > SELECT /*+NO_EXPAND */ p.header_id, l.line_id, l.revenue_amount FROM > > > > so_lines_all p, so_lines_all l WHERE p.header_id = :b1 > > > > AND (l.parent_line_id = p.line_id OR l.service_parent_line_id = > > p.line_id); > > > > From the documentation: > > > > "The NO_EXPAND hint prevents the cost-based optimizer from considering > > > OR-expansion for queries having OR conditions or IN-lists in the WHERE > > > clause." > > > > Not knowing how his query is written you cannot state that the > > > NO_EXPAND hint will actually provide any improvement. And it won't > > > improve a filter operation on a large subset of data. > > > > > No_expand game me very good performance improvement. > > > > Because the query you posted using that hint met the conditions that > > > NO_EXPAND addresses. We have no idea how the OP has written this > > > 'problematic' query so such blanket suggestions are out of place, in > > > my opinion. > > > > > 2009/4/21 ddf <orat...@msn.com> > > > > > > On Apr 21, 7:09 am, Daiesh <mcavenkad...@gmail.com> wrote: > > > > > > Hi All, > > > > > > > How do speed up the index range scan in Oracle? > > > > > > > Advance wishes!!!.. > > > > > > > Thanks > > > > > > Daiesh > > > > > > Why do you 'need' to 'speed up the index range scan'? Why do you > > > > > think that is the bottleneck? I'd be using autotrace instead of > > > > > simply using explain plan to see what I/O activity your generating > > > > > with that query. The index range scan is probably running as fast as > > > > > possible but it's generating a large result set to filter on another > > > > > criteria. Filtering large volumes of data will consume time, time > > you > > > > > might be able to save with a concatenated index. > > > > > > David Fitzjarrell- Hide quoted text - > > > > > - Show quoted text - > > > > David Fitzjarrell > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Oracle PL/SQL" group. To post to this group, send email to Oracle-PLSQL@googlegroups.com To unsubscribe from this group, send email to oracle-plsql-unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/Oracle-PLSQL?hl=en -~----------~----~----~----~------~----~------~--~---