Finding long running queries inside procedure

Hi All,
Without using trace file or not modifying the existing procedure, is there any way to find out the query which is taking longer time (say out of 20) inside oracle procedure?
Thanks in Advance,
Geetha

Hi,
if you are on your development or test database the best tool (after the sql trace :)) is DBMS_PROFILER. It's easy to use and shows you how long does it take to execute every line of procedure. It helps to find not only slow SQL but also bottlenecks in pl/sql code.
Another option could be Active Session History that every 1s creates snapshot of active sessions. You have to open new session, run the procedure and use query like this:
select *
from v$sql s
    (select sql_id, max(sample_time) - min(sample_time) as duration
    from v$active_session_history
    where sid = sys_context('userenv', 'sid') --SID of the session that executed the procedure
    ) ash
where s.sql_id = ash.sql_id
order by duration desc;

Similar Messages

  • 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

  • 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.

  • 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
    :-)

  • 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

  • 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.

  • 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;

  • 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

  • Find long running database objects over week (without using V$ views)

    find long running database objects over week (without using V$ views) as v$ views contains information only upto objects resides on main memory . I want to know the objects which takes highest time withing one week.

    Hello,
    welcome to the forum.
    This is the forum for the tool {forum:id=260}. Your question about v$views should be posted in {forum:id=61} or {forum:id=75}. There is a FAQ {message:id=9360002}: especially the part about providing essential informations like 4 digit version number :-)
    Regards
    Marcus

  • Problems in creating the report to find top 5 long running Queries

    Hi,
    I am trying to create a report which should give the result for top 5 long runnings queries for the givin multiprovider or all the multi providers.
    I am creating the report on 0TCT_MC01 statistics cube. But it is displaying the result for all queries with all executed times. But i want only top 5. If i include the condition to put top 5, same query is getting if it takes long time.
    how can i achieve this.
    Regards,
    Vishnu

    one more - the 0TCT_MC01  also contains the virtual cube of ST03N type entries not yet loaded to yoru cube
    When was the last time you loaded stats into the base cubes?
    If it was some time ago - then load the cube thus the virtual cube will take less time to retrieve the data
    Or even better - on include infoprovider = 0TCT_C01 inside your query

  • 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

  • Urgent: export table to Excel

    Hi, when button is pressed, needs to create a excel with the data from the table. i know how to create a excel for the version excel 2003. please send the procedure for creating the excel for the versions 2002 & below. Note: i came to know we can do

  • Xslt node recursion

    have the following xml <level levelID="00" checked="false">      <director>Jeff</director>      <level levelID="11" checked="false">           <director>John</director>           <level levelID="22" checked="false">                <director>Bob</dire

  • NEED HELP WITH IPOD 4TH GEN

    I have an ipod touch 4th generation I forgot my password. Every time I try to restore it, it seems as tho its going to work but then comes up with some thing saying THAT I NEED MY PASSWORD. I have no idea what else to do. PLEASE HELP!!

  • HOW TO FIX IT, GARAGE BAND FOUND  AUDIO FILES IN 8 BIT FORMAT. THIS FORMAT IS UNSUPPORTED AND CANNOT BE PLAYED

    HOW TO FIX IT, GARAGE BAND FOUND  AUDIO FILES IN 8 BIT FORMAT. THIS FORMAT IS UNSUPPORTED AND CANNOT BE PLAYED

  • Hide specific content from search engine SEO, javascript

    Hello, I was wondering how good this would work to hide specific content for search engines. <script> var text = '<table><tr><td>Hello</td></tr></table>' document.write(text) </script> I have a site that has a database, when a user arrives at the pag