How to resolve most of the Oracle SQL , PL/SQL Performance issues with help of quick Checklist/guidelines ?

Please go thru below important checklist/guidelines to identify issue in any Perforamnce issue and resolution in no time.
Checklist for Quick Performance  problem Resolution
·         get trace, code and other information for given PE case
          - Latest Code from Production env
          - Trace (sql queries, statistics, row source operations with row count, explain plan, all wait events)
          - Program parameters & their frequently used values
          - Run Frequency of the program
          - existing Run-time/response time in Production
          - Business Purpose
·         Identify most time consuming SQL taking more than 60 % of program time using Trace & Code analysis
·         Check all mandatory parameters/bind variables are directly mapped to index columns of large transaction tables without any functions
·         Identify most time consuming operation(s) using Row Source Operation section
·         Study program parameter input directly mapped to SQL
·         Identify all Input bind parameters being used to SQL
·         Is SQL query returning large records for given inputs
·         what are the large tables and their respective columns being used to mapped with input parameters
·         which operation is scanning highest number of records in Row Source operation/Explain Plan
·         Is Oracle Cost Based Optimizer using right Driving table for given SQL ?
·         Check the time consuming index on large table and measure Index Selectivity
·         Study Where clause for input parameters mapped to tables and their columns to find the correct/optimal usage of index
·         Is correct index being used for all large tables?
·         Is there any Full Table Scan on Large tables ?
·         Is there any unwanted Table being used in SQL ?
·         Evaluate Join condition on Large tables and their columns
·         Is FTS on large table b'cos of usage of non index columns
·         Is there any implicit or explicit conversion causing index not getting used ?
·         Statistics of all large tables are upto date ?
Quick Resolution tips
1) Use Bulk Processing feature BULK COLLECT with LIMIT and FOR ALL for DML instead of row by row processing
2) Use Data Caching Technique/Options to cache static data
3) Use Pipe Line Table Functions whenever possible
4) Use Global Temporary Table, Materialized view to process complex records
5) Try avoiding multiple network trips for every row between two database using dblink, Use Global temporary table or set operator to reduce network trip
6) Use EXTERNAL Table to build interface rather then creating custom table and program to Load and validate the data
7) Understand Oracle's Cost based Optimizer and Tune most expensive SQL queries with help of Explain plan
8) Follow Oracle PL/SQL Best Practices
9) Review tables and their indexes being used in the SQL queries and avoid unnecessary Table scanning
10) Avoid costly Full Table Scan on Big Transaction tables with Huge data volume,
11) Use appropriate filtration condition on index columns of seeded Oracle tables directly mapped to program parameters
12) Review Join condition on existing query explain plan
13) Use Oracle hint to guide Oracle Cost based optimizer to choose best plan for your custom queries
14) Avoid applying SQL functions on index columns
15) Use appropriate hint to guide Oracle CBO to choose best plan to reduce response time
Thanks
Praful

I understand you were trying to post something helpful to people, but sorry, this list is appalling.
1) Use Bulk Processing feature BULK COLLECT with LIMIT and FOR ALL for DML instead of row by row processing
No, use pure SQL.
2) Use Data Caching Technique/Options to cache static data
No, use pure SQL, and the database and operating system will handle caching.
3) Use Pipe Line Table Functions whenever possible
No, use pure SQL
4) Use Global Temporary Table, Materialized view to process complex records
No, use pure SQL
5) Try avoiding multiple network trips for every row between two database using dblink, Use Global temporary table or set operator to reduce network trip
No, use pure SQL
6) Use EXTERNAL Table to build interface rather then creating custom table and program to Load and validate the data
Makes no sense.
7) Understand Oracle's Cost based Optimizer and Tune most expensive SQL queries with help of Explain plan
What about using the execution trace?
8) Follow Oracle PL/SQL Best Practices
Which are?
9) Review tables and their indexes being used in the SQL queries and avoid unnecessary Table scanning
You mean design your database and queries properly?  And table scanning is not always bad.
10) Avoid costly Full Table Scan on Big Transaction tables with Huge data volume,
It depends if that is necessary or not.
11) Use appropriate filtration condition on index columns of seeded Oracle tables directly mapped to program parameters
No, consider that too many indexes can have an impact on overall performance and can prevent the CBO from picking the best plan.  There's far more to creating indexes than just picking every column that people are likely to search on; you have to consider the cardinality and selectivity of data, as well as the volumes of data being searched and the most common search requirements.
12) Review Join condition on existing query explain plan
Well, if you don't have your join conditions right then your query won't work, so that's obvious.
13) Use Oracle hint to guide Oracle Cost based optimizer to choose best plan for your custom queries
No.  Oracle recommends you do not use hints for query optimization (it says so in the documentation).  Only certain hints such as APPEND etc. which are more related to certain operations such as inserting data etc. are acceptable in general.  Oracle recommends you use the query optimization tools to help optimize your queries rather than use hints.
14) Avoid applying SQL functions on index columns
Why?  If there's a need for a function based index, then it should be used.
15) Use appropriate hint to guide Oracle CBO to choose best plan to reduce response time
See 13.
In short, there are no silver bullets for dealing with performance.  Each situation is different and needs to be evaluated on its own merits.

Similar Messages

  • How to hide system tables when using the Oracle SQL Developer?

    Hi,
    I would like to know how can I show only the tables that I created under the Tables tree? I didnt find a way to create a separate database using the Oracle Sql Developer. I see all the tables together, and would like to differentiate between different databases.
    Can anyone explain to me how to do these things?
    Thanks,

    Hi,
    I would like to know how can I show only the tables that I created under the Tables tree? Your posting is not clear,again tell something more on tables tree,what u want to achieve with it.
    How to hide system tables when using the Oracle SQL Developer? if u connected with sys, system or user with dba role then u have a privilege to see these tables,so revoke the privilege/role from ur user to view this tables if ur connected other then sys,system,
    I didnt find a way to create a separate database using the Oracle Sql Developer. DBCA is a tool for creating the new database.
    Kuljeet

  • How to resolve ORA-00001 Error in SQL Insert?

    Hi all, I need your appreciated help.
    I make a plsql procedure that is inserting a row according cursor value, I'm having oracle error ORA-00001: unique constraint (constraint_name) violated.
    You may see this message if a duplicate entry exists at a different level: in RDBMS MySQL I have the syntax IGNORE to resolve this duplication error... and in Oracle ?
    Thanks for your time and hints.
    Miguelito

    user6317803 wrote:
    How to resolve ORA-00001 Error in SQL Insert?ORA-00001 means table has unique/primary key/index and you are trying to insert a row with key value that already exists in the table. I'll assume table COUNTRIES has primary key on COUNTRY_ID. Then change SQL to:
    SQL = "INSERT INTO COUNTRIES(COUNTRY_ID,COUNTRY_NAME,REGION_ID) SELECT 'BZ','BLZ',3 FROM DUAL WHERE NOT EXISTS(SELECT 1 FROM COUNTRIES WHERE COUNTRY_ID = 'BZ')"There is a good chance table COUNTRIES also has unique key/index on COUNTRY_NAME. If so use:
    SQL = "INSERT INTO COUNTRIES(COUNTRY_ID,COUNTRY_NAME,REGION_ID) SELECT 'BZ','BLZ',3 FROM DUAL WHERE NOT EXISTS(SELECT 1 FROM COUNTRIES WHERE COUNTRY_ID = 'BZ' OR COUNTRY_NAME = 'BLZ')"SY.

  • How to print a something in oracle sql developer

    Hello all
    Do you know How to print a something in oracle sql developer? i mean for example in the query we write something, (offcourse i dont mean comments)
    thank u in advance.
    best

    1003209 wrote:
    Hello all
    Do you know How to print a something in oracle sql developer? i mean for example in the query we write something, (offcourse i dont mean comments)
    thank u in advance.
    bestDBMS_OUTPUT()

  • How to import *.dmp file Through Oracle SQL Developer (3.2.20.09)

    hi
    how to import *.dmp file Through Oracle SQL Developer (3.2.20.09) ?
    how to do it ?
    thanks

    You do not.
    .dmp files are created from our Export and Data Pump database utilities and are proprietary files. You use the corresponding Import (or Data Pump) utility to import the data.

  • How to store image in the oracle database 10.2. using File Maker 10.

    Hi.,
    I want to store image, media file in the oracle database using File Maker as a front end.
    I connect Oracle using odbc from file maker. There are table and in that table there a column "pict" of blob type. but this column is not showing in the file maker.
    2. Here I can not change the data type of any column.
    Now how to store images in the oracle table using odbc or any other tool.
    Regards,
    Shyam

    I wrote an example for my students, you can find it here. It's using PHP as the front end but all you need to do is know how and leverage the stored procedures. All code is downloadable in zip files from the blog.
    http://blog.mclaughlinsoftware.com/php-programming/oracle-lob-processing/

  • Who stole the Oracle SQL Developer RPM for Linux Download Page!

    Guys,
    Who stole the Oracle SQL Developer RPM for Linux download page, everytime i try download the rpm all i get is the page can not be found Error 404!!!
    Not happy :-(

    Gents,
    Maybe yesterday's OTN download service problems are continuing today? Check this Community Feedback Forum announcement: [ Attention: Download Systems Issues|http://forums.oracle.com/forums/ann.jspa?annID=897|Doh!]
    Regards,
    John P.
    [http://only4left.jpiwowar.com|http://only4left.jpiwowar.com|Shameless plug for my low-volume blog]

  • How to resolve errors - ORA-01033: ORACLE, or closed, or initialized ,ORA-02063: Previous line from D1558A_IFRSQRY

    Hi Expert,
        Please tell me how to resolve errors - ORA-01033: ORACLE, or closed, or initialized ,ORA-02063: Previous line from D1558A_IFRSQRY
    Thanks and Regards

    Google is obviously broken for you: so I've posted what you need to put into your browser.
    https://www.google.co.uk/search?q=ORA-01033

  • When i try to download most of the creative cloud apps, it comes up with an error -2147024546. What does this mean?

    when i try to download most of the creative cloud apps, it comes up with an error -2147024546. What does this mean?

    Nfunchio13 that is fairly unique error.  Unexpected errors like this are typically the result of the firewall settings or security software interfering with the Adobe Creative applications from being downloaded.
    Nfunchio13 what type of networking environment is your computer utilizing?  You can find guidance on how to resolve download errors at Error downloading Creative Cloud applications - http://helpx.adobe.com/creative-cloud/kb/error-downloading-cc-apps.html.

  • Oracle.sql.ARRAY incompatible with weblogic.jdbc.vendor.oracle.OracleArray

    Hi,
    I am facing following issue in my one environment. but in other environment same class path is working fine. I have compared all jar and classpath for both weblogic server.
    I am using weblogic 11g.
    27 Mar 2013 15:21:09,507 ERROR XXXServlet:293 - oracle.sql.ARRAY incompatible with weblogic.jdbc.vendor.oracle.OracleArray
    java.lang.ClassCastException: oracle.sql.ARRAY incompatible with weblogic.jdbc.vendor.oracle.OracleArray
    at com.emc.nems.wsd.ui.beans.reports.mpapi.FacilityBeanType.nullSafeGet(FacilityBeanType.java:126)
    at org.hibernate.type.CustomType.nullSafeGet(CustomType.java:128)
    at org.hibernate.type.AbstractType.hydrate(AbstractType.java:105)
    at org.hibernate.persister.entity.AbstractEntityPersister.hydrate(AbstractEntityPersister.java:2114)
    at org.hibernate.loader.Loader.loadFromResultSet(Loader.java:1404)
    at org.hibernate.loader.Loader.instanceNotYetLoaded(Loader.java:1332)
    at org.hibernate.loader.Loader.getRow(Loader.java:1230)
    at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:603)
    at org.hibernate.loader.Loader.doQuery(Loader.java:724)
    at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:259)
    at org.hibernate.loader.Loader.doList(Loader.java:2232)
    at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2129)
    at org.hibernate.loader.Loader.list(Loader.java:2124)
    at org.hibernate.loader.custom.CustomLoader.list(CustomLoader.java:312)
    at org.hibernate.impl.SessionImpl.listCustomQuery(SessionImpl.java:1723)
    at org.hibernate.impl.AbstractSessionImpl.list(AbstractSessionImpl.java:165)
    at org.hibernate.impl.SQLQueryImpl.list(SQLQueryImpl.java:175)
    at com.emc.nems.oms.dao.hibernate.util.OMSHibBaseDAO.executeNamedQueryWithoutTransaction(Unknown Source)
    at com.emc.nems.wsd.dao.hibernate.reports.mpapi.MpapiReportHibDAO.findMCR020(Unknown Source)
    at com.emc.nems.wsd.ui.handler.reports.ReportsHandler.getMPAPIData(Unknown Source)
    at com.emc.nems.wsd.ui.servlets.reports.mpapi.MpapiServlet.executeReport(XXXServlet.java:1009)
    at com.emc.nems.wsd.ui.servlets.reports.mpapi.MpapiServlet.generateAuditFile(XXXServlet.java:318)
    at com.emc.nems.wsd.ui.servlets.reports.mpapi.MpapiServlet.execute(XXXServlet.java:273)
    at com.emc.nems.wsd.ui.servlets.reports.mpapi.MpapiServlet.doGet(XXXServlet.java:207)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
    at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
    at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:183)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3731)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3695)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
    at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2285)
    at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2184)
    at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1459)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)
    Regards,
    Abhishek

    Creating my Oracle connection works fine ... code as follows:
    <i>Context ctxt = getInitialContext();
    DataSource dataSource = (DataSource) ctxt.lookup(poolName);
    Connection conn = dataSource.getConnection();
    OracleConnection oracleConn = (OracleConnection)((WLConnection)conn).getVendorConnection();</i>
    I also have reviewed documentation:
    http://e-docs.bea.com/wls/docs81/jdbc/thirdparty.html. In section 'Using OracleStruct Extension Methods' it highlights that
    <i>java.sql.Struct struct =(weblogic.jdbc.vendor.oracle.OracleStruct)(rs.getObject(2));</i>
    None of the documentation actually mentions <b>oracle.sql.STRUCT</b>. For Weblogic to truely provide support for Oracle it needs an easy way of converting to this data type. At present I cannot interact with Oracle APIs until I can create an oracle.sql.STRUCT.

  • How to transfer movie from the apps in iphone to my laptop with window 7 os

    how to transfer movie from the apps in iphone to my laptop with window 7 os ?? Pls helpppp =)

    Movie from what app? If this is a movie that you took, with the video camera of the phone, then see this. iOS: Import personal photos and videos from iOS devices to your computer

  • TS1702 I'm not able to update Smurf's Village. Tried most of the things proposed on the net including restarting the iPad and trying syncing with the computer. Had a similar issue with another application. Had to delete and reinstall it, with all history

    I'm not able to update Smurf's Village. Tried most of the things proposed on the net including restarting the iPad and trying syncing with the computer. Had a similar issue with another application. Had to delete and reinstall it, with all history lost.
    Tried following up with the developer's instruction. Didn't help. Developer suggested contacting Apple if their instruction didn't work. Tried the various methods recommended on the Apple site. Same result.

    Telling is that you tried most of the things on the net doesn't tell us exactly what you did try, so we are all still left to guess .....
    Sign out of your account, restart the iPad and then sign in again.
    Settings>Store>Apple ID. Tap your ID and sign out. Restart the iPad by holding down on the sleep button until the red slider appears and then slide to shut off. To power up hold the sleep button until the Apple logo appears and let go of the button.
    Go back to Settings>Store>Sign in and then try to update again
    If that doesnt work - go to Settings>General>Date and Time - set the date ahead by a few months. Try to update again. If you get an error message of any kind - go back and change the date and time to automatic again. Then try again.
    If that doesn't work, restart your router and reboot the iPad.
    Reboot the iPad by holding down on the sleep and home buttons at the same time for about 10-15 seconds until the Apple Logo appears - ignore the red slider - let go of the buttons.

  • This morning the Iphone prompted me to update software. After that it said my phone was in recovery mode and I had the restore my phone. Now most of the apps are muted and don't respond, help!

    This morning the Iphone prompted me to update software. After that it said my phone was in recovery mode and I had the restore my phone. Now most of the apps are muted and don't respond, help!

    First, in iTunes, launch Preferences and go to the Devices tab. Check the date and time of the last backup. If it is recent you can restore it. However, if you mean you have the photos back in your Camera Roll then the backup was already restored. To get your music and apps back it should just be necessary to click "Sync".

  • A project which specifies SQL Server 2012 as the target platform may experience compatibility issues with Microsoft Azure SQL Database.

    Hello
    When I try to publis my asp.net application in azure, i have the next error:
    >C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\Web\Microsoft.Web.Publishing.targets(4253,5): Warning : A project which specifies SQL Server 2012 as the target platform may experience compatibility issues with Microsoft Azure SQL Database.
    >C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\Web\Microsoft.Web.Publishing.targets(4253,5): Warning : The project and target databases have different collation settings. Deployment errors might occur.

    Hello
    When I try to publis my asp.net application in azure, i have the next error:
    >C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\Web\Microsoft.Web.Publishing.targets(4253,5): Warning : A project which specifies SQL Server 2012 as the target platform may experience compatibility issues with Microsoft Azure SQL Database.
    >C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\Web\Microsoft.Web.Publishing.targets(4253,5): Warning : The project and target databases have different collation settings. Deployment errors might occur.
    Hello,
    This forum is to discuss vb.net issues, your issue is mainly regarding Azure SQL Database, I found that you have posted another thread in that forum
    https://social.msdn.microsoft.com/Forums/azure/en-US/f435921a-14d1-4441-8b2b-32ba3d937aea/a-project-which-specifies-sql-server-2012-as-the-target-platform-may-experience-compatibility-issues?forum=ssdsgetstarted#f435921a-14d1-4441-8b2b-32ba3d937aea.
    I would recommend you focus on that thread to get help.
    Regards,
    Carl
    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click
    HERE to participate the survey.

  • Performance issue with view selection after migration from oracle to MaxDb

    Hello,
    After the migration from oracle to MaxDb we have serious performance issues with a lot of our tableview selections.
    Does anybody know about this problem and how to solve it ??
    Best regards !!!
    Gert-Jan

    Hello Gert-Jan,
    most probably you need additional indexes to get better performance.
    Using the command monitor you can identify the long running SQL statements and check the optimizer access strategy. Then you can decide which indexes might help.
    If this is about an SAP system, you can find additional information about performance analysis in SAP notes 725489 and 819641.
    SAP Hosting provides the so-called service 'MaxDB Migration Support' to help you in such cases. The service description can be found here:
    http://www.saphosting.de/mediacenter/pdfs/solutionbriefs/MaxDB_de.pdf
    http://www.saphosting.com/mediacenter/pdfs/solutionbriefs/maxDB-migration-support_en.pdf.
    Best regards,
    Melanie Handreck

Maybe you are looking for

  • Sender File Adapter picking the same file twice

    We are facing a weird issue with File Sender Adapter We are using PI File Adapter ( NFS ) to read files for a NFS folder and processing those in PI.Normally it works fine. But for a scenario we are noticing it sometimes process the same file twice be

  • RAC resources problem

    hi all, before installing ASM instance i had the resources as follows:- C:\oracle\102\crs\BIN>crs_stat -t -v Name Type R/RA F/FT Target State Host ora....c11.gsd application 0/5 0/0 ONLINE ONLINE vmrac11 ora....c11.ons application 0/3 0/0 ONLINE ONLI

  • Drag Drop a file on desktop to RDP

    I don't understand. This is something you could have figured out yourself in two seconds of trying it out.

  • Does BLOB Support in Reports really work? As referenced in the doco..

    I am referring to chapter 15 of the application builder user guide. http://download.oracle.com/docs/cd/E17556_01/doc/user.40/e15517/advnc.htm#BCGBCHBD Oracle Application Express includes BLOB support for both classic and interactive reports. If you u

  • My CS3 spry vertical menu does not maintain properties on web.

    My first web site is available at www.edgarcemetery.com. I used Dreamweaver, and it is hosted through Yahoo Small Business, I am having trouble getting the properties of the Spry Menu Bar to display appropriately in Internet Explorer 7, on Windows XP