How to cache out the parse plan up front?

Hi,
Basically I have 2 questions:
(1) When you run a query the first time ,it usually takes longer time because Oracle will parse it to get execution plan first. But afterwards, because of caching , it runs faster. How do I set up so that this step can be skipped when user runs first time?
In other words, any standard method to get the query execution plan planed out first and cache it in the Oracle.
(2) Is this cache per session? Can I keep it always in the cache and not cycled out? Also if per session, can I possibly make it per database wise?
Thanks in advance!
Acton

1) Perhaps, perhaps not. There are too many variables that can influence execution time. Usually (not always), the parse phase consumes very little of the reponse time. However, I have seen this phase be the #1 contributor to poor response time. If you trace the query, execute it repeatedly, you will be able to see the differences in response time for each phase using tkprof.
You can reuse an execution plan if there is an identical statement in the shared_pool (with certain exceptions if cursor_sharing is set or you are using stored outlines). If the statement does not exist in the shared_pool, it must be 'hard' parsed. Let's assume that neither cursor_sharing nor stored outlines are in use. There is NO way to get around parsing, you must parse to get an execution plan.
Oracle has put a lot of work into making the parse phase efficient. One component of this is how they manage the shared pool. While a large shared pool sounds like you would be able to improve performance by caching all the execution plans, it is usually a bad idea. Let frequently used plans stay in the pool, let one-time or seldom used plans age out. Too many cached statements mean that the session has to search through a lot of 'similar' statements to finally say "Nope, not there, let's parse this statement".
2) You can always keep something in the cache by pinning it. Again, this is not always a good idea (though there are exceptions). Statements and plans are always cached in the shared pool, which are available to all sessions.
Justin - did you mean that the first execution runs slower because the data is NOT cached?
Regards,
Dan Fink

Similar Messages

  • How to find out the corresponding planning area for a given infosource?

    Hi,
    We are in the process of implementing BW-APO in our project.
    We have got couple of standard BI infosources and now the task is to identify the corresponding planning area for a given infosource..
    Let' say for 0APO_DP_ORDERANALYTICS_1
    what is the planning area?
    Any help is appreciatable!!!
    Regards,
    Swapna.G

    Hi Swapna.
    You are at risk of putting the cart before the horse here. As Sujay asks, it is important to understand whether you are using the standard provided planning areas. Even then there are a number of different planning areas that may be deployed depending upon the required planning functionality. There then may be the case where standard planning areas are not being used (this is very often the case) which means that your InfoSources might only be good as a template.
    All this makes your question virtually impossible to answer.
    Maybe if you gave some background as to the status of your project we could help more.
    From your question it looks as if you are working on APO-BW outbound (i.e., reporting after the planning has taken place) which would suggest that the design and build of APO-BW inbound and the planning functionality has taken place. Is this the case?
    If so, then you need to touch base with your APO technical guys to understand the design of the planning areas and whether your standard 0APO_* InfoSources are suitable.
    If not, I suggest you are working back to front and you should be focussing on the APO-BW inbound required to support the planning requirements.
    Regards, Mark.

  • How to find out the amount assigned to WBS element

    Hello Friends,
    Will you please inform how to find out the (amount/value/budget) assigned
    to WBS element
    Which Table it is stored in?
    Thanks in Advance
    Bset Regards
    Diwakar

    Hi Diwakarnd,
    You can use any of the following reports to get the information you require.
    1. <b>S_ALR_87013557</b> - Budget/Actual/Variance
    2. <b>S_ALR_87013558</b> - Budget/Actual/Commitment/Rem Plan/Assigned
    3. <b>S_ALR_87013559</b> - Budget/Distributed/Plan/Distributed
    Some of these reports use a complex selection criteria from various tables which has been grouped together, logically by SAP. The Logical Database table name for PS is <b>PSJ</b>.
    Execute transaction code <b>SE36</b> -> <b>PSJ</b> -> (Subobject : Radio button <b>Structure)</b> -> Click on <b>Display</b>.
    You would see all the underlining tables used.
    I hope the above helps.
    Do not forget to award the points please.
    Regards,
    Jacob

  • How to find out the primary and failover DNS name

    Hi;
    This sounds very stupid, but could some one please tell me how to find out the name/dns name of the primary and failover server without using the CDS console.
    any help is appreciated

    Is this what you want?
    $ /usr/lib/ldap/ldap_cachemgr -g
    cachemgr configuration:
    server debug level 0
    server log file "/var/ldap/cachemgr.log"
    number of calls to ldapcachemgr 12729
    cachemgr cache data statistics:
    Configuration refresh information:
    Previous refresh time: 2005/08/07 23:54:59
    Next refresh time: 2005/08/08 00:55:00
    Server information:
    Previous refresh time: 2005/08/14 15:15:00
    Next refresh time: 2005/08/15 03:15:00
    server: ldap1.example.com, status: UP
    server: ldap2.example.com, status: UP
    server: ldap3.example.com, status: UP
    Cache data information:
    Maximum cache entries: 256
    Number of cache entries: 0
    Gary

  • How to find out the last date & time on which a program has been run

    Hi Experts,
    Can anybody tell how to find out the last date on which a purticular program has been run.
    Valuable answers will be rewarded.
    Thanks & Regards,
    Satish.

    Hi!
    Try STAD transaction. Unfortunately it contains a huge amount of data, so it is available only for a few days backwards... Maybe some weeks, but you can't make yearly reports from its data... So it's not useful to see, which program is in use or not...
    I planned once to download it weekly, but it was not so important...
    Regards
    Tamá

  • How can I cancel the storage plan I just bought and get a bigger plan?

    How can I cancel the storage plan I just bought and get a bigger plan?

    I quote:
    'If you purchase a higher-tier storage plan for your iCloud account to replace your existing storage plan (for example, a 20 GB plan to replace a 10 GB plan), the existing plan will be canceled and you will receive a prorated refund for the time remaining. The new storage plan is applied to your iCloud account and the annual payment date is updated to reflect the purchase date for the new plan.'
    So just purchase the new storage level and it will sort itself out automatically.

  • How to find out the user-exits?

    hi.
    how to find out the user-exits?
    regards
    eswar.

    Hi,
    *& Report  ZEXITFINDER
    *report  zexitfinder.
    *& Enter the transaction code that you want to search through in order
    *& to find which Standard SAP User Exits exists.
    *& Tables
    tables : tstc, "SAP Transaction Codes
    tadir, "Directory of Repository Objects
    modsapt, "SAP Enhancements - Short Texts
    modact, "Modifications
    trdir, "System table TRDIR
    tfdir, "Function Module
    enlfdir, "Additional Attributes for Function Modules
    tstct. "Transaction Code Texts
    *& Variables
    data : jtab like tadir occurs 0 with header line.
    data : field1(30).
    data : v_devclass like tadir-devclass.
    *& Selection Screen Parameters
    selection-screen begin of block a01 with frame title text-001.
    selection-screen skip.
    parameters : p_tcode like tstc-tcode obligatory.
    selection-screen skip.
    selection-screen end of block a01.
    *& Start of main program
    start-of-selection.
    Validate Transaction Code
    select single * from tstc
    where tcode eq p_tcode.
    Find Repository Objects for transaction code
    if sy-subrc eq 0.
    select single * from tadir
    where pgmid = 'R3TR'
    and object = 'PROG'
    and obj_name = tstc-pgmna.
    move : tadir-devclass to v_devclass.
    if sy-subrc ne 0.
    select single * from trdir
    where name = tstc-pgmna.
    if trdir-subc eq 'F'.
    select single * from tfdir
    where pname = tstc-pgmna.
    select single * from enlfdir
    where funcname = tfdir-funcname.
    select single * from tadir
    where pgmid = 'R3TR'
    and object = 'FUGR'
    and obj_name = enlfdir-area.
    move : tadir-devclass to v_devclass.
    endif.
    endif.
    Find SAP Modifactions
    select * from tadir
    into table jtab
    where pgmid = 'R3TR'
    and object = 'SMOD'
    and devclass = v_devclass.
    select single * from tstct
    where sprsl eq sy-langu
    and tcode eq p_tcode.
    format color col_positive intensified off.
    write:/(19) 'Transaction Code - ',
    20(20) p_tcode,
    45(50) tstct-ttext.
    skip.
    if not jtab[] is initial.
    write:/(95) sy-uline.
    format color col_heading intensified on.
    write:/1 sy-vline,
    2 'Exit Name',
    21 sy-vline ,
    22 'Description',
    95 sy-vline.
    write:/(95) sy-uline.
    loop at jtab.
    select single * from modsapt
    where sprsl = sy-langu and
    name = jtab-obj_name.
    format color col_normal intensified off.
    write:/1 sy-vline,
    2 jtab-obj_name hotspot on,
    21 sy-vline ,
    22 modsapt-modtext,
    95 sy-vline.
    endloop.
    write:/(95) sy-uline.
    describe table jtab.
    skip.
    format color col_total intensified on.
    write:/ 'No of Exits:' , sy-tfill.
    else.
    format color col_negative intensified on.
    write:/(95) 'No User Exit exists'.
    endif.
    else.
    format color col_negative intensified on.
    write:/(95) 'Transaction Code Does Not Exist'.
    endif.
    Take the user to SMOD for the Exit that was selected.
    at line-selection.
    get cursor field field1.
    check field1(4) eq 'JTAB'.
    set parameter id 'MON' field sy-lisel+1(10).
    call transaction 'SMOD' and skip first screen.
    Regards

  • How to find out the Transactions used per month & the USER who used that

    Hi,
    1)How to find out the Transactions used per month & the USER who used that?
    2)and can i get the above same for minimum 20 month?
    System : SAP- Enterprise Core Component.

    You can use my program...
    *& Report  Z_ABAP_TCODE_MONITOR
    *****&  Program Type          : Report                                 *
    *****&  Title                 : Z_ABAP_TCODE_MONITOR                   *
    *****&  Transaction code      : ZTCODE_USAGE                           *
    *****&  Developer name        : Shailendra Kolakaluri                  *
    *****&  Deveopment start date : 26 th Dec 2011                         *
    *****&  Development Package   : ZDEV                                   *
    *****&  Transport No          : DEVK906086                                       *
    *****&  Program Description   : This program is to display
    *List all tcodes executed during previous day.
    *& Show the number of users executing tcodes
    *& Modification history
    REPORT  Z_ABAP_TCODE_MONITOR.
    *& List all tcodes executed during previous day.
    *& Show the number of users executing tcodes
    TYPE-POOLS : slis.
    DATA: ind TYPE i,
          fcat TYPE slis_t_fieldcat_alv WITH HEADER LINE,
          layout TYPE slis_layout_alv,
          variant TYPE disvariant,
          events  TYPE slis_t_event WITH HEADER LINE,
          heading TYPE slis_t_listheader WITH HEADER LINE.
    *REPORT  z_report_usage.
    TYPES: BEGIN OF zusertcode,
      date   TYPE swncdatum,
      user   TYPE swncuname,
      mandt     TYPE swncmandt,
      tcode     TYPE swnctcode,
      report TYPE swncreportname,
      count     TYPE swncshcnt,
    END OF zusertcode.
    *data   : date type n.
    DATA: t_usertcode  TYPE swnc_t_aggusertcode,
          wa_usertcode TYPE swncaggusertcode,
          wa           TYPE zusertcode,
          t_ut         TYPE STANDARD TABLE OF zusertcode,
          wa_result    TYPE zusertcode,
          t_result     TYPE STANDARD TABLE OF zusertcode.
    PARAMETER: month TYPE dats DEFAULT sy-datum.
    *PARAMETER: date TYPE dats.
    *select-options : username for wa_usertcode-account.
    START-OF-SELECTION.
    PERFORM get_data.
    PERFORM get_fieldcatalog.
      PERFORM set_layout.
    PERFORM get_event.
    PERFORM get_comment.
      PERFORM display_data.
    FORM get_data .
    *date = sy-datum - 2 .
    After start-of-selection add this line (parameter Month required 01 as day).
      concatenate month+0(6) '01' into month.
      CALL FUNCTION 'SWNC_COLLECTOR_GET_AGGREGATES'
        EXPORTING
          component     = 'TOTAL'
          ASSIGNDSYS    = 'DEV'
          periodtype    = 'M'
          periodstrt    = month
        TABLES
          usertcode     = t_usertcode
        EXCEPTIONS
          no_data_found = 1
          OTHERS        = 2.
      wa-date  = month.
    *wa-date  = date.
      wa-mandt = sy-mandt.
    wa_usertcode-account = username.
      LOOP AT t_usertcode INTO wa_usertcode.
        wa-user = wa_usertcode-account.
        IF wa_usertcode-entry_id+72 = 'T'.
          wa-tcode  = wa_usertcode-entry_id.
          wa-report = space.
        ELSE.
          wa-tcode  = space.
          wa-report = wa_usertcode-entry_id.
        ENDIF.
        COLLECT wa INTO t_ut.
      ENDLOOP.
      SORT t_ut BY report ASCENDING.
      CLEAR: wa, wa_result.
    endform.
    FORM get_fieldcatalog .
    fcat-tabname     = 't_ut'.
    fcat-fieldname   = 'DATE'.
    fcat-seltext_l   = 'Date'.
    fcat-key         = 'X'.
    APPEND fcat.
      CLEAR fcat.
      fcat-tabname     = 't_ut'.
      fcat-fieldname   = 'MANDT'.
      fcat-seltext_l   = 'Client'.
      fcat-key         = 'X'.
      APPEND fcat.
      CLEAR fcat.
      fcat-tabname     = 't_ut'.
      fcat-fieldname   = 'USER'.
      fcat-seltext_l   = 'User Name'.
      fcat-key         = 'X'.
      APPEND fcat.
      CLEAR fcat.
      fcat-tabname     = 't_ut'.
      fcat-fieldname   = 'TCODE'.
      fcat-seltext_l   = 'Transaction Code'.
      fcat-key         = 'X'.
      APPEND fcat.
    ENDFORM.
    *&      Form  SET_LAYOUT
          text
    -->  p1        text
    <--  p2        text
    FORM set_layout .
      layout-colwidth_optimize = 'X'.
    ENDFORM.                    " SET_LAYOUT
    *&      Form  GET_EVENT
          text
    -->  p1        text
    <--  p2        text
    *FORM get_event .
    events-name = slis_ev_top_of_page.
    events-form = 'TOP_OF_PAGE'.
    APPEND events.
    *ENDFORM.                    " GET_EVENT
    **&      Form  GET_COMMENT
          text
    -->  p1        text
    <--  p2        text
    *FORM get_comment .
    DATA: text(30).
    text = 'Billing Report'.
    heading-typ = 'H'.
    heading-info = text.
    APPEND heading.
    *ENDFORM.                    " GET_COMMENT
    **&      Form  top_of_page
          text
    -->  p1        text
    <--  p2        text
    *FORM top_of_page .
    CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
       EXPORTING
         it_list_commentary       = heading[]
      I_LOGO                   =
      I_END_OF_LIST_GRID       =
    *ENDFORM.                    " top_of_page
    *&      Form  DISPLAY_DATA
          text
    -->  p1        text
    <--  p2        text
    FORM display_data .
      sort t_ut[].
    DELETE ADJACENT DUPLICATES FROM t_ut[] COMPARING ALL FIELDS.
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
          i_callback_program = sy-cprog
          is_layout          = layout
          it_fieldcat        = fcat[]
          i_save             = 'A'
          is_variant         = variant
          it_events          = events[]
        TABLES
          t_outtab           = t_ut
        EXCEPTIONS
          program_error      = 1
          OTHERS             = 2.
      IF sy-subrc <> 0.
        MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ENDIF.
    ENDFORM.                    " DISPLAY_DATA

  • How to find out the person who did a transport.

    How to find out the person who did a transport.
    There are 3 basis admins in our Org.
    so is there a way of tracing out , who did what transport.
    Regards,

    - Goto import Overview (STMS)
    - Import Queue
    - Select DEV req (goto Import History)
    - Edit - Display More
    It will show the user who did the transport
    Rgds

  • How to find out the user who has created  a new field in the custom table.

    How to find out the user details who has created  a new field in the custom table.
    Thanks,
    Joan

    Hi Jesudasan ,
    You can know the user details with version management.Please find the
    below procedure to know.
    Go to table->Utilities tab->version->Version management->Compare the previous one .
    Hope this solves the issue,Let me know if you have any issues.
    Thanks,
    Rajani

  • How to find out the selected column in Table Control

    Hi all,
          How to find out the selected column in Table Control?
    Thanks & Regards,
    YJR

    Hi,
    Let your table control name in Screen painter be TC1.
    READ TABLE TC1-COLS INTO WA_COLS (some wok area)
                 WITH KEY SELECTED = 'X'.
            IF SY-SUBRC = 0.
              CLEAR: W_DUMMY, W_COL_NAME.
              SPLIT WA_COLS-SCREEN-NAME AT '-' INTO W_DUMMY
                                                   W_COL_NAME.
            endif.
    W_COL_NAME gives you the column name.
    Hope it helps.
    cheers
    sharmistha

  • How to find out  the selected line in list

    Hi all,
    Can any one tell me how to find out the selected event in the list

    Your subject said 'selected <b>line</b> in list' and your description says 'selected <b>event</b> in the list'. Which one is it you want to know?
    For line you will use the event AT LINE-SELECTION and for event you will use AT USER-COMMAND.
    Please reward and close if answered, if not, please revert back to the forum with more details.
    Thanks,
    Srinivas

  • How to find out the users currently logged into ODI

    Hi all,
    How to find out the users currently logged into ODI Work Repository?
    Thanks.

    Hi,
    It stores all the final queries in work rep table i.e "SNP_SESS_TXT_LOG" and the column is "TXT".
    Here u can find all the ODI bkp process queries.Pls specify the SESS_NO for purtivular task u want to check which u can get this in ODI operator.
    I dont think so that it will keep the substituted value(because its implicit and temporary process) but it will keep all the default values in the table SNP_VAR_SESS and the column is "DEF_V".
    Thanks,
    katukota

  • How to find out the tables from extract structures

    Hi All,
    As I know my data sources are 2lis_04_p_matnr,2lis_04_p_comp,2lis_04_p_arbpl.
    How to find out the tables concerned with the fields in the extract structure.
    Thanks

    Pl check this link:
    http://help.sap.com/saphelp_nw2004s/helpdata/en/29/79eb3cad744026e10000000a11405a/frameset.htm
    OR navigate to: help.sap.com - netweaver - bi content - supply chain - look for your application area and the extractor and you will see the source tables and fields.
    Ravi Thothadri

  • How to find out the metachian from subchain

    hello friends,
    could you please let me know , how to find out the meta chain from subchian .
    I know the subchain name and wanted to check that this chian is included in which meta chian ,
    actaully here so many chain , so its confusing .
    Is there any way ?

    Hi,
    Pls chk this links,
    Re: Meta chains - how to create n example scenerios
    Re: How to create process chains, infopackage groups & Meta chains
    Hope this helps,
    regards
    CSM reddy

Maybe you are looking for

  • Problem with SPDIF

    Hello All, I have Creative Sound Blaster X-Fi XtremeGamer Fatalty Pro Series and Digital I/O module on my Windows Vista 32 bit machine. I have connected my speakers using 3 analog outputs of the sound card and they are working great and I am able to

  • How can I get the "comments" to show up in the left tool bar?

    Yesterday the "comments" were (A) appearing stacked on the left of the pages document, today, they are only (B) appearing as a sqaure notation and I can not seem how to switch back to the (A) style.  Any tips is appreciated.  Thanks!

  • Why does my iphone have and enguged tone and can't receive any calls?

    Why does my iphone have an engauged tone and I can't receive any calls?

  • Servlet not streaming PDF to browser properly

    Hello, I have a servlet that is processing file uploads and streams the file upload to a browser. All works fine, except that for some reason the browser has it's own mind as to whether or not to load the PDF plugin. Word, excel, text, these files ar

  • Lightroom CC 2015 Running With Lightroom 5.

    I am working on a Macbook pro running Yosemite version 10.10.3.  I subscribe to Creative Cloud - to run Lightroom CC and Photoshop CC - but up to now I have also had a previously installed version of Lightroom 5 running which I used. I have not previ