Hard Vs soft analysis analysis

Hi all

Suppose I execute a SQL query, once it is executed it will get in the Shared pool.

Second time when I run the same query, that query will be in the shared pool. This second query execution time will not need of optimization and generate explain to new plan. It will use explain the plan used in the first execution of the query.

Now, suppose that the plan of the explain command used is not plan optimal and before you run the second query times I created some indexes on the tables used in the query and the indexes can improve the performance of queries.

Is it good or bad?

Optimizer generates plan still even in the analysis of soft or not?

OR

Soft and hard parsing analysis differed only in terms of "Load the code in the Shared Pool", rest steps are the same for Parse Soft and Hard Parse Optimzer run and find plan even in the analysis of Soft?

Two posts on hard Parse Soft Parse confusion:

http://www.DBA-Oracle.com/t_hard_vs_soft_parse_parsing.htm

https://asktom.Oracle.com/pls/asktom/f?p=100:11:0:P11_QUESTION_ID:2588723819082

There are significant errors in this text, for example:

QUOTE

  1. Loading in shared pool - SQL source code is loaded into RAM for parsing. (the analysis stage 'hard')
  2. ,,,
  3. ...
  4. Transformation of the query - Oracle will transform complex SQL in simpler forms, equivalent and replace the aggregations by materialized views, as the case may be. In earlier versions of Oracle the query_rewrite = true parameter should be defined for the rewriting of the materialized view.
  5. Optimization - Oracle, and then creates an execution plan, based on the statistics of your schema (or perhaps with 10 g dynamic sampling statistics).  Oracle has build costs decision tree during this period, by choosing the track with the cost lowest perceived.
  6. ...

What is the difference between a hard and a soft analysis in Oracle?  Just the first step, step 1 as shown in red above.  In other words, a soft analysis does not require a reload shared pool (and associated allocation of RAM memory).

ENDQUOTE

This is wrong - or, at best, very wrong.

The CRITICISM of 'hard' analysis, is that an implementation plan should be created for the instruction; that the statement must be optimized.  (In a modern version of Oracle, passing bly, query processing is not a discrete step that precedes the optimization). If the session can take the advantage of doing a 'mild' analysis, it means it didn't optimize instruction.

Concerning

Jonathan Lewis

Tags: Database

Similar Questions

  • Can we all define the difference of hard and soft analysis the analysis

    Can we all define the difference of hard and soft analysis the analysis coming in SQL tuning advisor and ADDM recommendations.

    To improve the same needs to be done. Please advise on the same.

    Thank you

    What is analysis?

    -> any query SQL under validation goes to the shared pool

    Validation: check the syntax, semantic check, etc...

    Hard analysis SQL going for below in the shared pool

    Syntax

    Semantics

    Transformation of the query

    Optimization

    Create an executable

    E/S

    soft analysis (reduced time spent by jumping the redundant task)

    Transformation of the query

    Optimization

    Create an executable

    E/S

    Thank you.

  • Hard or soft parse analysis?

    Hi Experts,

    If we execute a SELECT statement in SQL * MORE by passing the value using operator, if hard analysis will take place or soft the analysis?

    SQL> select last_name from employees where department_id = &dept_no;
    Enter value for dept_no: 100
    old   1: select last_name from employees where department_id = &dept_no
    new   1: select last_name from employees where department_id = 100
    
    SQL> select last_name from employees where department_id = &dept_no;
    Enter value for dept_no: 110
    old   1: select last_name from employees where department_id = &dept_no
    new   1: select last_name from employees where department_id = 110
    
    

    When I execute V$ SQL, for each different value I see different SQL_ID. Please explain about it.


    Thaks a lot in advance for your help.

    See you soon,.

    Suri

    The analysis is the action of database server. SQL * more is tool on the client side and the substitution variables are applied on the client side. Therefore, whenever you provide another & dept_no, database will receive a new statement (one that is not in the common pool) and so, in general, it will be a difficult analysis. Why in general? This will depend on the database parameter cursor_sharing arrangement. If is set to force or similar, Oracle can substtitute

    Select last_name employees where department_id = some_literal

    with

    Select last_name employees where department_id =: bind_variable

    and then it will be soft analysis (except the first time instruction is issued the first time after it ages out shared pool).

    SY.

  • How to set up the hard and soft limit to the/etc/Project Help for Clusterware

    Please advise on how to set up/etc/Project to set the appropriate Hard and Soft limit on files for Oracle Clusterware 11 GR 2 what Solaris 10 installation.

    What is the command line to set limits of Hard/Soft to/etc/Project file for the Oracle software owner? Thank you

    Hello

    Please advise on how to set up/etc/Project to set the appropriate Hard and Soft limit on files for Oracle Clusterware 11 GR 2 what Solaris 10 installation.

    What is the command line to set limits of Hard/Soft to/etc/Project file for the Oracle software owner? Thank you

    Consult the kernel configuration settings and swap space link below

    http://www.oraclemasters.in/?p=974

    Thank you
    A H E E R X

  • Race weight between the hard and soft lines?

    IM an ellipse with a race drawing 1px. If I change the race to the hard line the result is horribly pixelated, but if I use the sweet line the restult is too broad (it seems thicker than the straight line of 1px). Is their way to achieve something in the meantime maing the soft line or thinner than the default 1px setting?

    Thank you

    It affects only the soft lines, making them a little harder or softer.

  • Ensure this soft analysis the use of Bind variables

    Hi Experts,

    I have a request when the query is prepared dynamically in Java code and if I take the query and run it from SQL Navigator, it takes a long time to prepare the statement and then execute it quickly. I think we can use dynamic SQL statements and bind variable to improve performance here. However, I tried to do a PDS to check my understanding. I created 2 procedures

    1. mode of operation
    CREATE OR REPLACE PROCEDURE sp_static
    (id IN NUMBER, 
     name in VARCHAR2)
    IS 
    TYPE r_curs_type is REF CURSOR;
    C1 r_curs_type;
    BEGIN
    
    OPEN C1
    FOR
    SELECT * FROM TABLE WHERE columname = id
    
    CLOSE C1;
    
    END;
    2. mode of operation
    CREATE PROCEDURE sp_dyanmic
    (id IN NUMBER, 
     name in VARCHAR2)
    IS 
    TYPE r_curs_type is REF CURSOR;
    C1 r_curs_type;
    BEGIN
    
    OPEN C1 FOR 'SELECT * FROM TABLE WHERE columnanme = :U1' 
    USING ID;
    
    CLOSE C1;
    END;
    To my amazement, there is no difference in the duration of execution of these procedures when I ran the with multiple entries.

    Please note-
    1. I have not access to trace files :-(
    2. I want to just make sure there will be improved performance before starting the real work, given that some efforts provided by moving the logic of all its activities inside and the use of bind variables.

    If you can suggest a strategy to ensure performance gains, it will be extremely useful...

    Thanks in advance!
    Concerning

    Hello

    (1) it's true, procedure 1 also uses a variable binding
    (2) you seem to be confused about the very basic concepts here

    Dynamic SQL is something like this:

    create or replace FUNCTION f (l_table_name VARCHAR2) RETURN NUMBER
    IS
      l_result NUMBER;
    BEGIN
      EXECUTE IMMEDIATE 'SELECT COUNT(*) FROM ' || l_table_name  INTO l_result;
      return l_result;
    END;
    

    In this example, since you do not know the name of the table to the execution table, everything you can
    is dynamic SQL. As you can see, neither of your two procedures is like that.

    Dynamic SQL is used when you do not know what columns you want to select, or who
    etc. to the execution table. You can also use dynamic SQL statements to force analysis. You can not use
    to avoid parsing, binding or not binding.

    Best regards
    Nikolai

  • Sony F55 Hard case / Soft

    I just picked up this morning my case F55 of guys in the box and thought I'd share. It's wonderful - made really intelligently. The cut out for the camera fits the plate so the R5. Out of the shelf to the right and there is plenty of space for cables, handshaking etc. I highly recommend them if you need to box your camera safely.

    Can anyone recommend a more gentle/soft case for the 55 size edge? Ideally one that I can fit a laptop in also.

    Jamie


  • Parse Hard & Soft Parse for a given SQL?

    Hi all

    I need to know which of these is a hard and soft analysis for a given Sql. What I think is the 'charges' and 'invalidation' indicates if a cursor is invalidated and gets reloaded, which allows us to check if a call analysis becomes hard analysis.

    Confusion here is should "Disk reads" value nonzero means hard analysis regardless of the 'load' and 'invalidation' and 'Disc bed' zero value means soft parse?

    SELECT a.SQL_ID, a.INSTANCE_NUMBER, a.SNAP_ID,
      TO_CHAR(b.END_INTERVAL_TIME, 'DD-MON-YYYY HH24:MI') snap_time,
      a.PLAN_HASH_VALUE,
            ROUND(a.ELAPSED_TIME_DELTA/1000000) TOTAL_EXECUTION_TIME_SEC,
            ROUND(a.CPU_TIME_DELTA/1000000)    cpu_seconds,
            a.ROWS_PROCESSED_DELTA    rows_processed,
            a.BUFFER_GETS_DELTA      buffer_gets,
            a.DISK_READS_DELTA      disk_reads,
            a.EXECUTIONS_DELTA      executions,
            a.PARSE_CALLS_DELTA    parses,
      a.VERSION_COUNT             version_count,
            a.LOADS_TOTAL               loads_total,
            a.INVALIDATIONS_TOTAL       invalidations_total
    FROM DBA_HIST_SQLSTAT a, DBA_HIST_SNAPSHOT b
    WHERE a.SNAP_ID = b.SNAP_ID and a.INSTANCE_NUMBER=b.INSTANCE_NUMBER
    AND a.INSTANCE_NUMBER=1 AND a.SQL_ID='bsraj0u9r9d3w'
    ORDER BY a.SNAP_ID desc;
    
                                                                 TOTAL
                  Instance      Snap Snap                    EXECUTION     CPU                    Buffer     Disk                   version loads invalidations
    Sql Id          Number        Id Time                    TIME(Sec) Seconds     Rows             Gets    Reads Executions Parses   count total         total
    ------------- -------- --------- -------------------- ------------ ------- -------- ---------------- -------- ---------- ------ ------- ----- -------------
    bsraj0u9r9d3w        1      9368 12-FEB-2016 12:00              14      13      200       14,079,211      780          2      1       1     6             5 --- hard Parse
    bsraj0u9r9d3w        1      9348 11-FEB-2016 16:00             110      91    1,500      104,806,435        0         15      4       1     5             4 --- ??
    bsraj0u9r9d3w        1      9347 11-FEB-2016 15:00              30      29      500       34,922,061        0          5      2       1     5             4 --- ??
    bsraj0u9r9d3w        1      9346 11-FEB-2016 14:00              14      13      200       14,009,248        0          2      1       1     5             4 --- ??
    bsraj0u9r9d3w        1      9341 11-FEB-2016 09:00              14      13      200       14,009,957      651          2      2       1     5             4 --- hard Parse
    bsraj0u9r9d3w        1      9297 09-FEB-2016 13:00              20      20      500       23,380,631        0          5      4       1     4             3 --- ??
    bsraj0u9r9d3w        1      9294 09-FEB-2016 10:00              65      53    1,300       58,569,220        0         13     13       1     3             2 --- ??
    bsraj0u9r9d3w        1      9293 09-FEB-2016 09:00              18      17      300       18,635,057        0          3      2       1     3             2 --- ??
    bsraj0u9r9d3w        1      9292 09-FEB-2016 08:00              70      67    1,700       77,145,560      787         17     17       1     3             2 --- hard Parse
    bsraj0u9r9d3w        1      9272 08-FEB-2016 12:00              18      18      400       22,164,178        0          4      4       1     2             1 --- ??
    bsraj0u9r9d3w        1      9270 08-FEB-2016 10:00             106     101    2,500      123,154,635        0         26     24       1     2             1 --- ??
    bsraj0u9r9d3w        1      9269 08-FEB-2016 09:00              11      10      300       11,401,899      657          3      3       1     2             1 --- hard Parse
    bsraj0u9r9d3w        1      9253 07-FEB-2016 17:00             104      98    2,300      115,320,927      788         23     23       1     1             0 --- hard Parse
    

    Thanks in advance

    Reads disk do not mean that the query will invalidation thus analyze hard. Reading disc mean simply that the IO that happens from disk and it is perhaps due to the result not being not not available in memory.

    I'm not sure why you use this type of analysis to check if requests are going for hard analysis or not? Why not pick up a particular query run and use TKPROF(better SQLTXPLAN) or AWR based SQRPT.sql to check the same? What is the exact issuethat, you're trying to solve?

    Aman...

  • analysis Vs hard soft

    Hello Experts / gurus


    I have a few questions for query execution details.


    Question 1: How do we know if the request goes to parse soft or hard analysis?

    Question 2: Where can we check exactly to find it?

    Ques3: If the query will Parse hard, how can I show proof?

    Ques4: If the query will soft Parse, how can I show proof?


    -GooGle don't really know an answer to this question!

    Thanks in advance!

    > If you include the hash value, I can understand very well, but we missed...

    There is nothing prevents you to accomplish the same experience.  It wouldn't matter anyway, the hash value would have been the same between the two statements.

    > what I thought (if (SQL_ID, HASH_VALUE, SQL_TEXT) these values are the same for both declarations = it is soft analysis)

    Absolutely not.

    > If (SQL_ID, HASH_VALUE) is different, it's hard analysis.

    Well, any.  New topic that appears in v$ sql got there because of a difficult analysis.

    > but I do NOT understand why you went to the ' v$ sql_shared_cursor '

    > Question 1 :-is this good place to find, if the analysis is soft_parse or not?

    Because this view will show you why two identical sql statements (with same sql_id or hash_value) could NOT be reused.  This is the scenario you sketched out.

    > Question 2 using sql_id, hash_value   we can determine if it is hard analysis or not?

    If an sql statement is reused (uses good bind variables, etc.), you can see his performances increases.

    declare

    L_Name varchar2 (30);

    number of l_employee_id;

    Start

    l_employee_id: = 101;

    Select first_name from l_name from employees where employee_id = l_employee_id;

    l_employee_id: = 102;

    Select first_name from l_name from employees where employee_id = l_employee_id;

    l_employee_id: = 103;

    Select first_name from l_name from employees where employee_id = l_employee_id;

    end;

    /

    Select sql_id, executions, sql_text from v$ sql where lower (sql_text) like '% employees;

    SQL_ID EXECUTIONS SQL_TEXT

    ------------- -------------------- ----------------------------------------------------------

    3. SELECT FIRST_NAME from EMPLOYEES WHERE EMPLOYEE_ID = bhd9y189arp8q: B1

  • Reading Partition directly...

    Hi all

    We have a table with ten partitions (partitions of list but only one value in the list for each partition). Each partition contains millions of records.

    Whenever I have query this table that I know not which partition to get the record. In this case, which of these will perform better.

    1. Select... t1where...
    2. Select * from t1 partition (p1)

    Query will always return a record for me. Always the value I'm going for the filter is the only item in my list partition definition. Even a milli second account.

    Kindly advice me...

    Thank you
    Jaggyam

    jaggyam wrote:

    True, but the second query should record the time taken by oracle to decide the partition. Is it not?

    Incorrect answer. You burn additional CPU cycles on hard analysis with each change in the name of the partition - while the use of partition pruning will simply re-use the same cursor. Even faster when the simple client maintains this handle to open cursor, binds a new value to the variable binding and then runs this handle - not tender the analysis at all.

    I would like to save time even in milliseconds.

    Then get faster drives. A faster I/O fabric layer. Improved database design. A higher speed network pipes, with less latency between the client and the server. Use if possible larger size MTU. Optimize the routing tables. Make best use of the network switching layer.

    But do the kind of hack that you have in mind? It's just pure stupidity IMO. It requires dynamic SQL in the client side. It requires several sliders (one per partition) in the shared pool. Multiple cursors mean more time CPU on hard and soft analysis (increase the size of the pool and soft analysis is also done performance wise). And you open a potential security hole with dynamic SQL code. And hitting the server resources (CPU and memory) to deal with it.

    Not a good idea to any prospect of IMO.

  • Why the latches is if the mutex are better?

    Hi all

    I'm trying to understand the mutex and latches, also searched the forum and read other messages.

    My question is, almost in each paper said: mutex are faster, less false assertion, less size etc... also are locking latches a block of memory, but each object has its own mutex.

    two of them are nice locking mechanism, which is OK but if the mutex are better why latches are exist? What is advantages of locks?

    Mustafa KALAYCI says:
    Aman,

    I'm really starting to feel like a fool. each different answer changing my understanding of locks and mutexes.

    Isn't fun?

    When started this topic, I thought that the clasp and mutexes are both a locking mechanism that during a process of reading in or by writing to something a piece of memory, process locked this field and make it's own, it's lock is a lock, or mutex (it is also very close to description of University oracle performance tuning training manuals).

    In this book, its very clearly explained that latches may present a statement false . For example, when you see a Cache library top 5 events, you should interpret, this is a good thing or a bad thing? Without access to it, you can't search for the library Cache hash strings and cannot come to know that the slider required on your part is there or not? That means, until the moment that you do not have the hand on Library Cache, the decision to go for a hard or soft analysis is not possible and that is waiting for the library Cache lock, is of no real use at all. This is a false assertion and Mutex can help minimize this. Good read this page completely and with a little more attention and you need to understand.

    then I started to know the difference between the lock and the mutex. at first, I thought that HLDAA and mutex concepts belong to the oracle database, but I realized I was wrong. It is a technique of joint programming for shared resources.

    This isn't a concept of programming but the mechanism for the protection of the integrity of the structures of memory.

    I'm not sure that the lock concept is nowhere else or not in addition to oracle. But the notion of Mutex is already there in the operating system concepts.
    http://en.Wikipedia.org/wiki/Mutual_exclusion

    documents almost I read told me that mutex are just better and I'm just curious, if mutexes are better, why are locks used.

    I mentioned several times the answer to this, the concept of lock is a proven concept and is around for many years in oracle. Simply because the Mutex is better, this does not mean that Oracle, the next day, everything would change and will begin to deploy the mutex. You realize that Oracle code isn't just 10-15 lines that its really possible to change in a short way.

    When I run a query, first oracle will search this library if cached query cursor can not found create it there and then start interviewing research data. While the oracle process research to the cursor when it exists, it crashes a block of memory that it is currently reading in the library cache. After that, he will start looking to the data buffer cache. in seeking the data block, each block will be locked again while reading process and released when he finished reading.

    in which level a mutex and latch will be created and released. It might be easier if I get an example like that.

    for the moment, I think that mutexes and locks are algorithms to protect the wrong again... maybe shared structure.

    They are different ways to do the same thing, latches are something you need to wait, revolve around the CPU to get their hands on them. Mutex, are much faster, can be acquired more quickly and released more quickly as well.

    HTH
    Aman...

  • Ref Cursor on implicit and explicit cursors

    Hello

    In my company the drafting of PL/SQL procedure, everyone uses "Ref Cursor",
    But the article below, said implicit is the best, then Explicit and Ref Cursor...

    [http://www.oracle-base.com/forums/viewtopic.php?f=2 & t = 10720]

    I'm a bit confused by this, can someone help me understand this?

    Thank you

    SeshuGiri wrote:

    In my company the drafting of PL/SQL procedure, everyone uses "Ref Cursor",
    But the article below, said implicit is the best, then Explicit and Ref Cursor...

    [http://www.oracle-base.com/forums/viewtopic.php?f=2&t=10720]

    I'm a bit confused by this, can someone help me understand this?

    It has performance and it has performance...

    To explain. There is one type of cursor in Oracle - that is the cursor which is analyzed and compiled by the SQL engine and stored in the shared the database pool. The "+ client +" then receives a handle (called a SQL statement handle of many APIs) that can be used to make reference to this slider in the SQL engine.

    The performance of this slider is not determined by the customer. It is determined by the execution plan and how much enforcement of this slider cost ito of server resources.

    The customer can be Java, VB, .net - or a PL/SQL program. This client language (SQL client), has its own structures dealing with this from the SQL engine cursor handle.

    It can hide by the developer all together - so that they can't even see that there is a statement handle. That's what the implicit cursors in PL/SQL.

    It can allow the developer to manually define the structure of slider - this is what the explicit cursors, ref Cursor and DBMS_SQL cursors in PL/SQL.

    Each of these client cursor structures provides the programmer with a set of features to address different SQL cursor. Explicit cursor in PL/SQL constructs do not have the use of dynamic SQL statements. REF CURSOR and cursors DBMS_SQL do. REF CURSOR does not allow the programmer determine, at runtime, the structure of the projection of the cursor SQL. DBMS_SQL sliders do.

    Only ref Cursor can be created in PL/SQL and then handed over to another client (for example, Java/VB) for treatment. Etc.

    If each of the works of art/customer interfaces gives you a different feature for SQL cursors.

    Choose the implicit cursors for example does not the SQL cursor move faster. The SQL engine does not know and does not care, which customer construct you use to deal with the SQL cursor handle, he gave you. It does not matter. It does not affect his performance of cursor SQL.

    But on the client side, it can matter - if your code when dealing with that SQL cursor determines how fast your interaction with this SQL cursor is. How many context changes you make. How you use and reuse the SQL (for example hard vs soft analysis vs analysis reusing the same cursor handle). Etc.

    Are there any unique client cursor construction which is better? N °

    It's ignorant views. The customer's language provides a box tool, where each tool has a specific application. The competent developer will use the right tool for the job. The stupid developer will select a tool and use it as The Hammer to 'solve' all problems.

  • Analysis

    What is hard & soft analysis. How to avoid hard analysis of an application, means what parameter must use in the query to avoid. ?

    Here's your answer...
    http://asktom.Oracle.com/pls/asktom/f?p=100:11:P11_QUESTION_ID:2588723819082

  • flexible analysis questions

    Please help me if you know the answers:
    A. the AddToStatementCache command will reduce the soft parse?
    (B) is it true that you use a ref (as output parameter) cursor inside a package it will always lead to a soft analysis?
    C. how he gets the AddToStatementCache with the connection pool?
    TIA
    Amiel Davis

    Hello

    AddToStmtCache is necessary only if you try to manually control wich statements are cached rather than leaving control of the ODP it (via an LRU basis). For this, false for the instructions, don't want not added to the cache, and true to the statements you made.

    ODP uses the declaration of caching to keep cursors on the database open, which eliminates the need for analysis. If the connection you are using is not manage a specific statement in its cache, it would need to create a new statement handle for the statement, which will lead to a re - analysis.

    If you want to eliminate the new analysis in soft sight, you would set the size of cache big enough statement that it can contain every statement that you are running, which would likely impact of large memory capacity on the use of memory of your application, depending on the number of unique statements you run and how the connection pool is great.

    However, ODP also maintains the cache on a per-connection basis. Say so you have 6 connections in a pool and then the pool grows, new connections are not cached, so even "previously cached" statements should still be analyzed again. Or, if there is a statement that is cached on other connections, but has not been performed on this particular connection yet, it will be parsed once again.

    Regarding your question "pooling and caching of instruction, the docs cover this (scroll to the bottom): http://download.oracle.com/docs/html/B14164_01/featOraCommand.htm#CIHCAFIG

    With respect to the determination of an optimal value for the size of the cache, I would probably recommend just using the 'auto tuning' function available from 11.1.0.7.20: http://www.oracle.com/technetwork/topics/dotnet/whatsnew/odp-2-133261.pdf

    You can never completely eliminate the soft parsed however, even if you are not using ref Cursor.

    It will be useful, corrections and comments welcome.

    Greg

  • repeatly the SQL Analysis

    Hi, I think that my question is not good for the last message. If I raise this issue once again. If there is an SQL statement, repeatly analysis, what should I do? use some Advisory utilities? what I think, is that the pool has a structure called library cache that stores parsed SQL. If there is a SQL Analysis repeatly, he can because the library cache is may not be big enough. right? or could someone help me for more detailed information.
    Thank you very much

    A few things to think about when it comes to analysis.

    First, it is impossible to change the frequency of analysis (analysis call rate) without changing the application. An analysis that happens when the application performs a db call PARSE(). Period.

    So, if you have an application that submits SQLs such as:

    select id from some_tab where id2=1;
    select id from some_tab where id2=2;
    select id from some_tab where id2=3;
    select id from some_tab where id2=4;
    select id from some_tab where id2=5;
    

    Each SQL statement is unique, and therefore needs to be analysed. If you can modify your application to use bind variables, you can do something like:

    select id from some_tab where id1 = :b1;
    

    Then, even if it is parsed every time, Oracle will see it is cached in the cache of the library, and a large part of the work of the analysis is eliminated. Also, if you look at establishing a session (by the parameter session_cached_cursors) cursor cache, you can further reduce the impact of a soft analysis.

    But all this doesn't actually change the number of analysis going on. The only way to do that is to change the code.

    If you have a code that looks like:

    for x = 1 to 50
    do
      parse()
      bind()
      execute()
    done
    

    You could reduce the calls of the practice analysis:

    parse()
    for x = 1 to 50
    do
    bind()
    execute()
    done
    

    If it is available for you, it's a much better solution than relying on the soft analysis mechanism for Oracle.

    Finally, in the worst case, if you have an application that uses not connections, and you do not have access to modify the application, you will rely on the sharing of the cursor. Cursor sharing automatically takes out of your not shareable SQL literals and allows a set of SQL. This should really be considered as a last resort and only when you have not any access or any occasion of difficulty of enforcement.

    I'm not in a lot of detail on the use of cursor sharing or in the session cursor cache, especially cause this message is already too long.

    Hope that helps,

    -Mark

Maybe you are looking for

  • Firefox opens to the blank page, no icons, buttons do not work?

    I updated Firefox to the latest version, but it was interrupted and I had to reboot my computer. Now Firefox does not at all. The menu bookmarks and all buttons add-on are missing and not doing anything when you click it. The browser opens a blank pa

  • How can I add a mailto content type Firefox 4 under Applications?

    I have Windows 7 Professional 64-bit and upgraded to Firefox 4 when it is out of beta. I can click on mailto links in IE and it loads Eudora 7.1.0.9 very well fill out the to and if the link has it, the message as well. Worked well in previous versio

  • LM3S8962: SPI clock problem

    Hello I'm working on a project using the star LM3S8962 evaluation kit and a 4-channel analog digital converter 24-bit Texas Instruments ADS1274EVM. I want to get the data sent by the ADC with the LM3S8962 using the SPI bus. I have all of the example

  • Recovery of factory G60 with broken screen

    I have a laptop with a broken screen G60. I used it with an external monitor. I would like to restore to "factory" condition When I run HP recovery, he goes to the built-in screen. Is it possible to get HP recovery to work on an external monitor.   T

  • Pavilion DV6 s/n CNF0272P4W: internal (601) CR2032 battery changed but still get the alarm

    Alarm began some time ago. Enter laptop makes at startup, ok. Internal battery changed but still gets the same alarm. Battery type CR2032. Ran that test battery had failed Id 6C757T-5417NN-XD003G-C0BX03 primary SCHOOL. Bought the dv6 2010.