Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>We just went through this, although we two-stepped it - went from 9 to 10 last year, then 10 to 11 this year. I'll try to recall from memory what we found:</p> <p>A. If you have queries with a GROUP BY you'll want to add a matching ORDER BY, as newer versions of Oracle do not (usually) drop in a SORT step during GROUP BY processing. In other words, if there's a query like</p> <pre><code>SELECT * FROM SOME_TABLE GROUP BY FIELD_1, FIELD_2 </code></pre> <p>you'll want to change this to</p> <pre><code>SELECT * FROM SOME_TABLE GROUP BY FIELD_1, FIELD_2 ORDER BY FIELD_1, FIELD_2 </code></pre> <p>B. I suggest you keep a copy of your 9.x database around for a while so you can compare the plan generated under 9 to the one generated under 11. The optimizer in 11.x can evaluate some queries very differently than 9.x or 10.x would. We found that one of our larger queries that we'd hinted up appropriately for 10.x ran very slowly under 11.x. After an afternoon of developers and DBA's tearing their hair out we found that the ORDERED hint restored the original plan and performance.</p> <p>C. If you have any code which is explicitly setting up to use the rule-based optimizer by doing something like</p> <pre><code>alter session set optimizer_goal = rule </code></pre> <p>you'll get an error telling you that the rule-based optimizer is obsolete.</p> <p>D. PL/SQL code which creates a collection but which doesn't initialize it may work under 9.x but will fail under 11.x. An example would be</p> <pre><code>TYPE tMyArray IS VARRAY(100) OF VARCHAR2(100); arrMyArray tMyArray; -- &lt;-- uninitialized array </code></pre> <p>To fix this you need to change the variable declaration to</p> <pre><code>arrMyArray tMyArray := tMyArray(''); </code></pre> <p>For purposes of reference, the 9 -> 10 upgrade was the most work. 10 -> 11 was pretty much a no-brainer (except for a few queries that had problems - see B). </p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload