Skip to Main Content
Oracle PL/SQL for DBAs
book

Oracle PL/SQL for DBAs

by Arup Nanda, Steven Feuerstein
October 2005
Intermediate to advanced content levelIntermediate to advanced
454 pages
14h 44m
English
O'Reilly Media, Inc.
Content preview from Oracle PL/SQL for DBAs

Text Matching Might Not Be Enough

Beyond matching the text of a cursor, there are several other factors influencing cursor reuse—for example, optimizer statistics and Globalization Support (previously National Language Support, or NLS) setting mismatches. In such cases, it’s not enough to simply match ASCII values.

Let’s look at the example of setting the optimizer mode in this example.

    SQL> ALTER SESSION SET optimizer_mode = FIRST_ROWS;

    Session altered.

    SQL> SELECT COUNT(*)
      2    FROM orders;

      COUNT(*)
    ----------
         10000

    SQL> ALTER SESSION SET optimizer_mode = ALL_ROWS;

    Session altered.

    SQL> SELECT COUNT(*)
      2    FROM orders;

      COUNT(*)
    ----------
         10000

Astute DBAs know that two cursors will be created in this case: even though the text matched, the optimizer mode used was different, so Oracle built a different execution plan for each cursor. Here’s what’s in the shared pool.

    SQL> SELECT sql_id,
      2         sql_text,
      3         parse_calls,
      4         executions
      5    FROM v$sql
      6   WHERE INSTR(UPPER(sql_text),'ORDERS')  > 0
      7     AND INSTR(UPPER(sql_text),'SQL_TEXT') = 0
      8     AND command_type = 3;

    SQL_ID        SQL_TEXT              PARSE_CALLS EXECUTIONS
    ------------- --------------------- ----------- ----------
    d8ksp6aaxa26d SELECT COUNT(*)   FRO           1          1
                  M orders

    d8ksp6aaxa26d SELECT COUNT(*)   FRO           1          1
                  M orders

Tip

Starting with Oracle Database 10g Release 1, the column SQL_ID is used to uniquely identify a cursor in views such as V$SQL and V$OPEN_CURSOR. Earlier releases use a combination of the HASH_VALUE and ADDRESS columns for this purpose.

Oracle obviously ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

Oracle PL/SQL Best Practices

Oracle PL/SQL Best Practices

Steven Feuerstein
Expert Oracle PL/SQL

Expert Oracle PL/SQL

Ron Hardman, Michael McLaughlin
Oracle PL/SQL For Dummies

Oracle PL/SQL For Dummies

Michael Rosenblum, Paul Dorsey

Publisher Resources

ISBN: 0596005873Supplemental ContentErrata Page