SQL Performance  Tunning

Hi I am using Oracle 9i, i am having SQL Query like this which is taking mote time to execute , is there any alternate way to modify the same query with Rank and Partition by concepts? The tables(dw_csc_site_mappings smo, dw_csc_companies cco) having 14 million rows approx.
SELECT /*+ RULE */
smo.company_target_id, smo.customer_id
FROM dw_csc_site_mappings smo, dw_csc_companies cco
WHERE cco.company_target_id = smo.company_target_id
AND cco.global_target_id IS NOT NULL
GROUP BY smo.company_target_id, smo.customer_id
HAVING COUNT (*) =
(SELECT MAX (COUNT (*))
FROM dw_csc_site_mappings smi, dw_csc_companies cci
WHERE smo.customer_id = smi.customer_id
AND cci.company_target_id = smi.company_target_id
AND cci.global_target_id IS NOT NULL
GROUP BY smi.company_target_id, smi.customer_id)
ORDER BY 1 ASC

Analytics might help.
You should try to find a way to access those big tables only once instead of twice.
untested try
select company_target_id, customer_id, cnt
from (
   SELECT smo.company_target_id, smo.customer_id,
       count(*) cnt, max(count(*)) over (partition by smo.company_target_id, smo.customer_id order by count(*)) max_cnt
   FROM dw_csc_site_mappings smo, dw_csc_companies cco
   WHERE cco.company_target_id = smo.company_target_id
   AND cco.global_target_id IS NOT NULL
   GROUP BY smo.company_target_id, smo.customer_id
   ) v
WHERE v.cnt = v.max_cnt
ORDER BY 1 ASC

Similar Messages

  • How to improve my pls/sql performance tunning skills

    Hi All , I would like to learn more about pl/sql performance tunning , where or how can i get more knowledge in this area ?
    Is there any tutorials which can help me to understand the Explain plan, Dbms_Profiler, Dbms_Advisor more etc ........Thanks . Bcj

    Explain plan
    http://www.psoug.org/reference/explain_plan.html
    DBMS_PROFILER (10g)
    http://www.psoug.org/reference/dbms_profiler.html
    DBMS_HPROF (11g)
    http://www.psoug.org/reference/dbms_hprof.html
    DBMS_ADVISOR
    http://www.psoug.org/reference/dbms_advisor.html
    DBMS_MONITOR
    http://www.psoug.org/reference/dbms_monitor.html
    DBMS_SUPPORT
    http://www.psoug.org/reference/dbms_support.html
    DBMS_TRACE
    http://www.psoug.org/reference/dbms_trace.html
    DBMS_SQLTUNE
    http://www.psoug.org/reference/dbms_sqltune.html

  • Ps/sql performance tunning

    Hi
    Can any body tell me how to tune pl/sql code
    tnr
    nagesh

    Book 'Oracle PL/SQL Tips and Techniques' by TUSC guys is good one.
    First thing is to use proving coding stretagies, which is key to gain performance even without tuning; then using proper tuning techniques. Tuning is no more than a polishing, if it is a dent, polishing will not solve it.

  • SQL Performance tunning on RAC environment

    Hi,
    I am working on oracle 11.2.0.2.0 with 2 node RAC.
    We have a batch process with runs everday and comsumes most of the time in cluster waits. Could someone please suggest what SQL / PL SQL changes / Hints are available to tune this cluster waits..
    Also, if possible please provide link where can find more information on this.
    Thanks

    Is your batch process multi-threaded or single-threaded?
    If multi-threaded, and each thread is doing similar work, running the same code, and if your connections are load balanced across both nodes, it won't take long to end up waiting on cluster interconnect activity. You might try having the connections related to this batch job all go to one node.
    In general, utilizing both nodes at the same time shouldn't be a problem, unless you have code that accesses the same segments on both nodes at the same time. That's when you'll see the worst problems in terms of cluster-related waits.
    -Mark

  • How will do the SQL PERFORMANCE TUNNING.

    hi to all:
    i have a query like example: select col1,col2,col3,col4,col5,col6,col7,col8,
    col9,col0,col11,col12,col13,col14,col15 from table_name where col1=100 like that but data contain more like some lack wise reords.this query it's taking so much of time .i want to do the performance kindly give me solution to me...
    anbarasan.

    select dai.GSI_PARTY_ID ,dai.GSI_PARTY_NUM ,dai.CERTIFICATION_LVL,dai.NAME ,dai.DUNS_NUM ,dai.CITY ,dai.STATE ,dai.ZIPCODE ,dai.COUNTRY,dai.ROW_WID,dai.GEO_WID,dai.ACCNT_GEOSTATE_WID,dai.W_CUSTOMER_CLASS,dai.MGR_NAME,dai.MAIN_PH_NUM,dai.ST_ADDRESS ,dai.ACCNT_FLG ,dai.ACCNT_LOC,dai.ACCNT_REVN,dai.ACTIVE_FLG,dai.ACCNT_STATUS,dai.ACCNT_STATUS_I,dai.ACCNT_TYPE_CD,dai.ACCNT_TYPE_CD_I,dai.CUST_TYPE_CODE,dai.CUST_TYPE_NAME,dai.ANNUAL_REVN_CAT,dai.ANNUAL_REVN_CAT_I,dai.BASE_CURCY_CD,dai.BU_NAME,dai.CHANNEL_FLG,dai.CHNL_ANNL_SALES,dai.CHNL_SALES_GRWTH,dai.CHNL_SALES_GRWTH_I,dai.COMPETITOR_FLG,dai.CREATED_DT,dai.DIVN_FLG,dai.DIVN_TYPE_CD,dai.DIVN_TYPE_CD_I,dai.DOMESTIC_ULTIMATE_DUNS_NUM,dai.EMP_COUNT,dai.EXPERTISE,dai.EXPERTISE_I,dai.FORMED_DT,dai.FREQUENCY_CAT,dai.FREQUENCY_CAT_I,dai.FRGHT_TERMS_CD,dai.FRGHT_TERMS_CD_I,dai.GLOBAL_DUNS_NUM,dai.HIST_SLS_VOL,dai.LINE_OF_BUSINESS,dai.MONETARY_CAT,dai.MONETARY_CAT_I,dai.NUM_EMPLOY_CAT,dai.NUM_EMPLOY_CAT_I,dai.ORG_NAME,dai.ORG_MGR_NAME,dai.ORG_MAIN_PH_NUM,dai.ORG_ST_ADDRESS,dai.ORG_CITY,dai.ORG_STATE,dai.ORG_ZIPCODE,dai.ORG_TERR_NAME,dai.ORG_COUNTRY,dai.ORG_FLG,dai.ORG_PRTNR_FLG,dai.ORG_PRTNR_TIER,dai.ORG_PRTNR_TIER_I,dai.ORG_PRTNR_TYPE,dai.ORG_PRTNR_TYPE_I,dai.PARENT_DUNS_NUM,dai.PAR_INTEGRATION_ID,dai.PAR_ORG_NAME,dai.PRI_LST_NAME,dai.PROSPECT_FLG,dai.PRTNRSHP_START_DT,dai.PRTNR_FLG,dai.PRTNR_NAME,dai.PRTNR_SALES_RANK,dai.PR_COMPETITOR,dai.PR_INDUST_NAME,dai.PR_ORG_TRGT_MKT,dai.PR_PTSHP_MKTSEG,dai.PTNTL_SLS_VOL,dai.PTSHP_END_DT,dai.PTSHP_FEE_PAID_FLG,dai.PTSHP_PRTNR_ACCNT,dai.PTSHP_RENEWAL_DT,dai.PTSHP_SAT_INDEX,dai.PTSHP_STAGE,dai.PTSHP_STAGE_I,dai.PUBLIC_LISTING_FLG,dai.RECENCY_CAT,dai.RECENCY_CAT_I,dai.REGION,dai.REGION_I,dai.REVN_GROWTH_CAT,dai.REVN_GROWTH_CAT_I,dai.SALES_EMP_CNT,dai.SERVICE_EMP_CNT,dai.U_ACCNT_RVN,dai.U_ACNTRVN_CURCY_CD,dai.U_ACNTRVN_EXCH_DT,dai.U_CHNL_ANNL_SLS,dai.U_CH_ASLS_CURCY_CD,dai.U_CH_ASLS_EXCH_DT,dai.U_HIST_SLS_VOL,dai.U_HST_SLS_CURCY_CD,dai.U_HST_SLS_EXCH_DT,dai.U_PTL_SLS_CURCY_CD,dai.U_PTL_SLS_EXCH_DT,dai.U_PTL_SLS_VOL,dai.VIS_PR_BU_ID,dai.VIS_PR_POS_ID,dai.VIS_PR_POSTN_DH_WID,dai.ACCNT_AHA_NUM,dai.ACCNT_CLASS,dai.ACCNT_CLASS_I,dai.ACCNT_HIN_NUM,dai.ACCNT_REGION,dai.ACCNT_VALUE,dai.ACCNT_VALUE_I,dai.AGENCY_FLG,dai.AGNC_CONTRACT_DT,dai.ANNUAL_REVENUE,dai.BOOK_VALUE,dai.BRANCH_FLG,dai.CALL_FREQUENCY,dai.CLIENT_FLG,dai.CREDIT_SCORE,dai.CRIME_TYPE_CD,dai.CRIME_TYPE_CD_I,dai.CURR_ASSET,dai.CURR_LIAB,dai.CUST_END_DT,dai.CUST_SINCE_DT,dai.CUST_STATUS_CODE,dai.DIVIDEND,dai.EXCHANGE_LOC,dai.FACILITY_FLG,dai.FACILITY_TYPE,dai.FACILITY_TYPE_I,dai.FIFTYTWO_HIGH,dai.FIFTYTWO_LOW,dai.FIN_METHOD,dai.FIN_METHOD_I,dai.GROSS_PROFIT,dai.GROWTH_HORIZ,dai.GROWTH_HORIZ_I,dai.GROWTH_OBJ,dai.GROWTH_OBJ_I,dai.GROWTH_PERCNTG,dai.IDENTIFIED_DT,dai.INVESTOR_FLG,dai.KEY_COMPETITOR,dai.LEADER_NAME,dai.LEGAL_FORM,dai.LEGAL_FORM_I,dai.LOYAL_SCORE1,dai.LOYAL_SCORE2,dai.LOYAL_SCORE3,dai.LOYAL_SCORE4,dai.LOYAL_SCORE5,dai.LOYAL_SCORE6,dai.LOYAL_SCORE7,dai.MARGIN_VS_INDUST,dai.MARGIN_VS_INDUST_I,dai.MARKET_CLASS,dai.MARKET_CLASS_I,dai.MARKET_TYPE,dai.MARKET_TYPE_I,dai.MED_PROC,dai.MEMBER_NUM,dai.MKT_POTENTIAL,dai.MRKT_CAP_PREF,dai.MRKT_CAP_PREF_I,dai.NET_INCOME,dai.NON_CASH_EXP,dai.NUMB_OF_BEDS,dai.NUM_PROD,dai.NUM_PROD_EFF_DT,dai.OBJECTIVE,dai.OBJECTIVE_I,dai.OPER_INCOME,dai.PERSIST_RATIO,dai.PRIM_MARKET,dai.PRIM_MARKET_I,dai.PROJ_EPS,dai.PR_SPEC_NAME,dai.PR_SYN_ID,dai.QUICK_RATIO,dai.SHARE_OUTST,dai.SRV_PROVDR_FLG,dai.STAT_REASON_CD,dai.STAT_REASON_CD_I,dai.TICKER,dai.TOTAL_DEBT,dai.TOTAL_NET_WORTH,dai.TOT_ASSET,dai.TOT_LIABILITY,dai.TRAIL_EPS,dai.U_EXCH_DT,dai.U_LOYAL_SCORE5,dai.VOLUME_TR,dai.X_NUM_PROD,dai.BIRTH_DT_WID,dai.NO_OF_CHILDREN,dai.LEGAL_NAME,dai.FAMILY_NAME,dai.OTHER_NAME,dai.PREFERRED_NAME,dai.INDV_TITLE,dai.INDV_MARITAL_STATE,dai.INDV_GENDER,dai.EMAIL_ADDRESS,dai.FAX_NUM,dai.PAGER_NUM,dai.MOBILE_NUM,dai.CUST_CAT_CODE,dai.CUST_CAT_NAME,dai.SIC_CODE,dai.SIC_NAME,dai.GOVT_ID_TYPE,dai.GOVT_ID_VALUE,dai.DUNNS_SITE_NAME,dai.DUNNS_GLOBAL_NAME,dai.DUNNS_LEGAL_NAME,dai.CUSTOMER_NUM,dai.ALT_CUSTOMER_NUM,dai.ALT_PHONE_NUM,dai.INTERNET_HOME_PAGE,dai.LEGAL_STRUCT_CODE,dai.LEGAL_STRUCT_NAME,dai.DIRECT_MKTG_FLG,dai.SOLICITATION_FLG,dai.CREATED_BY_WID,dai.CHANGED_BY_WID,dai.CREATED_ON_DT,dai.CHANGED_ON_DT,dai.AUX1_CHANGED_ON_DT,dai.AUX2_CHANGED_ON_DT,dai.AUX3_CHANGED_ON_DT,dai.AUX4_CHANGED_ON_DT,dai.SRC_EFF_FROM_DT,dai.SRC_EFF_TO_DT,dai.EFFECTIVE_FROM_DT,dai.EFFECTIVE_TO_DT,dai.DELETE_FLG,dai.CURRENT_FLG,dai.W_INSERT_DT,dai.W_UPDATE_DT,dai.DATASOURCE_NUM_ID,dai.ETL_PROC_WID,dai.INTEGRATION_ID,dai.TENANT_ID,dai.X_CUSTOM,dai.X_ADDR_CLEANSE_RESULT,dai.X_PR_INDUSTRY_ID,dai.X_PTNR_ACC_LVL_CD,dai.OPN_PIN_NUM,dai.X_ALIAS_NAME,dai.X_URL,dai.X_ACCNT_NAME_LOCAL,dai.X_ADDR_LINE_2,dai.X_ADDR_LINE_3,dai.X_COUNTY,dai.X_FAX_PH_NUM,dai.X_CONTRACT_VIS_FLG,dai.INDUSTRY_ONEVOICE,dai.X_ANNUAL_REVENUE,dai.X_NUM_EMPLOYEES,dai.INDUSTRY_ONEVOICE_SEGMENT,dai.X_GCD_ORG_ID,dai.X_MKTG_CREATED_FLG,dai.X_PR_ASGN_TYPE,dai.X_ADDR_DUNS,dai.X_ADDR_STATUS_CD,dai.X_MKTG_REGION,dai.X_MKTG_SUBREGION,dai.X_TRNSLT_CITY,dai.X_TRNSLT_STATE,dai.X_TRNSLT_POSTALCODE,dai.X_TRNSLT_LANG,dai.X_TRNSLT_ADDR1,dai.X_TRNSLT_ADDR2,dai.X_TRNSLT_ADDR3,dai.X_QUALITYSCORE,dai.X_SOURCE_TYPE_CD,dai.X_SIC_CODE,dai.X_PROVINCE,dai.X_GOVT_TYPE from dimple.gcm_account dai where 1=1 and dai.gsi_party_id=1017247578
    this is my compleate quary ..pls give me solution..

  • Sql performance tunning user guides

    Hi
    Any One Have sql performence usere guids and best optimal how to use explain plan satement .
    thank's

    Maybe you should also have a look to Cost-Based Oracle Fundamentals, from Jonathan Lewis (at Apress), which is a bit more complex but really great on SQL tuning.

  • Performance tunning in oracle

    Hi friends,
    I am himansu, i am facing a problem during performance tunning of query in oracle , please guide me how to tune a query which will give better performance.

    907977 wrote:
    Hi friends,
    I am himansu, i am facing a problem during performance tunning of query in oracle , please guide me how to tune a query which will give better performance.Welcome to OTN
    Please post your thread at SQL, PL/SQL. PL/SQL
    and provide your sql query.
    Hope this will help you.

  • Need help for performance tunning

    Hello,
    I have 16K records return by query, it takes long time to proceed for 7K it takes 7.5 sec.
    Note: I used all seeded tables only.
    If possible please help me to tune it.
    SELECT       msi.inventory_item_id,msi.segment1,msi.rimary_uom_code , msi.primary_unit_of_measure
    FROM  mtl_system_items_b msi, qp_list_lines qpll,qp_pricing_attributes qppr,
              mtl_category_sets_tl mcs,mtl_category_sets_b mcsb,
              mtl_categories_b mc, mtl_item_categories mcb
    WHERE     msi.enabled_flag = 'Y'
         AND qpll.list_line_id = qppr.list_line_id
         AND qppr.product_attr_value = TO_CHAR (msi.inventory_item_id(+))
         AND qppr.product_uom_code = msi.primary_uom_code
         AND mc.category_id = mcb.category_id
         AND msi.inventory_item_id = mcb.inventory_item_id
         AND msi.organization_id = mcb.organization_id
         AND TRUNC (SYSDATE) BETWEEN NVL (qpll.start_date_active,TRUNC (SYSDATE)) AND NVL (qpll.end_date_active,TRUNC (SYSDATE))
         AND mcs.category_set_name = 'LSS SALES CATEGORY'
         AND mcs.language = 'US'
         AND mcs.category_set_id = mcsb.category_set_id
         AND mcsb.structure_id = mc.structure_id
         AND msi.organization_id = :p_organization_id
         AND qpll.list_header_id = :p_price_list_id
         AND mcb.category_id = :p_category_id;
    Thanks and regards
    Akil.

    Thanks Helios ,
    here is answers
    Databse version
    Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - 64bit  
    PL/SQL Release 11.1.0.7.0
    explain plan
    | Id  | Operation                       | Name                     | Rows  | Bytes | Cost (%CPU)|

    0 | SELECT STATEMENT              
    |                          |   
    1 |   149 |  9439 
    (1)|

    1 |  NESTED LOOPS                   |                          |     1 | 
    149 |  9439   (1)|
    |*
    2 |   HASH JOIN OUTER               |                          |     1 | 
    135 |  9437   (1)|
    |*
    3 |    HASH JOIN                    |                          |     1 |  
    71 |  9432   (1)|

    4 |     NESTED LOOPS                |                          |     2 |  
    76 |    53   (0)|
    |*
    5 |      TABLE ACCESS BY INDEX
    ROWID| QP_LIST_LINES            |     2 |  
    44 |    49   (0)|
    |*
    6 |       INDEX SKIP SCAN           | QP_LIST_LINES_N2         | 
    702 |       |    20 
    (0)|
    |*
    7 |      INDEX RANGE SCAN           | QP_PRICING_ATTRIBUTES_N3 |     1 |  
    16 |     2   (0)|
    |*
    8 |     TABLE ACCESS BY INDEX
    ROWID | MTL_SYSTEM_ITEMS_B       | 46254
    |  1490K|
    9378   (1)|
    |*
    9 |      INDEX RANGE SCAN           | MTL_SYSTEM_ITEMS_B_N9    | 46254 |       | 
    174   (1)|
    |
    10 |    TABLE ACCESS FULL            | XX_WEB_ITEM_IMAGE_TBL    | 
    277 | 17728 |     5   (0)|
    |* 11 |   INDEX RANGE SCAN              | MTL_ITEM_CATEGORIES_U1   |   
    1 |    14 |     2 
    (0)|
    Predicate Information (identified
    by operation id):
    2 -
    access("XWIIT"."IMAGE_CODE"(+)="MSI"."SEGMENT1")
    3 -
    access("QPPR"."PRODUCT_ATTR_VALUE"=TO_CHAR("MSI"."INVENTORY_ITEM_ID")
    AND
    "QPPR"."PRODUCT_UOM_CODE"="MSI"."PRIMARY_UOM_CODE")
    5 - filter(NVL("QPLL"."START_DATE_ACTIVE",TRUNC(SYSDATE@!))<=TRUNC(SYSDATE@!)
    AND
    NVL("QPLL"."END_DATE_ACTIVE",TRUNC(SYSDATE@!))>=TRUNC(SYSDATE@!))
    6 -
    access("QPLL"."LIST_HEADER_ID"=TO_NUMBER(:P_PRICE_LIST_ID))
    filter("QPLL"."LIST_HEADER_ID"=TO_NUMBER(:P_PRICE_LIST_ID))
    7 -
    access("QPLL"."LIST_LINE_ID"="QPPR"."LIST_LINE_ID")
    filter("QPPR"."PRODUCT_UOM_CODE" IS NOT NULL)
    8 - filter("MSI"."ENABLED_FLAG"='Y')
    9 - access("MSI"."ORGANIZATION_ID"=TO_NUMBER(:P_ORGANIZATION_ID))
    11 -
    access("MCB"."ORGANIZATION_ID"=TO_NUMBER(:P_ORGANIZATION_ID)
    AND
    "MSI"."INVENTORY_ITEM_ID"="MCB"."INVENTORY_ITEM_ID"
    AND
    "MCB"."CATEGORY_ID"=TO_NUMBER(:P_CATEGORY_ID))
           filter("MCB"."CATEGORY_ID"=TO_NUMBER(:P_CATEGORY_ID))
    Note
    - 'PLAN_TABLE' is old version
    TKprof Plan
    TKPROF: Release 11.1.0.7.0 - Production on Fri Nov 15 06:12:26 2013
    Copyright (c) 1982, 2007, Oracle.  All rights reserved.
    Trace file: LSSD_ora_19760.trc
    Sort options: default
    count    = number of times OCI procedure was executed
    cpu      = cpu time in seconds executing
    elapsed  = elapsed time in seconds executing
    disk     = number of physical reads of buffers from disk
    query    = number of buffers gotten for consistent read
    current  = number of buffers gotten in current mode (usually for update)
    rows     = number of rows processed by the fetch or execute call
    SELECT msi.inventory_item_id,
           msi.segment1,
           primary_uom_code,
           primary_unit_of_measure,
           xwiit.image_url
      FROM mtl_system_items_b msi,
           qp_list_lines qpll,
           qp_pricing_attributes qppr,
           mtl_item_categories mcb,
           xx_web_item_image_tbl xwiit
    WHERE     msi.enabled_flag = 'Y'
           AND qpll.list_line_id = qppr.list_line_id
           AND qppr.product_attr_value = TO_CHAR (msi.inventory_item_id)
           AND qppr.product_uom_code = msi.primary_uom_code
           AND msi.inventory_item_id = mcb.inventory_item_id
           AND msi.organization_id = mcb.organization_id
           AND TRUNC (SYSDATE) BETWEEN NVL (qpll.start_date_active,
                                            TRUNC (SYSDATE))
                                   AND NVL (qpll.end_date_active,
                                            TRUNC (SYSDATE))
           AND xwiit.image_code(+) = msi.segment1
           AND msi.organization_id = :p_organization_id
           AND qpll.list_header_id = :p_price_list_id
           AND mcb.category_id = :p_category_id
    call     count       cpu    elapsed       disk      query    current        rows
    Parse        2      0.00       0.00          0          0          0           0
    Execute      2      0.00       0.00          0          0          0           0
    Fetch        2      3.84       3.85          0     432560          0        1002
    total        6      3.84       3.85          0     432560          0        1002
    Misses in library cache during parse: 0
    Optimizer mode: ALL_ROWS
    Parsing user id: 173 
    Rows     Row Source Operation
        501  NESTED LOOPS  (cr=216280 pr=0 pw=0 time=115 us cost=9439 size=149 card=1)
       2616   HASH JOIN OUTER (cr=211012 pr=0 pw=0 time=39 us cost=9437 size=135 card=1)
      78568    HASH JOIN  (cr=210997 pr=0 pw=0 time=3786 us cost=9432 size=71 card=1)
      78571     NESTED LOOPS  (cr=29229 pr=0 pw=0 time=35533 us cost=53 size=76 card=2)
      78571      TABLE ACCESS BY INDEX ROWID QP_LIST_LINES (cr=9943 pr=0 pw=0 time=27533 us cost=49 size=44 card=2)
    226733       INDEX SKIP SCAN QP_LIST_LINES_N2 (cr=865 pr=0 pw=0 time=4122 us cost=20 size=0 card=702)(object id 99730)
      78571      INDEX RANGE SCAN QP_PRICING_ATTRIBUTES_N3 (cr=19286 pr=0 pw=0 time=0 us cost=2 size=16 card=1)(object id 99733)
    128857     TABLE ACCESS BY INDEX ROWID MTL_SYSTEM_ITEMS_B (cr=181768 pr=0 pw=0 time=9580 us cost=9378 size=1526382 card=46254)
    128857      INDEX RANGE SCAN MTL_SYSTEM_ITEMS_B_N9 (cr=450 pr=0 pw=0 time=1657 us cost=174 size=0 card=46254)(object id 199728)
        277    TABLE ACCESS FULL XX_WEB_ITEM_IMAGE_TBL (cr=15 pr=0 pw=0 time=22 us cost=5 size=17728 card=277)
        501   INDEX RANGE SCAN MTL_ITEM_CATEGORIES_U1 (cr=5268 pr=0 pw=0 time=0 us cost=2 size=14 card=1)(object id 99557)
    Note: I modified query and it gives good result, now it takes 3 to 4 sec for 16000 records.
    If possible can you plz explain what we have to take care while doing performance tunning
    I am a fresher so don't have that much idea.
    and also Thanks Hussein for your replay

  • Tools in Performance Tunning

    What are the tools in performance Tunning in ABAP/4
    Thanks  Regards,
    Kumar

    Hi kumar,
    Tools provided for Performance Analysis
    Following are the different tools provided by SAP for performance analysis of an ABAP object
    Run time analysis transaction SE30
    This transaction gives all the analysis of an ABAP program with respect to the database and the non-database processing.
    SQL Trace transaction ST05
    The trace list has many lines that are not related to the SELECT statement in the ABAP program. This is because the execution of any ABAP program requires additional administrative SQL calls. To restrict the list output, use the filter introducing the trace list.
    The trace list contains different SQL statements simultaneously related to the one SELECT statement in the ABAP program. This is because the R/3 Database Interface - a sophisticated component of the R/3 Application Server - maps every Open SQL statement to one or a series of physical database calls and brings it to execution. This mapping, crucial to R/3s performance, depends on the particular call and database system. For example, the SELECT-ENDSELECT loop on the SPFLI table in our test program is mapped to a sequence PREPARE-OPEN-FETCH of physical calls in an Oracle environment.
    The WHERE clause in the trace list's SQL statement is different from the WHERE clause in the ABAP statement. This is because in an R/3 system, a client is a self-contained unit with separate master records and its own set of table data (in commercial, organizational, and technical terms). With ABAP, every Open SQL statement automatically executes within the correct client environment. For this reason, a condition with the actual client code is added to every WHERE clause if a client field is a component of the searched table.
    To see a statement's execution plan, just position the cursor on the PREPARE statement and choose Explain SQL. A detailed explanation of the execution plan depends on the database system in use.
    how to perform sql trace:
    Poorly written SQL statements have the greatest impact on application performance. An SQL
    statement using which an Oracle database system reads and/or sorts thousands or even millions of
    rows of data can bring the database to a standstill. Indexes should be used properly to prevent such
    situations from occurring. To analyze such problems you should use the SQL Trace (TCode ST05) to
    with database access operations.
    CAUTION
    Only one person can perform an SQL trace at a time. Remember to turn off the
    trace when you are finished. SQL trace slows the system down.
    1. Using SQL Trace
    1. Open a program that you want to analyze, in the editor, so that it is ready and waiting to be
    executed.
    2. Open a new session using the menu path System   Create session.
    3. Run transaction ST05 (enter /nst05-zero-five, not oh-five in the Command field, or choose
    the menu path System  Utilities  Performance Trace).
    4. Then the initial screen of the test tool appears.
    The status of the Performance Trace is displayed in the lower part of the screen. This status tells you
    three things namely
      Whether any of the Performance Traces are switched on
      The users for whom Performance Trace is enabled
      The user that switched the Performance Trace on
    If the trace is switched on you must switch it off before you can proceed. There are two cases in
    which the trace needs to be switched off. They are
      If the trace was started within the past hour, it is possible that it is still being used. Contact the
    indicated user or try again later
      If the trace was started hours or days ago, the user probably left it on by mistake and it can be
    safely turned off
    To turn off the trace, press the Trace Off pushbutton.
    5. The initial screen has various trace functions such as SQL Trace, Enqueue Trace, RFC
    Trace
    6. Select SQL Trace.
    7. There are various options under which trace can be switched on. They are
      If you want to switch on the trace under your user name, choose Trace on.
      If you want to switch on the trace for another user or user group, choose Trace on for user.
      To enter a single user, specify the user name.
      To enter a user group, specify a search pattern (you can use the normal wildcards).
    If you want to change the user or user group, switch off the Performance Trace and then restart it,
    entering the new users or user group.
    8. Now switch back to the window containing your editor session (the one with your program
    waiting to be executed).
    9. Press F8 to run your program.
    Note Just press F8 and do nothing. Do not even press the Back button.
    10. When your program has run and the hourglass is no longer displayed, switch back to the trace
    window.
    11. Press the Trace Off pushbutton.
    12. Once Performance Trace is switched off, you can analyze the data
    Using Runtime Analysis Tool (SE30)
    1. You can open the Runtime Analysis tool as follows:
    To start from Choose
    Any screen System   Utilities   Runtime Analysis   Execute
    Initial screen of ABAP
    Workbench
    Test   Runtime Analysis
    Initial screen of ABAP Editor Program   Execute  Runtime Analysis
    ABAP Editor Utilities   More utilities   Runtime Analysis
    2. In the simplest case, you would enter a short description and a measurement object
    (transaction, program, or function module) to run the analysis in the current session.
    3. In the Measurement restrictions group box, you can make more specific restrictions for the
    measurement. For example, you may want to include only certain statements or time periods.
    (For further information refer section 3. 0).
    4. To start the measurement, choose Measure runtime. From the initial screen, you can
    specify whether the analysis should run in the same session or in a parallel session using the
    Enable/Disable button in the In parallel session group box.
    5. Run the transaction, program, or function module as normal.
    6. Return to the initial screen of the Runtime Analysis transaction. To do so, either leave
    transaction, program, or function module as normal, or start the runtime analysis again.
    7. The name of the performance data file that has just been created is displayed at the bottom of
    the initial screen. The file created by the system is added to the list of performance data files.
    You can now analyze, print, or delete the file, or save it locally. The Performance file group
    box contains options for analyzing performance files. (For further information refer sections 4.
    0 and 5. 0)
    regards,
    keerthi

  • Oracle Performance tunning genral question

    Hi,
    Below is the list of Areas of Oracle db for which tunning activities are done. You are invited to comment to it weather this is complete list or need some addition or deletion. As I'm learning PT for Oracle now a days, therefore I want to expand my knowledge by sharing what I'm learning and what I need to learn.
    So comment with Open hearts on it. Espically from experts and Gurus.
    Here is the List
    1-Planning for Performance, include Storage consideration( Weather it is SAN, NAS, DAS), Network planning and host OS planning with proper configuration for running Oracle.
    2-Database desining (Not under-Normalized and not Over-Normalized with proper usage of Indexes, views and Stored Procedures)
    3- Instance tunning (Memory structure + B.g Processes)
    4- Session tunning.
    5- Segment Space tunning.
    6- SQL tunning.
    This is what uptill what I've learned. If it needs addition kindly tell me what are these. Please also provide me links(good and precise one) for PT tutorials on web.Also note that I'm discussing this w.r.t Single instance non-rac db.
    Looking for Good sugessions
    Regards,
    Abbasi

    Hello,
    This is the oracle course contents:
    Contents
    Preface
    1 Introduction
    Course Objectives 1-2
    Organization 1-3
    Agenda 1-4
    What Is Not Included 1-6
    Who Tunes? 1-7
    What Does the DBA Tune? 1-8
    How to Tune 1-10
    Tuning Methodology 1-11
    Effective Tuning Goals 1-13
    General Tuning Session 1-15
    Summary 1-17
    2 Basic Tuning Tools
    Objectives 2-2
    Performance Tuning Diagnostics 2-3
    Performance Tuning Tools 2-4
    Tuning Objectives 2-5
    Top Wait Events 2-6
    DB Time 2-7
    CPU and Wait Time Tuning Dimensions 2-8
    Time Model: Overview 2-9
    Time Model Statistics Hierarchy 2-10
    Time Model Example 2-12
    Dynamic Performance Views 2-13
    Dynamic Performance Views: Usage Examples 2-14
    Dynamic Performance Views: Considerations 2-15
    Statistic Levels 2-16
    Statistics and Wait Events 2-18
    System Statistic Classes 2-19
    Displaying Statistics 2-20
    Displaying SGA Statistics 2-22
    Wait Events 2-23
    Using the V$EVENT_NAME View 2-24
    Wait Classes 2-25
    Displaying Wait Event Statistics 2-26
    Oracle Internal & Oracle Academy Use Only
    iv
    Commonly Observed Wait Events 2-28
    Using the V$SESSION_WAIT View 2-29
    Precision of System Statistics 2-31
    Using Features of the Packs 2-32
    Accessing the Database Home Page 2-34
    Enterprise Manager Performance Pages 2-35
    Viewing the Alert Log 2-37
    Using Alert Log Information as an Aid in Tuning 2-38
    User Trace Files 2-40
    Background Processes Trace Files 2-41
    Summary 2-42
    Practice 2 Overview: Using Basic Tools 2-43
    3 Using Automatic Workload Repository
    Objectives 3-2
    Automatic Workload Repository: Overview 3-3
    Automatic Workload Repository Data 3-4
    Workload Repository 3-5
    Database Control and AWR 3-6
    AWR Snapshot Purging Policy 3-7
    AWR Snapshot Settings 3-8
    Manual AWR Snapshots 3-9
    Managing Snapshots with PL/SQL 3-10
    Generating AWR Reports in EM 3-11
    Generating AWR Reports in SQL*Plus 3-12
    Reading the AWR Report 3-13
    Snapshots and Periods Comparisons 3-14
    Compare Periods: Benefits 3-15
    Compare Periods: Results 3-16
    Compare Periods: Report 3-17
    Compare Periods: Load Profile 3-18
    Compare Periods: Top Events 3-19
    Summary 3-20
    Practice 3 Overview: Using AWR-Based Tools 3-21
    4 Defining Problems
    Objectives 4-2
    Defining the Problem 4-3
    Limit the Scope 4-4
    Setting the Priority 4-5
    Top Wait Events 4-6
    Oracle Internal & Oracle Academy Use Only
    v
    Setting the Priority: Example 4-7
    Top SQL Reports 4-8
    Common Tuning Problems 4-9
    Tuning Life Cycle Phases 4-11
    Tuning During the Life Cycle 4-12
    Application Design and Development 4-13
    Testing: Database Configuration 4-14
    Deployment 4-15
    Production 4-16
    Migration, Upgrade, and Environment Changes 4-17
    ADDM Tuning Session 4-18
    Performance Versus Business Requirements 4-19
    Performance Tuning Resources 4-20
    Filing a Performance Service Request 4-21
    RDA Report 4-22
    Monitoring and Tuning Tool: Overview 4-23
    Summary 4-25
    Practice 4 Overview: Identifying the Problem 4-26
    5 Using Metrics and Alerts
    Objectives 5-2
    Metrics, Alerts, and Baselines 5-3
    Limitation of Base Statistics 5-4
    Typical Delta Tools 5-5
    Oracle Database 11g Solution: Metrics 5-6
    Benefits of Metrics 5-7
    Viewing Metric History Information 5-8
    Using EM to View Metric Details 5-9
    Statistic Histograms 5-10
    Histogram Views 5-11
    Server-Generated Alerts 5-12
    Database Control Usage Model 5-13
    Setting Thresholds 5-14
    Creating and Testing an Alert 5-15
    Metric and Alert Views 5-16
    View User-Defined SQL Metrics 5-17
    Create User-Defined SQL Metrics 5-18
    View User-Defined Host Metrics 5-19
    Create User-Defined Host Metrics 5-20
    Summary 5-21
    Practice Overview 5: Working with Metrics 5-22
    Oracle Internal & Oracle Academy Use Only
    vi
    6 Baselines
    Objectives 6-2
    Comparative Performance Analysis with AWR Baselines 6-3
    Automatic Workload Repository Baselines 6-4
    Moving Window Baseline 6-5
    Baselines in Performance Page Settings 6-6
    Baseline Templates 6-7
    AWR Baselines 6-8
    Creating AWR Baselines 6-9
    Single AWR Baseline 6-10
    Creating a Repeating Baseline Template 6-11
    Managing Baselines with PL/SQL 6-12
    Generating a Baseline Template for a Single Time Period 6-13
    Creating a Repeating Baseline Template 6-14
    Baseline Views 6-15
    Performance Monitoring and Baselines 6-17
    Defining Alert Thresholds Using a Static Baseline 6-19
    Using EM to Quickly Configure Adaptive Thresholds 6-20
    Changing Adaptive Threshold Settings 6-22
    Summary 6-23
    Practice 6: Overview Using AWR Baselines 6-24
    7 Using AWR-Based Tools
    Objectives 7-2
    Automatic Maintenance Tasks 7-3
    Maintenance Windows 7-4
    Default Maintenance Plan 7-5
    Automated Maintenance Task Priorities 7-6
    Tuning Automatic Maintenance Tasks 7-7
    ADDM Performance Monitoring 7-8
    ADDM and Database Time 7-9
    DBTime-Graph and ADDM Methodology 7-10
    Top Performance Issues Detected 7-12
    Database Control and ADDM Findings 7-13
    ADDM Analysis Results 7-14
    ADDM Recommendations 7-15
    Database Control and ADDM Task 7-16
    Changing ADDM Attributes 7-17
    Retrieving ADDM Reports by Using SQL 7-18
    Active Session History: Overview 7-19
    Active Session History: Mechanics 7-20
    Oracle Internal & Oracle Academy Use Only
    vii
    ASH Sampling: Example 7-21
    Accessing ASH Data 7-22
    Dump ASH to File 7-23
    Analyzing the ASH Data 7-24
    Generating ASH Reports 7-25
    ASH Report Script 7-26
    ASH Report: General Section 7-27
    ASH Report Structure 7-28
    ASH Report: Activity Over Time 7-29
    Summary 7-30
    Practice 7 Overview: Using AWR-Based Tools 7-31
    8 Monitoring an Application
    Objectives 8-2
    What Is a Service? 8-3
    Service Attributes 8-4
    Service Types 8-5
    Creating Services 8-6
    Managing Services in a Single-Instance Environment 8-7
    Everything Switches to Services 8-8
    Using Services with Client Applications 8-9
    Using Services with the Resource Manager 8-10
    Services and Resource Manager with EM 8-11
    Services and the Resource Manager: Example 8-12
    Using Services with the Scheduler 8-13
    Services and the Scheduler with EM 8-14
    Services and the Scheduler: Example 8-16
    Using Services with Parallel Operations 8-17
    Using Services with Metric Thresholds 8-18
    Changing Service Thresholds by Using EM 8-19
    Services and Metric Thresholds: Example 8-20
    Service Aggregation and Tracing 8-21
    Top Services Performance Page 8-22
    Service Aggregation Configuration 8-23
    Service Aggregation: Example 8-24
    Client Identifier Aggregation and Tracing 8-25
    trcsess Utility 8-26
    Service Performance Views 8-27
    Summary 8-29
    Practice 8 Overview: Using Services 8-30
    Oracle Internal & Oracle Academy Use Only
    viii
    9 Identifying Problem SQL Statements
    Objectives 9-2
    SQL Statement Processing Phases 9-3
    Parse Phase 9-4
    SQL Storage 9-5
    Cursor Usage and Parsing 9-6
    SQL Statement Processing Phases: Bind 9-8
    SQL Statement Processing Phases: Execute and Fetch 9-9
    Processing a DML Statement 9-10
    COMMIT Processing 9-12
    Role of the Oracle Optimizer 9-13
    Identifying Bad SQL 9-15
    TOP SQL Reports 9-16
    What Is an Execution Plan? 9-17
    Methods for Viewing Execution Plans 9-18
    Uses of Execution Plans 9-19
    DBMS_XPLAN Package: Overview 9-20
    EXPLAIN PLAN Command 9-22
    EXPLAIN PLAN Command: Example 9-23
    EXPLAIN PLAN Command: Output 9-24
    Reading an Execution Plan 9-25
    Using the V$SQL_PLAN View 9-26
    V$SQL_PLAN Columns 9-27
    Querying V$SQL_PLAN 9-28
    V$SQL_PLAN_STATISTICS View 9-29
    Querying the AWR 9-30
    SQL*Plus AUTOTRACE 9-32
    Using SQL*Plus AUTOTRACE 9-33
    SQL*Plus AUTOTRACE: Statistics 9-34
    SQL Trace Facility 9-35
    How to Use the SQL Trace Facility 9-37
    Initialization Parameters 9-38
    Enabling SQL Trace 9-40
    Disabling SQL Trace 9-41
    Formatting Your Trace Files 9-42
    TKPROF Command Options 9-43
    Output of the TKPROF Command 9-45
    TKPROF Output with No Index: Example 9-50
    TKPROF Output with Index: Example 9-51
    Generate an Optimizer Trace 9-52
    Oracle Internal & Oracle Academy Use Only
    ix
    Summary 9-53
    Practice Overview 9: Using Execution Plan Utilities 9-54
    10 Influencing the Optimizer
    Objectives 10-2
    Functions of the Query Optimizer 10-3
    Selectivity 10-5
    Cardinality and Cost 10-6
    Changing Optimizer Behavior 10-7
    Using Hints 10-8
    Optimizer Statistics 10-9
    Extended Statistics 10-10
    Controlling the Behavior of the Optimizer with Parameters 10-11
    Enabling Query Optimizer Features 10-13
    Influencing the Optimizer Approach 10-14
    Optimizing SQL Statements 10-15
    Access Paths 10-16
    Choosing an Access Path 10-17
    Full Table Scans 10-18
    Row ID Scans 10-20
    Index Operations 10-21
    B*Tree Index Operations 10-22
    Bitmap Indexes 10-23
    Bitmap Index Access 10-24
    Combining Bitmaps 10-25
    Bitmap Operations 10-26
    Join Operations 10-27
    Join Methods 10-28
    Nested Loop Joins 10-29
    Hash Joins 10-31
    Sort-Merge Joins 10-32
    Join Performance 10-34
    How the Query Optimizer Chooses Execution Plans for Joins 10-35
    Sort Operations 10-37
    Tuning Sort Performance 10-38
    Reducing the Cost 10-39
    Index Maintenance 10-40
    Dropping Indexes 10-42
    Creating Indexes 10-43
    SQL Access Advisor 10-44
    Table Maintenance for Performance 10-45
    Oracle Internal & Oracle Academy Use Only
    x
    Table Reorganization Methods 10-46
    Summary 10-47
    Practice 10 Overview: Influencing the Optimizer 10-48
    11 Using SQL Performance Analyzer
    Objectives 11-2
    Real Application Testing: Overview 11-3
    Real Application Testing: Use Cases 11-4
    SQL Performance Analyzer: Process 11-5
    Capturing the SQL Workload 11-7
    Creating a SQL Performance Analyzer Task 11-8
    SQL Performance Analyzer: Tasks 11-9
    Optimizer Upgrade Simulation 11-10
    SQL Performance Analyzer Task Page 11-11
    Comparison Report 11-12
    Comparison Report SQL Detail 11-13
    Tuning Regressing Statements 11-14
    Preventing Regressions 11-16
    Parameter Change Analysis 11-17
    Guided Workflow Analysis 11-18
    SQL Performance Analyzer: PL/SQL Example 11-19
    SQL Performance Analyzer: Data Dictionary Views 11-21
    Summary 11-22
    Practice 11: Overview 11-23
    12 SQL Performance Management
    Objectives 12-2
    Maintaining SQL Performance 12-3
    Maintaining Optimizer Statistics 12-4
    Automated Maintenance Tasks 12-5
    Statistic Gathering Options 12-6
    Setting Statistic Preferences 12-7
    Restore Statistics 12-9
    Deferred Statistics Publishing: Overview 12-10
    Deferred Statistics Publishing: Example 12-12
    Automatic SQL Tuning: Overview 12-13
    SQL Statement Profiling 12-14
    Plan Tuning Flow and SQL Profile Creation 12-15
    SQL Tuning Loop 12-16
    Using SQL Profiles 12-17
    SQL Tuning Advisor: Overview 12-18
    Oracle Internal & Oracle Academy Use Only
    xi
    Using the SQL Tuning Advisor 12-19
    SQL Tuning Advisor Options 12-20
    SQL Tuning Advisor Recommendations 12-21
    Using the SQL Tuning Advisor: Example 12-22
    Using the SQL Access Advisor 12-23
    View Recommendations 12-25
    View Recommendation Details 12-26
    SQL Plan Management: Overview 12-27
    SQL Plan Baseline: Architecture 12-28
    Loading SQL Plan Baselines 12-30
    Evolving SQL Plan Baselines 12-31
    Important Baseline SQL Plan Attributes 12-32
    SQL Plan Selection 12-34
    Possible SQL Plan Manageability Scenarios 12-36
    SQL Performance Analyzer and SQL Plan Baseline Scenario 12-37
    Loading a SQL Plan Baseline Automatically 12-38
    Purging SQL Management Base Policy 12-39
    Enterprise Manager and SQL Plan Baselines 12-40
    Summary 12-41
    Practice 12: Overview Using SQL Plan Management 12-42
    13 Using Database Replay
    Objectives 13-2
    Using Database Replay 13-3
    The Big Picture 13-4
    System Architecture: Capture 13-5
    System Architecture: Processing the Workload 13-7
    System Architecture: Replay 13-8
    Capture Considerations 13-9
    Replay Considerations: Preparation 13-10
    Replay Considerations 13-11
    Replay Options 13-12
    Replay Analysis 13-13
    Database Replay Workflow in Enterprise Manager 13-15
    Capturing Workload with Enterprise Manager 13-16
    Capture Wizard: Plan Environment 13-17
    Capture Wizard: Options 13-18
    Capture Wizard: Parameters 13-19
    Viewing Capture Progress 13-20
    Viewing Capture Report 13-21
    Export Capture AWR Data 13-22
    Oracle Internal & Oracle Academy Use Only
    xii
    Viewing Workload Capture History 13-23
    Processing Captured Workload 13-24
    Using the Preprocess Captured Workload Wizard 13-25
    Using the Replay Workload Wizard 13-26
    Replay Workload: Prerequisites 13-27
    Replay Workload: Choose Initial Options 13-28
    Replay Workload: Customize Options 13-29
    Replay Workload: Prepare Replay Clients 13-30
    Replay Workload: Client Connections 13-31
    Replay Workload: Replay Started 13-32
    Viewing Workload Replay Progress 13-33
    Viewing Workload Replay Statistics 13-34
    Packages and Procedures 13-36
    Data Dictionary Views: Database Replay 13-37
    Database Replay: PL/SQL Example 13-38
    Calibrating Replay Clients 13-40
    Summary 13-41
    Practice 13: Overview 13-42
    14 Tuning the Shared Pool
    Objectives 14-2
    Shared Pool Architecture 14-3
    Shared Pool Operation 14-4
    The Library Cache 14-5
    Latch and Mutex 14-7
    Latch and Mutex: Views and Statistics 14-9
    Diagnostic Tools for Tuning the Shared Pool 14-11
    AWR/Statspack Indicators 14-13
    Load Profile 14-14
    Instance Efficiencies 14-15
    Top Waits 14-16
    Time Model 14-17
    Library Cache Activity 14-19
    Avoid Hard Parses 14-20
    Are Cursors Being Shared? 14-21
    Sharing Cursors 14-23
    Adaptive Cursor Sharing: Example 14-25
    Adaptive Cursor Sharing Views 14-27
    Interacting with Adaptive Cursor Sharing 14-28
    Avoiding Soft Parses 14-29
    Sizing the Shared Pool 14-30
    Oracle Internal & Oracle Academy Use Only
    xiii
    Shared Pool Advisory 14-31
    Shared Pool Advisor 14-33
    Avoiding Fragmentation 14-34
    Large Memory Requirements 14-35
    Tuning the Shared Pool Reserved Space 14-37
    Keeping Large Objects 14-39
    Data Dictionary Cache 14-41
    Dictionary Cache Misses 14-42
    SQL Query Result Cache: Overview 14-43
    Managing the SQL Query Result Cache 14-44
    Using the RESULT_CACHE Hint 14-46
    Using the DBMS_RESULT_CACHE Package 14-47
    Viewing SQL Result Cache Dictionary Information 14-48
    SQL Query Result Cache: Considerations 14-49
    UGA and Oracle Shared Server 14-50
    Large Pool 14-51
    Tuning the Large Pool 14-52
    Summary 14-53
    Practice Overview 14: Tuning the Shared Pool 14-54
    15 Tuning the Buffer Cache
    Objectives 15-2
    Oracle Database Architecture 15-3
    Buffer Cache: Highlights 15-4
    Database Buffers 15-5
    Buffer Hash Table for Lookups 15-6
    Working Sets 15-7
    Tuning Goals and Techniques 15-9
    Symptoms 15-11
    Cache Buffer Chains Latch Contention 15-12
    Finding Hot Segments 15-13
    Buffer Busy Waits 15-14
    Calculating the Buffer Cache Hit Ratio 15-15
    Buffer Cache Hit Ratio Is Not Everything 15-16
    Interpreting Buffer Cache Hit Ratio 15-17
    Read Waits 15-19
    Free Buffer Waits 15-21
    Solutions 15-22
    Sizing the Buffer Cache 15-23
    Buffer Cache Size Parameters 15-24
    Dynamic Buffer Cache Advisory Parameter 15-25
    Oracle Internal & Oracle Academy Use Only
    xiv
    Buffer Cache Advisory View 15-26
    Using the V$DB_CACHE_ADVICE View 15-27
    Using the Buffer Cache Advisory with EM 15-28
    Caching Tables 15-29
    Multiple Buffer Pools 15-30
    Enabling Multiple Buffer Pools 15-32
    Calculating the Hit Ratio for Multiple Pools 15-33
    Multiple Block Sizes 15-35
    Multiple Database Writers 15-36
    Multiple I/O Slaves 15-37
    Use Multiple Writers or I/O Slaves 15-38
    Private Pool for I/O Intensive Operations 15-39
    Automatically Tuned Multiblock Reads 15-40
    Flushing the Buffer Cache (for Testing Only) 15-41
    Summary 15-42
    Practice 15: Overview Tuning the Buffer Cache 15-43
    16 Tuning PGA and Temporary Space
    Objectives 16-2
    SQL Memory Usage 16-3
    Performance Impact 16-4
    Automatic PGA Memory 16-5
    SQL Memory Manager 16-6
    Configuring Automatic PGA Memory 16-8
    Setting PGA_AGGREGATE_TARGET Initially 16-9
    Monitoring SQL Memory Usage 16-10
    Monitoring SQL Memory Usage: Examples 16-12
    Tuning SQL Memory Usage 16-13
    PGA Target Advice Statistics 16-14
    PGA Target Advice Histograms 16-15
    Automatic PGA and Enterprise Manager 16-16
    Automatic PGA and AWR Reports 16-17
    Temporary Tablespace Management: Overview 16-18
    Temporary Tablespace: Best Practice 16-19
    Configuring Temporary Tablespace 16-20
    Temporary Tablespace Group: Overview 16-22
    Temporary Tablespace Group: Benefits 16-23
    Creating Temporary Tablespace Groups 16-24
    Maintaining Temporary Tablespace Groups 16-25
    View Tablespace Groups 16-26
    Monitoring Temporary Tablespace 16-27
    Oracle Internal & Oracle Academy Use Only
    xv
    Temporary Tablespace Shrink 16-28
    Tablespace Option for Creating Temporary Table 16-29
    Summary 16-30
    Practice Overview 16: Tuning PGA Memory 16-31
    17 Automatic Memory Management
    Objectives 17-2
    Oracle Database Architecture 17-3
    Dynamic SGA 17-4
    Granule 17-5
    Memory Advisories 17-6
    Manually Adding Granules to Components 17-7
    Increasing the Size of an SGA Component 17-8
    Automatic Shared Memory Management: Overview 17-9
    SGA Sizing Parameters: Overview 17-10
    Dynamic SGA Transfer Modes 17-11
    Memory Broker Architecture 17-12
    Manually Resizing Dynamic SGA Parameters 17-13
    Behavior of Auto-Tuned SGA Parameters 17-14
    Behavior of Manually Tuned SGA Parameters 17-15
    Using the V$PARAMETER View 17-16
    Resizing SGA_TARGET 17-17
    Disabling Automatic Shared Memory Management 17-18
    Configuring ASMM 17-19
    SGA Advisor 17-20
    Monitoring ASMM 17-21
    Automatic Memory Management: Overview 17-22
    Oracle Database Memory Parameters 17-24
    Automatic Memory Parameter Dependency 17-25
    Enabling Automatic Memory Management 17-26
    Monitoring Automatic Memory Management 17-27
    DBCA and Automatic Memory Management 17-29
    Summary 17-30
    Practice 17: Overview Using Automatic Memory Tuning 17-31
    Oracle Internal & Oracle Academy Use Only
    xvi
    18 Tuning Segment Space Usage
    Objectives 18-2
    Space Management 18-3
    Extent Management 18-4
    Locally Managed Extents 18-5
    Large Extents: Considerations 18-6
    How Table Data Is Stored 18-8
    Anatomy of a Database Block 18-9
    Minimize Block Visits 18-10
    The DB_BLOCK_SIZE Parameter 18-11
    Small Block Size: Considerations 18-12
    Large Block Size: Considerations 18-13
    Block Allocation 18-14
    Free Lists 18-15
    Block Space Management 18-16
    Block Space Management with Free Lists 18-17
    Automatic Segment Space Management 18-19
    Automatic Segment Space Management at Work 18-20
    Block Space Management with ASSM 18-22
    Creating an Automatic Segment Space Management Segment 18-23
    Migration and Chaining 18-24
    Guidelines for PCTFREE and PCTUSED 18-26
    Detecting Migration and Chaining 18-27
    Selecting Migrated Rows 18-28
    Eliminating Migrated Rows 18-29
    Shrinking Segments: Overview 18-31
    Shrinking Segments: Considerations 18-32
    Shrinking Segments by Using SQL 18-33
    Segment Shrink: Basic Execution 18-34
    Segment Shrink: Execution Considerations 18-35
    Using EM to Shrink Segments 18-36
    Table Compression: Overview 18-37
    Table Compression Concepts 18-38
    Using Table Compression 18-39
    Summary 18-40
    19 Tuning I/O
    Objectives 19-2
    I/O Architecture 19-3
    File System Characteristics 19-4
    I/O Modes 19-5
    Oracle Internal & Oracle Academy Use Only
    xvii
    Direct I/O 19-6
    Bandwidth Versus Size 19-7
    Important I/O Metrics for Oracle Databases 19-8
    I/O Calibration and Enterprise Manager 19-10
    I/O Calibration and the PL/SQL Interface 19-11
    I/O Statistics: Overview 19-13
    I/O Statistics and Enterprise Manager 19-14
    Stripe and Mirror Everything 19-16
    Using RAID 19-17
    RAID Cost Versus Benefits 19-18
    Should I Use RAID 1 or RAID 5? 19-20
    Diagnostics 19-21
    Database I/O Tuning 19-22
    What Is Automatic Storage Management? 19-23
    Tuning ASM 19-24
    How Many Disk Groups per Database 19-25
    Which RAID Configuration for Best Availability? 19-26
    ASM Mirroring Guidelines 19-27
    ASM Striping Granularity 19-28
    What Type of Striping Works Best? 19-29
    ASM Striping Only 19-30
    Hardware RAID Striped LUNs 19-31
    ASM Guidelines 19-32
    ASM Instance Initialization Parameters 19-33
    Dynamic Performance Views 19-34
    Monitoring Long-Running Operations by Using V$ASM_OPERATION 19-36
    ASM Instance Performance Diagnostics 19-37
    ASM Performance Page 19-38
    Database Instance Parameter Changes 19-39
    ASM Scalability 19-40
    Summary 19-41
    20 Performance Tuning Summary
    Objectives 20-2
    Necessary Initialization Parameters with Little Performance Impact 20-3
    Important Initialization Parameters with Performance Impact 20-4
    Sizing Memory Initially 20-6
    Database High Availability: Best Practices 20-7
    Undo Tablespace: Best Practices 20-8
    Temporary Tablespace: Best Practices 20-9
    General Tablespace: Best Practices 20-11
    Internal Fragmentation Considerations 20-12
    Oracle Internal & Oracle Academy Use Only
    xviii
    Block Size: Advantages and Disadvantages 20-13
    Automatic Checkpoint Tuning 20-14
    Sizing the Redo Log Buffer 20-15
    Sizing Redo Log Files 20-16
    Increasing the Performance of Archiving 20-17
    Automatic Statistics Gathering 20-19
    Automatic Statistics Collection: Considerations 20-20
    Commonly Observed Wait Events 20-21
    Additional Statistics 20-22
    Top 10 Mistakes Found in Customer Systems 20-23
    Summary 20-25
    Appendix A: Practices and Solutions
    Appendix B: Using Statspack
    Index

  • Performance Tunning - Oracle Reports 6i

    Hi Gurus,
    I have an Oracle Apps Reports 6i with a formula column having so much of conditions making the reports to take long time to get completed. Its taking 20 mins to complete. Please your help on this.
    Thanks,
    Genoo

    Hi
    what is your database version?
    what is your table size ?
    How many RAM do you have in this server?
    However, in Reports, the default optimizer mode is ALL_ROWS, this optimizer mode let you have the best system through put.
    In SQL*Plus, you have to set the optimizer mode to ALL_ROWS to tune the report SQL performance:
    Issue
    ALTER SESSION SET OPTIMIZER_MODE=ALL_ROWS;
    or add an optimizer hint in the SQL statement
    Select /*+ ALL_ROWS */
    from ....

  • How to do Performance tunning in OBIEE

    Hi All,
    We are using OBIEE 10.3.4 version on windows envorinment .In our OBIEE project we are using 9 reports my requriment is we need to do performance tunning for OBIEE side.For eace report accessing its taking around 80 sec.We need to decrease these accessing time,is there any possibility to access all the reports with less response time in OBIEE side.
    Could you anyone suggest how to do performance tunning in OBIEE side.
    Thanks,
    Vijay.

    Vijay,
    Plz refer
    http://www.business-intelligence-quotient.com/?p=119
    http://prolynxuk.com/blog/?p=173
    http://businessdecisionsystems.com/blog/?p=486
    Here is the section from the BIEE admin guide:
    =======================
    Usage Examples
    This section provides a few examples of how to use Oracle hints in conjunction with the Oracle BI Server. For more information about Oracle hints, refer to the Oracle SQL Reference documentation for the version of the Oracle server that you use.
    Index Hint
    The Index hint instructs the optimizer to scan a specified index rather than a table. The following hypothetical example explains how you would use the Index hint. You find queries against the ORDER_ITEMS table to be slow. You review the query optimizer's execution plan and find the FAST_INDEX index is not being used. You create an Index hint to force the optimizer to scan the FAST_INDEX index rather than the ORDER_ITEMS table. The syntax for the Index hint is index(table_name, index_name). To add this hint to the repository, navigate to the Administration Tool's Physical Table dialog box and type the following text in the Hint field:
    index(ORDER_ITEMS, FAST_INDEX)
    Leading Hint
    The Leading hint forces the optimizer to build the join order of a query with a specified table. The syntax for the Leading hint is leading(table_name). If you were creating a foreign key join between the Products table and the Sales Fact table and wanted to force the optimizer to begin the join with the Products table, you would navigate to the Administration Tool's Physical Foreign Key dialog box and type the following text in the Hint field:
    leading(Products)
    So, the table names "order_items" and "products" in the above documentation will not be the same after BIEE puts aliases on them.
    ============
    Hope this is useful..
    Edited by: Deepak Gupta on Aug 1, 2011 7:18 AM

  • Performance Tune Stored procedures

    Hi Experts,
    What is the best approach to performance tune stored procedures. Is it to run expalin plan for the queries used in cursors or there is more to it?
    I need all your advise.
    Thanks

    As generic advice: Absolutely not.
    The performance of PL/SQL may be irrelevant to the performance of specific SQL statements contained.
    Consider the following:
    1. A very inefficient query that runs one time and takes 2 seconds to execute.
    2. A query that runs in 2 milliseconds inside a loop.
    Which one is more likely to be the issue?
    The answer is that it depends on the number of interations of the loop.
    The proper tool for tuning PL/SQL, as discussed by Tom Kyte, are, depending on version, DBMS_PROFILER or DBMS_HPROF.
    Find out where the time is being spent.
    Then tune that which takes the most time.
    It is not necessarily the slowest SQL statement.

  • How to learn abt performance tunning...

    Hi ,
    Is there any way so I can learn tunning in a flash,
    anyway I know the concept of Oracle architecture,sql,backup and recovery bust still not able to give proper time to performance tunning plz do suggest me thath how to achieve it and plz provide me the link where I can get learn things without going into big 1000 pages book.
    very warm regards : Alok Kumar ...

    As for as tuning concern, I recommend you to read following books,
    1. Cary Milsap's, Oracle Performance.
    2. Don Tow's, SQL Tuning
    3. Tom Kyte's, Expert one on one.
    4. Jonathan Lewis, Buddiling Effective Database.
    Apart from the above books, you can also visit their respective site to get more info about performance tuning. http://asktom.oracle.com, www.hotsos.com,http://www.jlcomp.demon.co.uk, www.evdbt.com, www.oraperf.com and etc.
    My recommendation would be start learning about:
    SQL Tuning
    Join Methods
    tracing event 10046,10053 and reding execution plan & tkprof.
    wait events and how to spot the error.
    Jaffar

  • Help needed in SQL performance - Using CASE in SQL statement versus 2 query

    Hi,
    I have a requirement to find count from a bunch of tables.
    The SQL I have gives the count of all members.
    I have created 2 queries to find count of active and inactive members.
    The key difference is only the active dates.
    Each query takes 20 seconds to execute.
    I modified the SQL to use CASE statement in the SELECT.
    So after the data is fetched the CASE statement will evaluate the active date and gives 2 counts (active and inactive)
    Is it advisable to use this approach. Will CASE improve SQL performance ? I have to justify this.
    Please let me know your thoughts.
    Thanks,
    J

    Hi,
    If it can be done in single SQL do it in single SQL.
    You said:
    Will CASE improve SQL performance There can be both cases to prove if the performance is better or worse.
    In your case you should tell us how it is.
    Regards,
    Bhushan

Maybe you are looking for

  • PDF Output: Why is "PDF Review" styled different than "Generate PDF"?

    I am new to RH.  I have imported a folder of HTML files (used in an Eclipse Help plugin) into RH9 for HTML as a project. My goal is to produce a PDF document. When I generate a PDF from Printed Documentation in the Single Source Layouts pad, many sty

  • Java.text.SimpleDateFormat.parse()

    This method does too much than I expected, say: SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy"); Date d = sdf.parser("00/00/0000");The d would be 1999, Nov. 30. After hacked the source code and some testing, I found it will roll backward or

  • In Linux-based UCM5.X /6.x, any command could verify DVD-ROM working ?

    Hello all, I gonna replace DVD-ROM on UCM5.X server. Is any "show" "list" etc command that could be run to verify if replacment DVD-ROM is working not? Or do you have other way to check ? Thanks, Ethan

  • Encore CS5 won't start on Windows 7 Ultimate

    I recently installed Adobe CS5 Master Collection. I tested all of the applications in the suite and they all worked with the exception of Encore. When I launch the program it stalls on the "initializing PSD Support" window. I reinstalled the program

  • IPhoto 9.5.1 stop Ken Burns effect

    The "help" for iphoto 9.5.1 doesn't seem to help. How do I stop the Ken Burns effect? Also how do I change the size of the picture in full screen virw. In a slideshow I am losing some of the picture.