About generating an EXPLAIN plan

What is its use?

Hi
Good inputs. Hovewer explain plan is not only used by CBO but for RBO (Rule Based Optimizer), too.
SQL> explain plan for
  2  select /*+ RULE */
  3  * 
  4  from dba_objects;
Explained.
SQL> select * from table (dbms_xplan.display);
PLAN_TABLE_OUTPUT
| Id  | Operation                      |  Name        | Rows  | Bytes | Cost  |
|   0 | SELECT STATEMENT               |              |       |       |       |
|   1 |  VIEW                          | DBA_OBJECTS  |       |       |       |
|   2 |   UNION-ALL                    |              |       |       |       |
|*  3 |    FILTER                      |              |       |       |       |
|   4 |     TABLE ACCESS BY INDEX ROWID| OBJ$         |       |       |       |
|   5 |      NESTED LOOPS              |              |       |       |       |
|   6 |       TABLE ACCESS FULL        | USER$        |       |       |       |
|*  7 |       INDEX RANGE SCAN         | I_OBJ2       |       |       |       |
|*  8 |     TABLE ACCESS BY INDEX ROWID| IND$         |       |       |       |
|*  9 |      INDEX UNIQUE SCAN         | I_IND1       |       |       |       |
|  10 |    TABLE ACCESS BY INDEX ROWID | LINK$        |       |       |       |
|  11 |     NESTED LOOPS               |              |       |       |       |
|  12 |      TABLE ACCESS FULL         | USER$        |       |       |       |
|* 13 |      INDEX RANGE SCAN          | I_LINK1      |       |       |       |
Predicate Information (identified by operation id):
   3 - filter("SYS_ALIAS_1"."TYPE#"<>1 AND "SYS_ALIAS_1"."TYPE#"<>10 OR
              "SYS_ALIAS_1"."TYPE#"=1 AND  (SELECT 1 FROM "SYS"."IND$" "I" WHERE
              "I"."OBJ#"=:B1 AND ("I"."TYPE#"=1 OR "I"."TYPE#"=2 OR "I"."TYPE#"=3 OR
              "I"."TYPE#"=4 OR "I"."TYPE#"=6 OR "I"."TYPE#"=7 OR "I"."TYPE#"=9))=1)
   7 - access("SYS_ALIAS_1"."OWNER#"="U"."USER#" AND "SYS_ALIAS_1"."LINKNAME"
              IS NULL)
       filter("SYS_ALIAS_1"."LINKNAME" IS NULL AND
              "SYS_ALIAS_1"."NAME"<>'_default_auditing_options_' AND
              "SYS_ALIAS_1"."NAME"<>'_NEXT_OBJECT')
   8 - filter("I"."TYPE#"=1 OR "I"."TYPE#"=2 OR "I"."TYPE#"=3 OR "I"."TYPE#"=4
              OR "I"."TYPE#"=6 OR "I"."TYPE#"=7 OR "I"."TYPE#"=9)
   9 - access("I"."OBJ#"=:B1)
  13 - access("L"."OWNER#"="U"."USER#")
Note: rule based optimization
38 rows selected.
SQL> Bye, Aron

Similar Messages

  • Explain me about cost in explain plan.

    Hi All,
    Please explain me about cost in explain plan.
    Below is my explan plans
    1. first plan showing cost is more but query is returing the result very fast (564 msecs ) --- local database.
    2. second plan showing less cost but result is very slow (14 secs) .
    1. local database.
    PLAN_TABLE_OUTPUT 
    | ID  | Operation                         | NAME                      | ROWS  | Bytes | COST  |
    |   0 | SELECT STATEMENT                  |                           |    17 |  2312 |    60 |
    |   1 |  SORT UNIQUE                      |                           |    17 |  2312 |    59 |
    |   2 |   COUNT STOPKEY                   |                           |       |       |       |
    |   3 |    NESTED LOOPS                   |                           |    17 |  2312 |    58 |
    |   4 |     MAT_VIEW ACCESS BY INDEX ROWID| MV_EDECO_ESONGS           |    17 |  1326 |    24 |
    |   5 |      INDEX RANGE SCAN             | IDX_ESNG_REG_TITLE        |    21 |       |     3 |
    |   6 |     TABLE ACCESS BY INDEX ROWID   | MV_EDECO_ESONGS_TERR_CTRY |     1 |    58 |     2 |
    |   7 |      INDEX UNIQUE SCAN            | IDX_ESNG_TERR_ESNG_ID_1   |     1 |       |     1 |
    PLAN_TABLE_OUTPUT
    | ID  | Operation                         | NAME                       | ROWS  | Bytes | COST  |
    |   0 | SELECT STATEMENT                  |                            |     9 |  1260 |    34 |
    |   1 |  SORT UNIQUE                      |                            |     9 |  1260 |    33 |
    |   2 |   COUNT STOPKEY                   |                            |       |       |       |
    |   3 |    NESTED LOOPS                   |                            |     9 |  1260 |    32 |
    |   4 |     MAT_VIEW ACCESS BY INDEX ROWID| MV_EDECO_ESONGS            |     9 |   720 |    14 |
    |   5 |      INDEX RANGE SCAN             | IDX_ESNG_REG_TITLE         |    11 |       |     3 |
    |   6 |     MAT_VIEW ACCESS BY INDEX ROWID| MV_EDECO_ESONGS_TERR_CTRY  |     1 |    60 |     2 |
    |   7 |      INDEX UNIQUE SCAN            | PK_EDESONGSTERCTRY_ESONGID |     1 |       |     1 |
    ------------------------------------------------------------------------------------------------Regards,
    Rajasekhar

    rajasekhar_n wrote:
    Hoek, I have cross checked the results both the querys are precessing same records and returing same result *(both are using DB links).*But you said the first query was on a local database?
    If you're using dblinks then it's not local is it! ?:|

  • SQLDeveloper can't generate an explain-plan when using "cube"

    If I want to create an explain-plan from the following statement, I get no explain-plan:
    SELECT 1
    FROM   dual
    GROUP BY CUBE( 2, 2, 2, 2, 2, 2, 2, 2, 2 )If I now want to create an explain-plan again, I get the following message (and still no explain-plan):
    http://i.imgur.com/mGO6Z.jpg
    I tried this a few times and of course with a fresh db-session where i didn't run any statements before.
    I get this with:
    SQLDeveloper Version 3.0.04 Build MAIN-04.34 (i.e. production)
    DB 9.2.0.1.0
    Oracle Instant Client 11.1.0.6.0
    In Toad this works btw.
    (Of course it makes no sense to run it on this statement, we encountered this problem with a really big SQL-statement where "cube" was used in an inline-view. SQLDeveloper then wasn't able to generate an explain-plan for the whole-statement)
    Regards
    Markus

    that is correct.  I wanted to keep the login page redirect inside my class method so that I could do the check every time someone came to pages that require authentication. I wanted it in the LoadState method so I can do a check there, redirect
    them to login page or just get a cookie and then pass that cookie to page to build the UI for the page
    I can do what you are suggesting and have actually tried it but then I have to track which page to take the user to after they log in...
    I have multiple clicks in the appbar  and pages from where the user can come to these authentication-bound pages..
    Suggestions?
    Also, what am I doing wrong in my class method that it doesn't navigate to the login page in the LoadState method?
    Thanks 
    mujno

  • How to proceed further once the explain plan and trace files are generated?

    Hi Friends,
    I need to improve the performance of on of the views that i am working on.
    As suggested in the thread - http://forums.oracle.com/forums/thread.jspa?threadID=863295&tstart=0 , i gave generated the explain plan and the trace file.
    From the explain plan, we can see the expensive operations for the query.
    Can any one please tell, how to proceed further from here on i.e. how to make this expensive operations less expensive?
    For ex: FULL TABLE SCAN might be an expensive operation when the table has indexes.In such cases, how can we avoid such operations to make query faster?
    Regards,
    Sreekanth Munagala.

    Hi Veena,
    An earlier post by you regarding P45 is as below
    Starter report P45(3) / P46 efiling for UK
    from my understanding though i have not worked on GB Payroll you have said that you deleted IT 65 details of leaver,however there must be clusters generated in system from where the earlier data needs to be deleted and may be that is why you are facing the issue.
    In Indian payroll when we execute text file for efiling of tax after challan mapping all the data compiles and sits in PCL cluster and therefore we are unable to generate form 16 with proper output,here we delete the clusters and rerun again the mappings and then check form 16.
    Hope this might help you,Experts have suggested you earlier also,they may correct me for this.
    Salil

  • Unable to generate explain plan from toad

    HI,
    Toad Version:8.6
    I was unable to generate the explain plan in the toad.Here i create PLAN_TOAD table also but it is still getting the same error
    ORA-00942: table or view does not exist

    Hello,
    You created the Table PLAN_TABLE but you must check the configuration of TOAD.
    It seems to me that by default TOAD use the Table TOAD_PLAN_TABLE.
    So, you must set the right name of the Table (or rename the Table PLAN_TABLE).
    Best regards,
    Jean-Valentin Lubiez

  • Problems with explain plan and statement

    Hi community,
    I have migrated a j2ee application from DB2 to Oracle.
    First some facts of our application and database instance:
    We are using oracle version 10.2.0.3 and driver version 10.2.0.3. It runs with charset Unicode 3.0 UTF-8.
    Our application is using Tomcat as web container and jboss as application server. We are only using prepared statements. So if I talk about statements I always mean prepared statements. Also our application is setting the defaultNChar property to true because every char and varchar field has been created as an nchar and nvarchar.
    We have some jsp sites that contains lists with search forms. Everytime I enter a value to the form that returns a filled resultset, the lists are performing great. But everytime I enter a value that returns an empty resultset, the lists are 100 times slower. The jsp sites are running in the tomcat environment and submitting their statements directly to the database. The connections are pooled by dbcp. So what can cause this behaviour??
    To anaylze this problem I started logging all statements and filled-in search field values and combinations that are executed by the lists described above. I also developed a standalone helper tool that reads the logged statements, executes them to the database and generates an explain plan for every statement. But now there appears a strange situation. Every statement, that performs really fast within our application, is now executed by the helper tool extremely slow. So I edited some jsp pages within our application to force an explain plan from there (tomcat env). So when I'm executing the same statement I'm getting with the exactly same code two completely different explain plans.
    First the statement itself:
    select LINVIN.BBASE , INVINNUM , INVINNUMALT , LINVIN.LSUPPLIERNUM , LSUPPLIERNUMEXT , LINVIN.COMPANYCODE , ACCOUNT , INVINTXT , INVINSTS , INVINTYP , INVINDAT , RECEIPTDAT , POSTED , POSTINGDATE , CHECKCOSTCENTER , WORKFLOWIDEXT , INVINREFERENCE , RESPONSIBLEPERS , INVINSUM_V , INVINSUMGROSS_V , VOUCHERNUM , HASPOSITIONS , PROCESSINSTANCEID , FCURISO_V , LSUPPLIER.AADDRLINE1 from LINVIN, LSUPPLIER where LINVIN.BBASE = LSUPPLIER.BBASE and LINVIN.LSUPPLIERNUM = LSUPPLIER.LSUPPLIERNUM and LINVIN.BBASE = ? order by LINVIN.BBASE, INVINDAT DESC
    Now the explain plan from our application:
    | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
    | 0 | SELECT STATEMENT | | 101 | 28583 | 55 (0)| 00:00:01 |
    | 1 | NESTED LOOPS | | 101 | 28583 | 55 (0)| 00:00:01 |
    | 2 | TABLE ACCESS BY INDEX ROWID| LINVIN | 93709 | 12M| 25 (0)| 00:00:01 |
    |* 3 | INDEX RANGE SCAN | LINV_INVDAT | 101 | | 1 (0)| 00:00:01 |
    | 4 | TABLE ACCESS BY INDEX ROWID| LSUPPLIER | 1 | 148 | 1 (0)| 00:00:01 |
    |* 5 | INDEX UNIQUE SCAN | PK_177597 | 1 | | 1 (0)| 00:00:01 |
    Predicate Information (identified by operation id):
    3 - access("LINVIN"."BBASE"=:1)
    filter("LINVIN"."BBASE"=:1)
    5 - access("LSUPPLIER"."BBASE"=:1 AND "LINVIN"."LSUPPLIERNUM"="LSUPPLIER"."LSUPPLIERNUM")
    Now the one from the standalone tool:
    | Id | Operation | Name | Rows | Bytes |TempSpc| Cost (%CPU)| Time |
    | 0 | SELECT STATEMENT | | 93773 | 25M| | 12898 (1)| 00:02:35 |
    | 1 | SORT ORDER BY | | 93773 | 25M| 61M| 12898 (1)| 00:02:35 |
    |* 2 | HASH JOIN | | 93773 | 25M| 2592K| 7185 (1)| 00:01:27 |
    | 3 | TABLE ACCESS BY INDEX ROWID| LSUPPLIER | 16540 | 2390K| | 332 (0)| 00:00:04 |
    |* 4 | INDEX RANGE SCAN | LSUPPLIER_HAS_BASE_FK | 16540 | | | 11 (0)| 00:00:01 |
    | 5 | TABLE ACCESS BY INDEX ROWID| LINVIN | 93709 | 12M| | 6073 (1)| 00:01:13 |
    |* 6 | INDEX RANGE SCAN | LINVOICE_BMDT_FK | 93709 | | | 84 (2)| 00:00:02 |
    Predicate Information (identified by operation id):
    2 - access("LINVIN"."BBASE"="LSUPPLIER"."BBASE" AND "LINVIN"."LSUPPLIERNUM"="LSUPPLIER"."LSUPPLIERNUM")
    4 - access("LSUPPLIER"."BBASE"=:1)
    6 - access("LINVIN"."BBASE"=:1)
    The size of the tables are: LINVIN - 383.692 Rows, LSUPPLIER - 115.782 Rows
    As you can see the one executed from our application is much faster than the one from the helper tool. So why picks oracle a completely different explain plan for the same statement? An why is a hash join much slower than a nested loop? Because If I'm right a nested loop should only be used when the tables are pretty small..
    I also tried to play with some parameters:
    I set optimizer_index_caching to 100 and optimizer_index_cost_adj to 30. I also changed optimizer_mode to FIRST_ROWS_100.
    I would really appreciated, if somebody can help me with this issue, because I'm really getting more and more distressed...
    Thanks in advance,
    Tobias
    Edited by: tobiwan on Sep 3, 2008 11:49 PM
    Edited by: tobiwan on Sep 3, 2008 11:50 PM
    Edited by: tobiwan on Sep 4, 2008 12:01 AM
    Edited by: tobiwan on Sep 4, 2008 12:02 AM
    Edited by: tobiwan on Sep 4, 2008 12:04 AM
    Edited by: tobiwan on Sep 4, 2008 12:06 AM
    Edited by: tobiwan on Sep 4, 2008 12:06 AM
    Edited by: tobiwan on Sep 4, 2008 12:07 AM

    tobiwan wrote:
    Hi again,
    Here ist the answer:
    The problem, because I got two different explain plans, was that the external tool uses the NLS sesssion parameters coming from the OS which are in my case "de/DE".
    Within our application these parameters are changed to "en/US"!! So if I'm calling in my external tool the java function Locale.setDefault(new Locale("en","US")) before connecting to the database the explain plans are finally equal.That might explain why you got two different execution plan, because one plan was obviously able to avoid a SORT ORDER BY operation, whereas the second plan required to run SORT ORDER BY operation, obviously because of the different NLS_SORT settings. An index by default uses the NLS_SORT = 'binary' order whereas ORDER BY obeys the NLS_SORT setting, which probably was set to 'GERMAN' in your "external tool" case. You can check the "NLS_SESSION_PARAMETERS" view to check your current NLS_SORT setting.
    For more information regarding this issue, see my blog note I've written about this some time ago:
    http://oracle-randolf.blogspot.com/2008/09/getting-first-rows-of-large-sorted.html
    Now let me make a guess why you observe the behaviour that it takes so long if your result set is empty:
    The plan avoiding the SORT ORDER BY is able to return the first rows of the result set very quickly, but could take quite a while until all rows are processed, since it requires potentially a lot of iterations of the loop until everything has been processed. Your front end probably by default only display the first n rows of the result set and therefore works fine with this execution plan.
    Now if the result set is empty, depending on your data, indexes and search criteria, Oracle has to work through all the data using the inefficient NESTED LOOP approach only to find out that no data has been found, and since your application attempts to fetch the first n records, but no records will be found, it has to wait until all data has been processed.
    You can try to reproduce this by deliberately fetching all records of a query that returns data and that uses the NESTED LOOP approach... It probably takes as long as in the case when no records are found.
    Note that you seem to use bind variables and 10g, therefore you might be interested that due to the "bind variable peeking" functionality you might potentially end up with "unstable" plans depending on the values "peeked" when the statement is parsed.
    For more information, see this comprehensive description of the issue:
    http://www.pythian.com/blogs/867/stabilize-oracle-10gs-bind-peeking-behaviour-by-cutting-histograms
    Note that this changes in 11g with the introduction of the "Adaptive Cursor Sharing".
    Regards,
    Randolf
    Oracle related stuff blog:
    http://oracle-randolf.blogspot.com/
    SQLTools++ for Oracle (Open source Oracle GUI for Windows):
    http://www.sqltools-plusplus.org:7676/
    http://sourceforge.net/projects/sqlt-pp/

  • Efficient way to read through big explain plan and genterate html explain plan for sql id's executed in past

    Hi,
    I have a sql which is recently having a performance problems in Production. I have generated a explain plan for it trying to find out what it is doing but plan itself is close to 1000 lines. I want to check if there is any efficient way to go through big plan like this one and quickly find the damaging areas..
    2) I also wanted to know if there is way to generate explain plans in HTML format which executed in past and have entry in dba_hist_sqltext.
    3) I also have two sql_monitor reports which I want to compare. is there any efficient way to do it as well?
    Please share your thoughts!
    Thanks in advance!
    Regards,
    Suman-

    Hi,
    I suggest you can try running sql advisor on the query maybe something fruitful comes up
    http://www.oracle-base.com/articles/11g/sql-access-advisor-11gr1.php
    I am not sure about the explain plan being printed in html format but
    You may also want to try the sqlhistory.sql query from below page
    http://evdbt.com/scripts/
    I have used it many times to check on executions and explain plans which may have changed over the period
    I have faced it many times , the query picks up a bad explain plan and performs poorly

  • Explain Plan in SQL Developer vs. SQLPlus

    Hi everyone,
    I've got a quick question. Why would an explain plan hang in SQL Developer but come back immediately in SQL Plus?
    For example, in SQL developer, I write my statement and use the F6 command to bring up the explain plan and it just hangs and hangs. It looks like it's trying to generate an explain plan, but it's been running for hours now.
    When I log into SQL Plus, I do a
    SQL> explain plan for <query>:
    SQL> select * from table(dbms_xplan.display);That whole process takes less than a minute to get the explain plan.
    Is there something fundamentally different being executed by SQL Developer?
    Thanks!
    -Joe

    Joe,
    F6 in SQL Developer runs an AutoTrace, which actually runs the SQL and also displays timings and the explain plan. If you only want the explain plan, use F10.
    Regards,
    Bob

  • Explain Plan in pl/sql

    Dear All.
    DBMS_XPLAN.DISPLAY_CURSOR(
       sql_id        IN  VARCHAR2  DEFAULT  NULL,
       child_number  IN  NUMBER    DEFAULT  NULL,
       format        IN  VARCHAR2  DEFAULT  'TYPICAL');
    SQL> SELECT * FROM table (
      2     DBMS_XPLAN.DISPLAY_CURSOR('b7jn4mf49n569'));
    PLAN_TABLE_OUTPUT
    SQL_ID  b7jn4mf49n569, child number 0
    select o.name, u.name from obj$ o, type$ t, user$ u  where o.oid$ = t.tvoid and
    u.user#=o.owner# and  bitand(t.properties,8388608) = 8388608 and
    (sysdate-o.ctime) > 0.0007
    Plan hash value: 4266358741
    | Id  | Operation                     | Name    | Rows  | Bytes | Cost (%CPU)| T
    |   0 | SELECT STATEMENT              |         |       |       |    94 (100)|
    |   1 |  NESTED LOOPS                 |         |     1 |    72 |    94   (2)| 0
    |   2 |   NESTED LOOPS                |         |     1 |    56 |    93   (2)| 0
    |*  3 |    TABLE ACCESS FULL          | OBJ$    |    71 |  2414 |    37   (3)| 0
    |*  4 |    TABLE ACCESS BY INDEX ROWID| TYPE$   |     1 |    22 |     1   (0)| 0
    |*  5 |     INDEX UNIQUE SCAN         | I_TYPE2 |     1 |       |     0   (0)|
    |   6 |   TABLE ACCESS CLUSTER        | USER$   |     1 |    16 |     1   (0)| 0
    |*  7 |    INDEX UNIQUE SCAN          | I_USER# |     1 |       |     0   (0)|
    PLAN_TABLE_OUTPUT
    Predicate Information (identified by operation id):
       3 - filter(("O"."OID$" IS NOT NULL AND SYSDATE@!-"O"."CTIME">.0007))
       4 - filter(BITAND("T"."PROPERTIES",8388608)=8388608)
       5 - access("O"."OID$"="T"."TVOID")
       7 - access("U"."USER#"="O"."OWNER#")
    29 rows selected
    SQL> As you can see using DBMS_XPLAN.DISPLAY_CURSOR. I can display the explain plan of any query IN SQL*PLUS.
    But I want to write a PL/SQL function that generating an explain plan for any query and displaying the explain plan in a htlm page
    how can i do same thing in pl/sql? I need yours advice.
    Thanks in advance!

    Generate the plan like so:
    begin
    execute immediate 'explain plan for select * from dual';
    end;Then you can put the dbms_xplan.display bit into a ref cursor and pass that across to the front end.
    Eg:
    SQL> variable rc refcursor
    SQL> begin
      2  execute immediate 'explain plan for select * from dual';
      3  open :rc for select * from table(dbms_xplan.display);
      4* end;
    SQL> /
    PL/SQL procedure successfully completed.
    SQL> print rc;
    PLAN_TABLE_OUTPUT
    Plan hash value: 3543395131
    | Id  | Operation         | Name | Rows  | Bytes | Cost (%CPU)| Time     |
    |   0 | SELECT STATEMENT  |      |     1 |     2 |     5   (0)| 00:00:01 |
    |   1 |  TABLE ACCESS FULL| DUAL |     1 |     2 |     5   (0)| 00:00:01 |
    8 rows selected.

  • How can i paste the explain plan from toad..

    Hello all
    I tried taking a snap of the explain plan from toad but in this forum the paste option is disabled...please help

    964145 wrote:
    I tried taking a snap of the explain plan from toad but in this forum the paste option is disabled...please helpI don't know, but it is a waste of time since explain plans from Toad are not useful.
    Please read the forum FAQ on providing information for a tuning request, it describes how to generate an explain plan that can be shared.
    {message:id=9360003}
    This is an example.
    SQL> explain plan for
      2  select * from dual;
    Explained.
    SQL> select * from table(dbms_xplan.display);
    PLAN_TABLE_OUTPUT
    Plan hash value: 3543395131
    | Id  | Operation         | Name | Rows  | Bytes | Cost (%CPU)| Time     |
    |   0 | SELECT STATEMENT  |      |     1 |     2 |     2   (0)| 00:00:01 |
    |   1 |  TABLE ACCESS FULL| DUAL |     1 |     2 |     2   (0)| 00:00:01 |
    --------------------------------------------------------------------------

  • Explain plan for update

    Hi
    I am new to the sql tuning.
    When I wrote this below query  and generate the explain plan ,It is showing following 3 steps .
    1.very row in table employees is read .
    2.Rows were updated.
    3.Rows were updated.
    Why the oracle is doing the update operation 2 times?Why it is showing 3 stesp where as I ma expecting only 2 steps something like below .
    1.very row in table employees is read .
    2.Rows were updated.
    update employees
    set salary = 2300
    thanks
    sri

    Hi ,pleaase find below the explain plan generated .
    update  feed set feed_name  = 2300
    Plan
    1 Every row in the table FI_OPERATIONS.FEED  is read.
    2 Rows were updated.
    3 Rows were updated.

  • Explain plan for running query

    Hi everyone,
    I come to know how to generate explain plan for a given query by giving
    Explain plan for select * fro emp;
    Consider a query running for 5 hrs in a session and i want to genrate explain plan for that current query in its 4th hour i dont know the sql as well
    all the steps by step would be much apppreciated
    like finding Current SQL then so on
    Thanks
    Shareef

    912856 wrote:
    Hi everyone,
    I come to know how to generate explain plan for a given query by giving
    Explain plan for select * fro emp;
    Consider a query running for 5 hrs in a session and i want to genrate explain plan for that current query in its 4th hour i dont know the sql as well
    all the steps by step would be much apppreciated
    like finding Current SQL then so on
    Thanks
    ShareefYOu can also use dbms_xplain to generate plan used in v$sql. like for example
    SQL>SELECT  SQL_ID,  CHILD_NUMBER FROM  V$SQL WHERE  SQL_TEXT LIKE 'select * from em%';
    SQL_ID        CHILD_NUMBER
    6kd5fkqdjb8fu            0
    SQL>SELECT  * FROM  TABLE(DBMS_XPLAN.DISPLAY_CURSOR('6kd5fkqdjb8fu',0,'ALLSTATS'));If you need the actual tuntime statistics used by sql statement then you need to put hint /*+ gather_plan_statistics */ in sql ststement, something like
    select /*+ gather_plan_statistics */ * from emp;
    and then generate the explain plan for this
    Have a look
    http://hoopercharles.wordpress.com/2010/03/01/dbms_xplan-format-parameters/
    select * from table(dbms_xplan.display_cursor(null,null,'ALLSTATS LAST'));

  • Explain Plan in DB control

    Hi,
    on 10.2.0.4, is it possible to generate an explain plan ifrom DB control (or isqlplus ) ? If yes how ?
    Thank you.

    SQL> set autotrace traceonly explain
    SQL> select sysdate from dual;
    Execution Plan
    Plan hash value: 1388734953
    | Id  | Operation      | Name | Rows     | Cost (%CPU)| Time     |
    |   0 | SELECT STATEMENT |     |     1 |     2   (0)| 00:00:01 |
    |   1 |  FAST DUAL      |     |     1 |     2   (0)| 00:00:01 |
    -----------------------------------------------------------------

  • Explain Plan in sqldevloper

    Hi,
    in sqldevloper 3.1.07 some users (system or those with DBA role) can generate an explain plan but not all users.
    Is there any option or privilege to grant ?
    Thank you.

    F6 : in SQL Developer runs an AutoTrace,and actually runs the SQL and also displays timings and the explain plan.
    F10. : explain plan
    Read
    http://www.thatjeffsmith.com/archive/2012/02/quick-tip-comparing-explain-plans-with-sql-developer/

  • Explain plan in AWR report?

    Is there any way to generate the explain plan in AWR report?Is it possible to generate the explain plan in AWR?
    Pandu

    Hi,
    AWR: Automatic Workload Repository
    oracle take every 60 minutes a snapshot of statistic in memory and after analysed by ADDM ( automatic database diagnostic monitor) default option, but you can change every 10 minutes or ...
    http://www.oracle-base.com/articles/10g/AutomaticWorkloadRepository10g.php
    http://www.datadisk.co.uk/html_docs/oracle/addm.htm
    http://www.rampant-books.com/t_andert_38_addm_awr_db.htm
    http://www.remote-dba.net/oracle_10g_new_features/db_management.htm
    http://www.sc.ehu.es/siwebso/KZCC/Oracle_10g_Documentacion/server.101/b10752/diagnsis.htm

Maybe you are looking for

  • How can I import an mp4 file from my video camera into my iPad ?

    I'm totally new to this iPad world.  I would like to import a file from my video camera to edit it in iMovies.  I tried adding the file through iTunes, and it appeared to transfer the file to my iPad, but I can't find any way to open the file, not ev

  • How do I reduce the number of pixels in a JPG so I can email it?

    I am unable to reduce the number of pixels in a JPG so I can email it == This happened == Every time Firefox opened == 2 days ago

  • IPhone 3G Montenegro activtion and iTunes issues

    I have bought an iPhone 3G yesterday in T-MOBILE shop in Montenegro. (http://www.apple.com/me/iphone/) When I was trying to activate it on iTunes, my country ("MONTENEGRO") was not listed on registration page, so I had to choose "Yugoslavia" Please n

  • Sony RX100M3 Raw and Elements 13

    Does anyone know if Photoshop Elements 13 for Windows (8) support Sony Raw for RX100 Mark 3?

  • Display webpage for only certain time.

    Hi, I want to display a new webpage from a link for only certain amount of time and get back to original webpage(dont care about the size of webpage). I know to do in javascript but i was wondering if it is possible using JSP & servlets. appreciate a