Long Running Queries Using Group By & Order By

I have his query and it takes forever to run. The TABLE 'term' has over a million rows and I think that the 'group by' and the 'Order By' together is killing the execution...
Or is it due to the compute clauses.. I am at loss to understand the whole issue..
Any ideas or thougts on how to solve this issue. Oracle Version is 8.1.6 ...
Please help !!!!
Thanx
Rama
====================
set pages 10000;
set heading on;
compute sum of total on area
compute sum of total on report
break on area skip 2 on report
SELECT c.area area
, b.modelcode model
, count(1) total
FROM leadterm a
,lead e
,term b
,temp_veh b
,leaddealer d
,dealer c
WHERE
a.leadid not in (select leadid from leadno_tmp)
and a.leadid = e.leadid
and a.termid = b.termid
and e.leaddealerid = d.leaddealerid
and ltrim(rtrim(d.vwdealercode)) = ltrim(rtrim(c.dealercode))
group by c.area
, b.modelcode
order by to_number(c.area)
, b.modelcode
exit;

Did you run this query through the explain plan yet?
A few thoughts:
- Order by is not needed, since group by automatically sorts the records.
- Assuming that dealercode is a primary key, ltrim and rtrim functions will cause Oracle NOT to use indexes, but a full table scan. If a foreign key is defined, then ltrim and rtrim should not be necessary at all.
- Instead of "not in" use "where not exists"

Similar Messages

  • How can i cancel long running queries (red x doesnt work)

    hi there
    i am trying to work with some long running queries - it would be very nice to be able to cancel them (like toads cancel button)
    I have tried the red X in the circle but it doesnt seem to work - it appears to have cancelled it (the cylon-eye style comfort bar stops ocillating) but if i try to use the connection again, or disconnect or open another connection it says:
    "connection currently busy. Try again?"
    i have tried this in the latest release vanilla & the latest release plus patch 2
    thanks
    Martin

    Good news that this will be improved. Can't resist to post this Link: [plsql forum thread about start/stop.. | http://forums.oracle.com/forums/thread.jspa?forumID=75&threadID=927697]
    I have experienced the same and also noted that it feels better to execute stored procedures in sqldeveloper
    - by editing
    - compiling (might hang if already busy)
    - run from the same dialog just to get the the cylon's eye for emergency stops (which waits .... ) meanwhile jump to apex to fiddle with small table triggering exception to stop the procedure.
    If stored procedure is executed from the list via 'right mouse click'-style then you see in the log-region "connecting to databse ... ." but no method to stop nor cancel or cylon's eye is well hidden.
    When such "busy" is running I also noted that the database-connection right mouse click has greyed/inactivated the selections "connect/disconnect" so the next logical step for stopping via "disconnect" is out of the question.
    I think this also boils down also to question whether the user has rights to see gv$session and be able to drop/stop busy/jamming sessions. E.g. public synonyms listing has small icons with mystic red :)
    /paavo
    Java(TM) Platform     1.6.0_14
    Oracle IDE     1.5.4.59.40

  • Cancelling of Long Running Queries feature for GRID data block

    Hi,
    Maybe someone knows solution-
    we have custom form with Spreadtable (JTF_GRID object) block (similar as, for example, EBS form WMSCTLBD).
    Is here any possibility to enable ‘Cancel Long Running Queries’ feature for it?
    I have reviewed built-in JTF_GRID library (with hope to implement it by adding some custom timer) but I cannot find any API which could be used for cancelling already submitted queries.
    I have created a SR but analyst suggested to ask for it in forums :)
    Our Oracle Forms Version is 6.0.8.28.0
    Thanks in advance.
    BR,
    Kristaps

    Try CTRL-ALT-DELETE
    :-)

  • Resolving long running queries

    Hi,
    Can we directly implement the recommendations provided by Oracle EM's SQL Tuning advisor *(10g)* as it's for long running queries or we have to do any extra steps?
    I hope we have to compare the SQL Execution plan for the existing query and the recommended query, is this enough or any more? Please post
    Thanks
    Hari.

    Hi,
    i think
    Can we directly implement the recommendations provided by Oracle EM's SQL Tuning advisor *(10g)* as it's for long running queries or we have to do any extra steps?
    NO you cann't. I.e you can accept the profile recommended by Advanced optimizer but it wont affect/change already long runing query.
    I hope we have to compare the SQL Execution plan for the existing query and the recommended query, is this enough or any more? Please post
    Generally SQL profile contain advance information needed by optimizer to produce efficient explain plan. If you look inside SQL profile, you will find that it ultimately contains some set of SQL HINTS.
    So answer to your first question NO because when SQL first hard parse/soft parse it already have generate/used plan for its query, so you cannt change existing running query. The new accepted SQL profile will be used in Next run.
    Answers to your second question - Once you run the SQL tuning advisor you would generally see other recommends too, for example statistics are stale, create new set of indexes etc etc. So you should first focus on these recommendations first. I know its bit cubersome to implement all these recommendations but practically when you implement these reco (apart from accepting sql profile) and again run SQL Tuning advisor then could see previous recommendations went away(as you already implemented them), but if SQL Tuning advisor again recommends you to accept profile then i think it would be OK. Because you already explored other tunning techniques recommended by optimizer. Also SQL profile too can become stale and for which you should maintain them.

  • Terminating long running queries

    For our web reporting application we're using SQR with Oracle 9 as a back end tool. The front end, using a java servlet, invokes SQR program, which in turn connects to the data base with a common (not user specific) user name and generates an output.
    The problem is that when a query runs for too long, the front end will time out or a user may close the window and start over. But when the client session is aborted, the server session is still running consuming resources, which makes the next query performance even worse.
    Question 1: Is there any way that upon connection to the database I can get a session ID, so I can use it to kill the server session before the client session is aborted.
    Question 2: Is there any other way of managing these long running queries and their orphan server sessions.

    You may:
    select sid, serial#, machine, program, username
    from v$session;

  • Profiler execution plan ONLY for long running queries

    The duration only applies to specific profiler events however I'd like to capture the execution plan ONLY for queries over 10 minutes.
    Is there a way to do this using Xevents?
    Anyone knows?
    Thanks!
    Paula

    I've wanted that too but could not find a way to get it from profiler.
    But it may be possible with xevents (or without xevents!) to watch for long-running queries and then get the plan from the cache,where it will probably stick for some time, using DMVs.
    Josh

  • Finding the long running queries

    Hello, I am able to find the long running queries in my database as below.
    SQL> select sid,serial#
    2 from v$session_longops
    3 where time_remaining > 0
    4 order by time_remaining desc;
    SID SERIAL#
    1100 4411
    1383 3912
    1295 2493
    SQL>
    With this info, i want to find out what sql code related to these (SID,SERIAL#). The SQL code comes from v$sqlarea. But i am not able to join v$session_longops with v$sqlarea. Any help is highly appreciated.
    Here is my database version.
    Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bi
    PL/SQL Release 10.2.0.4.0 - Production
    CORE 10.2.0.4.0 Production
    TNS for Linux: Version 10.2.0.4.0 - Production
    NLSRTL Version 10.2.0.4.0 - Production

    Thank you!!!
    select     
    A.SID ,
    A.SERIAL# ,
    A.OPNAME ,
    A.TARGET ,
    A.TARGET_DESC,
    A.SOFAR ,
    A.TOTALWORK ,
    A.UNITS ,
    A.START_TIME ,
    A.LAST_UPDATE_TIME ,
    A.ELAPSED_SECONDS ,
    A.CONTEXT ,
    A.MESSAGE ,
    A.USERNAME ,
    B.sql_fulltext
    from     v$session_longops a,
    v$sqlarea b
    where a.sql_id = b.sql_id
    and     time_remaining > 0
    order by time_remaining desc

  • Long Running Queries / Multicube

    Hi,
    Please can some one help to find this
    1. To identify top 5 long running queries on each multiprovider
    2. Some of the multi providers have lot of cubes within it but they are not used at all.
    To find out in last 6 months which base providers are not used or even if used they bring zero records

    Hi
    This is due to the poor system performance
    Check ur Statistics and no of records per data packet
    and u have to raise ticket if this is a permanent problem
    Check if there's a short dump in ST22. Also make sure that volume of data that you are trying to update is managable.
    Check to where the time is being taken whether is on the source side or BW side.
    Check for any customizations whatsoever on the source side and the BW side.
    Break down the data packet size to smaller chunks.
    Check if there is any routines/code that is causing the long running loads and optimize that.
    Check SM58 to see if there are any stuck data packets.
    hope it helps
    regards
    gaurav
    Edited by: Gaurav  Paul on Sep 24, 2008 4:18 PM

  • How to get the list of long running queries

    hi,
         my requirement is to get the list of long running queries in bi and also what are the steps to reduce running time of quires.
    thanks.

    Hi Venkat,
    The statistics information will give you time the query takes while opening it
    For Eg,with BEx Analyzer,you have an option in Global Settings->Display Statistics.
    If you open a query from backend in Analyzer,and then click "Display Statistics",it will show the amount of time it takes to load it.
    Other than this there might be some tcodes available to read this value.
    Rgds,
    Murali

  • Identify Long Running Queries

    Hi,
    I need to identify the long running queries from a asp.net web application where connection pooling is enabled
    and need to stop them without killing session.
    Please guide me
    Thanks & Regards
    Nimish Garg

    SELECT  SYS_CONTEXT('USERENV','SERVER_HOST')           ENV,
            SYS_CONTEXT('USERENV','DB_NAME')               DATABASE_NAME,
            ROUND(A.ELAPSED_TIME / A.EXECUTIONS / 1000000) SQL_AVERAGE_ELAPSED_TIME,
            A.SQL_ID                                       SQL_ID,
            A.SQL_FULLTEXT                                 SQL_TEXT,
            A.EXECUTIONS                                   SQL_EXECUTIONS,
            NVL(S.PROGRAM,A.MODULE)                        SESSION_PROGRAM_NAME,
            NVL(S.USERNAME,A.PARSING_SCHEMA_NAME)          SESSION_USER_NAME,
            S.OSUSER                                       SESSION_OS_USER_NAME
      FROM  V$SQLAREA A,
            V$SESSION S
      WHERE A.SQL_ID = S.SQL_ID(+)
        AND A.EXECUTIONS > 0
        AND ROUND(A.ELAPSED_TIME / A.EXECUTIONS / 1000000) > threshold-in-seconds
    /SY.

  • Pause long running queries...

    Is there a way to pause for a moment long running queries? or.. to give them lower prioriry during runtime? (even if they're already started)

    No.

  • Advice  on long running queries

    Hi all
    I am a junior dba and facing problem of log runninig queries. Can anyone help and let me know how to resolve the long running queries. I mean what should be the approach to findout out the problem.
    Please guide me.
    thanx
    Ajay

    >
    OK, so what about your buddy Jonathan Lewis who
    includes THREE hyperlinks in his sig line?
    Regards
    Jonathan Lewis
    http://jonathanlewis.wordpress.com
    Author: Cost Based Oracle: Fundamentals
    http://www.jlcomp.demon.co.uk/cbo_book/ind_book.html
    The Co-operative Oracle Users' FAQ
    http://www.jlcomp.demon.co.uk/faq/ind_faq.html
    Tsk, tsk, the naughty little man is telling lies again.
    There's a search feature on the Oracle forum - it let's you search by user and ask for key words. I've searched against my identify looking for "ind_faq", and then for "cbo_book". It doesn't return any posts with that sig.
    And here's another thought: your comment about me being a buddy of Sybrand (who you were trying to claim did not exist just a few hours ago) reminded me that I have had reasons to criticise him in the recent past - for example Re: to_char and performance - and he managed to take it without descending into a hissy fit.
    And finally - a little logical error on your part. The fact that I know that Sybrand Bakker exists does not mean that he is a buddy of mine or that I am a buddy of his. After all, I know that you exist.
    Regards
    Jonathan Lewis
    http://jonathanlewis.wordpress.com
    http://www.jlcomp.demon.co.uk

  • Long running reports using java servlets

    Hello,
    I'm running into a problem using java servlets to produce database reports and sending them back to the client browser as excel or html. The problem comes into play when the user has submitted two reports then goes to run a third and the browser hangs. I realized now that this is because of the two active connections that the user already has to the app server. Does anyone have any suggestions on how to get around this? I'm trying to now write the report to the server, and provide the browser with a url, but it seams as though the connection isn't totally closed even though I close the response printwriter.... Any suggestions would be greatly appreciated....

    Unfortunately I dont have an answer to your question, but:
    If the reports are large/long running, should they be generated on demand? You could schedule the reports to be generated every day, month or whenever appropriate, stored on the server and then quickly pulled by the user whenever needed.

  • Can no longer run queries with 7.10 GUI after BI upgrade to 7.3

    We have some users who can no longer run BEx workbooks.  The selection screens no longer pop-up.  We upgraded to BI 7.3.  Not all users having this problem.  they are all using GUI 7.10, Excel 2003, OS XP

    SAP NW BI BEx Compatibility of MS Operating Systems and Office Products
    Regards,
    Sushant

  • Cancel long running queries

    Hi Folks,
    Is it possible to submit a SELECT statment using OraSqlStmt object and retrieve the data so generated?
    I want to submit a long-running SELECT query against Oracle, and have the option to cancel the query.
    I can submit the query asynchronously NONBLK option of OraSqlStmt and then be able to cancel it. However, I also want to display the dataset returned by the query. But I think it is not possible to create a dataset / recordset or dynaset using OraSqlStmt.
    THe question is:
    How can I submit a long running Select query, be able to cancel it and if the query is not cancelled then be able to display the records in a grid? I am using VB6.
    Thanks

    Good news that this will be improved. Can't resist to post this Link: [plsql forum thread about start/stop.. | http://forums.oracle.com/forums/thread.jspa?forumID=75&threadID=927697]
    I have experienced the same and also noted that it feels better to execute stored procedures in sqldeveloper
    - by editing
    - compiling (might hang if already busy)
    - run from the same dialog just to get the the cylon's eye for emergency stops (which waits .... ) meanwhile jump to apex to fiddle with small table triggering exception to stop the procedure.
    If stored procedure is executed from the list via 'right mouse click'-style then you see in the log-region "connecting to databse ... ." but no method to stop nor cancel or cylon's eye is well hidden.
    When such "busy" is running I also noted that the database-connection right mouse click has greyed/inactivated the selections "connect/disconnect" so the next logical step for stopping via "disconnect" is out of the question.
    I think this also boils down also to question whether the user has rights to see gv$session and be able to drop/stop busy/jamming sessions. E.g. public synonyms listing has small icons with mystic red :)
    /paavo
    Java(TM) Platform     1.6.0_14
    Oracle IDE     1.5.4.59.40

Maybe you are looking for

  • Flash Player 10 installed but not woking

    I have spent hours and hours trying to solve this issue on my own from all the adobe forums and forums on other websites about this issue. Still can't get FP to work and I need it working ASAP for my on-line college classes. Getting very desperate an

  • HT1689 Does my iTunes account recognise the same purchases I have made on my Macbook Pro?

    Hi there I have purchased an entire TV series on my iPad2. Only problem is now I do not have enough room left on my iPad to accomodate the rest of the episodes. Can I log in to iTunes on my macbook pro and download the rest of the episodes and watch

  • How can I delete the gap tool from the tools panel?

    I find it useless and I want the type tool where it has always been. I'd like the pallets to be layed out like indsign CS3. Thank You.

  • Ecommerce Shopping Carts Extensions

    Any reviews / recommendations for ecommerce solutions / carts designed to work with dwcs3?

  • Success Kit reverted

    I was awaiting for the success kit, certificate of Oracle Pl/Sql Developer Certified Associate. It arrived when I was not present at the given address, and it was not delivered to me and sent back to Oracle. Now, I will be highly obliged if you pleas