How to find cause of db performance problem??

Hi,
I am facing continuous performance issues with our database and for that I want to know how I can get information about the following points:
1- How to find most accessed table(s) or tables with highest hits or top queries is accessing which table(s)?
2- What indication can tell that a particular table need to be rebuilt?
3- When to rebuild indexes? and how to know that an indexed need to be rebuilt?
Your prompt reply is highly appreciated
Thanks,
Younis

Hi,
a good starting point for investigating poor database performance is AWR (if you have a license for that) or statspack (if you don't). If you need help interpreting it, you can refer to J. Lewis's series on statspack reports (also applies to AWR):
http://jonathanlewis.wordpress.com/2011/03/09/statspack-reports/
I have also made a few blog posts on this topic, see http://savvinov.com/tag/awr/
Regarding your other questions -- countrary to popular belief, rebuilding indexes or tables is seldom helpful. More often, performance problems are caused by bad execution plans (side effects of bind peaking, inaccurate statistics, correlated predicates etc.), data design issues, bad coding practices, not using bind variables etc.
Database performance topic is a huge topic and obviously cannot fit into a discussion thread. Christian Antognini's book "Oracle Performance Troubleshooting" can provide you a gentle introduction into performance tuning, provided you already have good familiarity with Oracle architecture.
Or, if you want help with your particular problem, post your AWR report here and briefly describe what your users are unhappy about -- there is a good chance that you get valuable feedback from several renowned experts.
Good luck!
Best regards,
Nikolay

Similar Messages

  • How to find cause of this message

    Our plsql web application is getting this message in IE:
    "This document was found at the following location.
    HTTP/1.1 200 OK Date:Mon, 26 Jan 2004 18:52:02 GMT Allow:GET, HEAD Server. Oracle_Web_listener/4.0.8.1.0EnterpriseEdition Content-Type:text/html Content-length:4101 Connection:Keep-Alive Keep-Alive; timeout=10,max=999"
    Any thoughts?
    Thanks.

    Hi;
    ORA-07445: internal error code, You are getting oracle internal error(ORA 07445) which mean you could need to work wiht oracle support team. Please see below note, if its not help than i suggest log a sr:
    Troubleshoot an ORA-600 or ORA-7445 Error Using the Error Lookup Tool [ID 153788.1]
    Regard
    Helios

  • How to find cause of "File cannot be found" in sync iphoto to iphone in itunes?

    Hi can anyone help with syncing iPhoto to iPhone ?     I know similar posts exist on this subject but I have spent 4 days reading them and every support article even vaguely related to it but have not found a solution that works for me.   I have downloaded the latest iTunes, deleted the itunes helper p'list, deleted the ipod photo cache, tried copying my iPhoto library to another HD and syncing with that, tried switching the phone on and off while connected with iTunes and when not, done innumerable restarts, unchecked the sync photos box to delete library photos from the iphone and tried again, rebuit the iPhoto Library, repaired permissions, rebuilt thumbnails, and a few other suggestions I've read and all these many many times in the hope that this time it might work and all to no avail.     When syncing,  iTunes verifies the phone, backs it up, syncs everything else then analyses the iPhoto library, optimises the photos and then starts to copy them and after a few moments gives me that familiar message that the " iPhone cannot be synced. The required file cannot be found "  My iphone tells me " iTunes Sync Needed.  High Resolution images synced via iTunes are missing. Connect your device to the computer ...launch iTunes to sync them."  Where the photos used to be in each album or event that is still listed there are just black boxes.   I use the iphoto library on my iPhone for work purposes, at least I used to and I still need to.  This is really driving me nuts and I am sure it's rectifiable but I am clueless as to what to do to fix it.  I'm sure someone out there knows what I should do and I really need to know! PLEASE !

    It works on my Windows 7 laptop.
    iTunes has to be started.
    Are you sure you have Windows Explorer set to show file extensions?
    Sounds like you renamed it from "FindDeadTracks.txt" to "FindDeadTrack.js.txt" if it is still opening in notepad.
    All I do is have itunes started, double-click on the .js file, and let it run. My library is pretty large so it takes more than a 1/2 hour to finish going through all the tracks. It comes back with a message, "0 dead tracks found" and the little notepad results file it creates is blank.
    If you DO have dead tracks, it comes back with a message like "15 dead tracks" found and the results file lists those 15 tracks.
    The name of the results file is "Dead Tracks.txt"

  • How to find the 1(one week) performance of the system

    HI every one
    in my recent interview he has asked this question
    i have checked the sar options through man pages but i couldnt understand ...
    can any one please tell me how to find the on week performance report of a system......
    please tell me how i can find the performnace reports
    Thanks in Advance

    Hi.
    crontab -l sys
    Show, activated or not collecting of performance statistics.
    man sa1
    The shell script sa1, a variant of sadc, is used to collect
    and store data in the binary file /var/adm/sa/sadd, where dd
    is the current day.
    So you need found file with correct date in /var/adm/sa
    Regards.

  • How can i improve my system performance

    hello Experts,
    today i faced one problem
    i,e i got mails from users that my server is very slow
    i checked
    responce time--985ms
    and no long running jobs and also buffers also fine
    in my system all things are fine
    now want to know to check how much network utilization required to my sap server?
    i have doubt in network utilization ....i need help in tis way only
    Regards

    Is the DB on a separate server?  I ask because even a fairly slow public network (i.e. for SAPGUI) is unlikely to be a cause of major performance problems.  Note 'unlikely', not 'impossible'. If the DB is separated from CI and/or DI and that link is 100Mb/s, things can get nasty. 
    Slow performance is real tricky to solve blind. You say your system is fine and you mention SAP-level metrics.  How about other stuff?
    Paging rate
    CPU load averages
    Runaway processes at O/S level
    If Windows server, check for an antivirus program monitoring \usr\sap\.....
    Filesystem/volume access speeds
    System log messages (OS not SAP)
    Regards,
    Alan.

  • WAS JAVA 640 engine is giving performance problems.

    Hi,
    We are facing the performance issues in WAS java 640 SP19 engine. Pages are taking much time to load.
    Kindly suggest if there anything do with jco connection parameter changes and recommended values. Is there any parametes to check at the backend system level.
    WAS version: 640, SP19
    OS : SUN 5.9
    Oralce: 9.2.0.8
    Thanks,
    Hareesh

    Hello Hareesh
    You should find the root cause of  your performance problem first.
    Start with checking the server (cpu, memory, paging) and by checking if your portal runs on the recommended parameters (check oss notes).
    A killer for portal performance is when you have a lot of paging going on, make sure the portal has enough extended memory available to avoid any paging.
    If those don't give a result, you can still analyze garbage collection logs with third party tools.
    Check if heapdumps are being generated and analyze them.
    Once those checks are done, I would recommend installation of Sol Man Diagnostics + Wily Introscope so you get a better view on what is going on and troubleshoot further from there.
    Kind regards
    Tom

  • ADF Apps, CPU high utilization on OAS, how to find the cause of problem ?

    Hi all,
    We are running ADFBC application on OAS 10.1.3.3 on RH Linux ES 4. The database is Oracle 10g on RH Linux also.
    Memory is 16 GB. 1 JVM.
    Most of time I see (with linux "top" command) that CPU utilization on OAS is 99.9 %
    And at the peak load (150 -200 users) user gets very slow that we have to restart the OC4J to the it normal again.
    here is the setting in opmn.xml :
    <data id="java-bin" value="/opt/oracle/OraHome_oc4j/jdk64/jdk1.5.0_17/bin/java"/>
    <data id="java-options" value="-server -XX:CompileCommand=exclude,oracle/sql/NUMBER,toBytes
    -ms3072M -mx3072M -XX:+AggressiveHeap -XX:MaxPermSize=1024M -XX:AppendRatio=3 -Djava.security.policy=$ORACLE_HOME/j2ee/ittas/config/java2.policy
    -Djava.awt.headless=true -Dhttp.webdir.enable=false"/>
    Heap Usage on EM, is between 2250 MB - 2850 MB.
    How do I know what is the cause of that problem ? How can AD4J help to find the source of the problem ?
    Thank you very much,
    xtanto

    xtanto,
    Hi again...
    Just a quick thought (I know it doesn't answer your question directly, but...) have you tried multiple JVM's? It's really quite easy to set up in OAS, and may possibly help you out. How many CPU's on the box?
    We have an app (it gets such high concurrent usage during one period of the year), and we're running it on 3 JVM's on a single Linux box with either 2 or 4 (cannot recall) CPU's
    John

  • How to find out the column causing the error while doing update or insert

    I'm getting the below error when attempt to update or insert a long string that is more than its defined length in the DB2. For example in table the column length is defined as 50, however from UI the data for that column is more than 50 chars.
    {color:#ff0000}**Caused by: com.ibm.db2.jcc.b.SqlException: DB2 SQL error: SQLCODE: -302, SQLSTAT**
    **E: 22001, SQLERRMC: null**
    **at com.ibm.db2.jcc.b.hh.b(hh.java:1369)**
    **at com.ibm.db2.jcc.b.hh.c(hh.java:1356)**{color}
    The above issue can be fixed by setting maxlength in the UI itself. However in my case, there is a backend program trying to insert or update load of records. If the exact column name causing the error is known, it will be helpful to load the data properly in the next attempt.
    I have worked around it using SQLWarning and DataTruncation, but couldn't find the solution yet.
    Any help on this issue will be really appreciated.

    Medraf wrote:
    what is validator? Is it like validation.xml in struts? Are you suggesting like defining set of validation rules in the xml and apply the same for each record before doing any update or insert in DB? If so, then I could implement this validation logic in my backend code, however it may take more time to complete the batch prcoess.
    How you implement doesn't matter.
    However given a schema generating code for such validation is trivially simple at least for field types and sizes. Relationships are harder but those can be handled via custom rules.
    Alternatively I'm looking for some kind of API in JDBC or Hibernate which gives the detailed sql exception message containing the error info like the column name and the reason for failure while update or insert. If not possible, then validation logic needs to be implemented.Having seen something similar in Oracle years ago I seriously doubt that you are going find it magically appearing in JDBC/hibernate. There might be warning on the SQLException (see the java docs for SQLException) but I wouldn't count on it. Other than that the only possibility is making some sort of call in db2 itself that tells you the error. Only problem with that is it might require the context which might not be available once you see the error (presuming, especially for performance, that you are using batch processing.)
    As a start figure out how to find out using only db2 (docs and/or db2 forums.)

  • How to avoid performance problems in PL/SQL?

    How to avoid performance problems in PL/SQL?
    As per my knowledge, below some points to avoid performance proble in PL/SQL.
    Is there other point to avoid performance problems?
    1. Use FORALL instead of FOR, and use BULK COLLECT to avoid looping many times.
    2. EXECUTE IMMEDIATE is faster than DBMS_SQL
    3. Use NOCOPY for OUT and IN OUT if the original value need not be retained. Overhead of keeping a copy of OUT is avoided.

    Susil Kumar Nagarajan wrote:
    1. Group no of functions or procedures into a PACKAGEPutting related functions and procedures into packages is useful from a code organization standpoint. It has nothing whatsoever to do with performance.
    2. Good to use collections in place of cursors that do DML operations on large set of recordsBut using SQL is more efficient than using PL/SQL with bulk collects.
    4. Optimize SQL statements if they need to
    -> Avoid using IN, NOT IN conditions or those cause full table scans in queriesThat is not true.
    -> See to queries they use Indexes properly , sometimes Leading index column is missed out that cause performance overheadAssuming "properly" implies that it is entirely possible that a table scan is more efficient than using an index.
    5. use Oracle HINTS if query can't be further tuned and hints can considerably help youHints should be used only as a last resort. It is almost certainly the case that if you can use a hint that forces a particular plan to improve performance that there is some problem in the underlying statistics that should be fixed in order to resolve issues with many queries rather than just the one you're looking at.
    Justin

  • List versions causing performance problems

    We have a List - not Library - List - with about 100 columns (Yes. We know that's a lot and have verified that one Item wraps to two DB rows), none of which is indexed.  An InfoPath form is used to enter and
    view the List Items. Versioning is on for auditing purposes. Versioning appears to be causing a significant performance issue - the more versions a record has, the longer it takes for the IP form to open.  Generally, each version adds one second to the
    time it takes for the IP form to open. So if a list item has 30 versions, it takes about 30 seconds from the time the user clicks the Title link until the IP form opens. Obviously having to wait 30 seconds or more for a form to open is a problem.
    The performance is similar when we open the Version History window for any one Item. We also tried using PowerShell to load a List Item's Versions and it, too, behaves the same...about 1s delay for each version an
    Item has. 
    Any suggestions on how we can configure the list or SP to prevent versions from slowing performance?

    Created PDFs for the results for the first two -
    dbcc show_statistics(AllUserData,AllUserData_PK)
    dbcc show_statistics(AllUserData,AllUserData_ParentID)
    Here are the results to the Select statement:
     select name,alloc_unit_type_desc,avg_fragmentation_in_percent from…
    name
    alloc_unit_type_desc
    avg_fragmentation_in_percent
    AllUserData_ParentId
    IN_ROW_DATA
    29.15961419
    AllUserData_ParentId
    LOB_DATA
    0
    AllUserData_PK
    IN_ROW_DATA
    28.0240832

  • How to find the program performance

    Hi SAP Gurus,
    I came to know that we can check the object performance with se30 t.code. 
    There we can find all the components performance of the system.
    My question is !
    If the performance is calculate by the request and response time, some times server is in good speed and sometimes in normal speed to execute.  If i execute the same program in both the cases,  Is there any changes in runtime analsys.  If yes how can we find the perfect performance of my object.
    Please give me the answer you will be rewarded with points for the best answer. 
    thanks
    kishore

    Hi kishore,
    ols available in SAP to pin-point a performance problem
    The runtime analysis (SE30)
    SQL Trace (ST05)
    Tips and Tricks tool
    The performance database
    Optimizing the load of the database
    Using table buffering
    Using buffered tables improves the performance considerably. Note that in some cases a stament can not be used with a buffered table, so when using these staments the buffer will be bypassed. These staments are:
    Select DISTINCT 
    ORDER BY / GROUP BY / HAVING clause 
    Any WHERE clasuse that contains a subquery or IS NULL expression 
    JOIN s 
    A SELECT... FOR UPDATE 
    If you wnat to explicitly bypass the bufer, use the BYPASS BUFFER addition to the SELECT clause.
    Use the ABAP SORT Clause Instead of ORDER BY
    The ORDER BY clause is executed on the database server while the ABAP SORT statement is executed on the application server. The datbase server will usually be the bottleneck, so sometimes it is better to move thje sort from the datsbase server to the application server.
    If you are not sorting by the primary key ( E.g. using the ORDER BY PRIMARY key statement) but are sorting by another key, it could be better to use the ABAP SORT stament to sort the data in an internal table. Note however that for very large result sets it might not be a feasible solution and you would want to let the datbase server sort it.
    Avoid ther SELECT DISTINCT Statement
    As with the ORDER BY clause it could be better to avoid using SELECT DISTINCT, if some of the fields are not part of an index. Instead use ABAP SORT + DELETE ADJACENT DUPLICATES on an internal table, to delete duplciate rows.
    Rgds,
    P.Nag

  • I'm exhausted of trying to find a solution to a problem created by Apple. I have moved to iCloud, following your instructions and now I can not use my mobileme e-mail address. How can I contact directly with Apple, not just an automatic reply phone number

    I'm exhausted of trying to find a solution to a problem created by Apple. I have moved to icloud following all your instructions and now I can not use my mobile me e-mail address. I can not activate icloud because when I put my e-mail address it answers that somebody is already using my address. I have my old e-mails, but I can not receive any e-mail or send them.
    I have contacted Apple Technical Support in Spain and I was sent an e-mail saying that I have to call a phone number and when I call it is always an answering machine who answers that says that I have to pay 50€ for a consultation or wait for 10 minutes. When I have made the consultation it was never mentioned that I have to pay 50€ for a phone consultation. If I don't want to wait I have to pay for the Apple Tecnical Support which cost 250 €, this was not mentioned in the technical support page.
    Can somebody let me know how can I contact Apple in another way in order to talk with a human being or chat directly? I was very happy just using my mobileme e-mails, I didn't need any clouds and I was force by Apple to registered if I want to continue using my mobileme e-mail address.

    Sandra,
    See this Apple support document for information on reporting an issue with your iTunes purchase.
    http://support.apple.com/kb/HT1933
    B-rock

  • JSP causes serious performance problem in my EP

    I have a native JSP application and running it on the EP. This application accessing a Oracle db (using oracle.jdbc.driver.OracleDriver driver).
    When this db not running, my EP doesn't open any page. The EP try to connect with this db, but not get success.
    I modify this application with TRY and CATCH to treat the application problem, but the EP problem continues.
    In the EP Thread Overview (System Adm -> Monitoring -> Portal -> Thread Overview), I see threads (locked) about this application. To unlock this threads, I delete the par file from the Portal and re-deploy it.
    When this threads is deleted, the application treat the problem (display a error message in the iView container) and EP work normally.
    My questions:
    1) Exists some way that the problem with this application does not cause performance problems with the EP (via code or property)?
    2) Exists some property in the Config Tool where I configure the connection timeout for access the external DB?
    3) Exists some way to liberate these (locked) threads of the EP (I see the page Clearing the Portal Runtime Cache - http://help.sap.com/saphelp_nw04/helpdata/en/d2/a216e1bd7b431c82fa5ff105187112/frameset.htm - but I don't know if I can use it for this)
    I use EP 6.0 SP 15.
    Thanks,
    Yuri Fiori de Almeida

    Hi Umair,
    the code is:
    <%@ page contentType="text/html; charset=iso-8859-1" language="java" import="java.sql.*" %>
    <%@ include file="isa_cad.jsp" %>
    <%
    Connection Connselect_localidade = null;
    try{
         Driver Driverselect_localidade = (Driver)Class.forName(MM_isa_cad_DRIVER).newInstance();
         Connselect_localidade = DriverManager.getConnection(MM_isa_cad_STRING,MM_isa_cad_USERNAME,MM_isa_cad_PASSWORD);
         PreparedStatement Statementselect_localidade = Connselect_localidade.prepareStatement("SELECT DISTINCT X AS Y FROM Z.K WHERE W = 1 ORDER BY X");
         ResultSet select_localidade = Statementselect_localidade.executeQuery();
         boolean select_localidade_isEmpty = !select_localidade.next();
         boolean select_localidade_hasData = !select_localidade_isEmpty;
         Object select_localidade_data;
         int select_localidade_numRows = 0;
    %>
    <!---- Page Layout --->
    <%
              select_localidade_hasData = select_localidade.next();
         select_localidade.close();
         Statementselect_localidade.close();
    //Connselect_localidade.close();
    %>
    <!---- Page Layout --->
    <%
    catch(Exception e){
    %>
    <!---- Page Layout ---><%
    finally{
         try{
              if(Connselect_localidade != null) Connselect_localidade.close();
         catch(Exception e){
    %>
    Thanks,
    Yuri.

  • How to find for which select statement performance is more

    hi gurus
    can anyone suggest me
    if we have 2 select statements than
    how to find for which select statement performance is more
    thanks&regards
    kals.

    hi check this..
    1 .the select statement in which the primary and secondary keys are used will gives the good performance .
    2.if the select statement had select up to  i row is good than the select single..
    go to st05 and check the performance..
    regards,
    venkat

  • How to find the cause ofan error at runtime in forms (10g)

    hi
    can u please tell me how to find the cause ofan error at runtime.
    in forms 6i, the shortcut key is shift+f1
    i needthe shotcut key in 10g forms.
    thanx

    or just look in you menu help, -- last error or you can find the list of shortcut keys there ...
    \Erwin

Maybe you are looking for

  • Can't get Struts validator to work with ADF 10.1.3.36.73 in Jdev 10.1.3.0.4

    I am attempting to use the "How to Use the Struts Validator Plug-in with JDeveloper 10g" written by Duncan in a JDeveloper 10.1.3.0.4 application with standard model/ViewController projects. I am using JSP/Struts/ADF technologies. I have performed th

  • Is Unity 7.0(2) compatible with CUCM 8.6 ?

    Is Unity 7.0(2) compatible with CUCM 8.6 ? The documentation reports the compatibility with CUCM 8.5(x), but is not updated for 8.6. Thank you

  • Trying to Add "search" to Form

    In JDev 10.1.2, I have a JSP with a read-only form that has the navigation buttons at the bottom ('First-Next-Previous-Last') and an LOV at the top that also controls which record I am viewing. I have been trying to add the capability to search on th

  • Switch to English (Great Britain)

    The default language for my D'Inc 2 was set to English (United States). I do live in the United States, but I prefer to use English (Great Britain) as my default language. Can I change the default language to English (Great Britain)?

  • Hide extensions for known file type

    Hi, This is Harish, i have an issue in Win 7, in my computer-Tools-foder options-view-"Hide extensions for known file types- if have to uncheck ths option for every fresh login, after log off or restart this option will get automatically get checked,