Known bugs in Oracle 11g

Please suggest a list/link of the known bugs present in OBIEE11g.

Check this or you may google it.
http://obieeelegant.blogspot.com/2012/10/bugs-fixed-in-111165-patch-set.html
https://forums.oracle.com/forums/ann.jspa?annID=939
Mark if helps
http://cool-bi.com
Edited by: Srini VEERAVALLI on May 16, 2013 8:48 AM

Similar Messages

  • Major bugs in oracle 11g 11.1.0.7??

    Hii All,
    We are planning to upgrade to 11g currently we are using
    Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bi
    PL/SQL Release 10.2.0.4.0 - Production
    CORE    10.2.0.4.0      Production
    TNS for Solaris: Version 10.2.0.4.0 - Production
    NLSRTL Version 10.2.0.4.0 - Production
               Now we are planning to upgrade to version 11.1.0.7,but heard that it contains many bugs.And our DBA suggest us version 11.2.0.1.0 where all the bugs in the earlier release of 11g got fixed. Is it true?
    These links show that there are some bugs in 11.1.0.7
    http://nilesh-joshi.blogspot.com/2010/06/oracle-111070-bug.html
    http://mikerault.blogspot.com/2009/03/more-fun-with-oracle11g-11107.html
    1)Can any one brief the bugs in the version 11.1.0.7 ???
    2)Let me know whether are all those bugs got fixed in the version 11.2.0.1.0??
    Is this bug oracle 11g needs group by - why? fixed in 11gR2???
    Regards
    Raghu.

    Bottom line - you'll be lucky if you never run into a bug in any release.
    I'd always be hesitant to go with any x.1 release including 11.2.0.1.
    Bear in mind that you're probably not upgrading today but in a few months time.
    11.2.0.2 is available on Linux
    Use Metalink to identify any bugs in any specific feature or release you're interested.
    Doc Id 738538.1 - 11.1.0.7 Patch Set - Availability and Known Issues
    Doc Id - 880707.1 - 11.2.0.1 Base Release - Availability and Known Issues
    Doc ID 1179474.1 - Known issues specific to 11.2.0.2
    Doc ID 1178583.1 - Bugs fixed in the 11.2.0.2 Patch Set

  • Create PDF report with APEX and Oracle 11g doesn't work

    Hi everyone,
    I have a problem with the downloading of PDF reports from APEX with Oracle 11g.
    When I try to download a PDF, Acrobat Reader says it can not open the file.
    I have done the same test in an environment with APEX and Oracle 10g and it works perfectly.
    Does anyone know if there is a known bug for version 11g.
    Thank you very much.

    Hi Munky,
    I open the generated file the Notepad++ I can read the next message:
    *<HTML><HEAD><TITLE>500 Internal Server Error</TITLE></HEAD><BODY><H1>500 Internal Server Error</H1>OracleJSP:*
    An error occurred. Consult your application/system administrator for support. Programmers should consider setting the init-param <code>debug_mode</code> to "true" to see the complete exception message.</BODY></HTML>
    I have not idea can I solve the problem.
    Have you got any solution for this problem??
    Thank you so much.
    Victor Muñoz.

  • Bug in Oracle JDBC thin driver (parameter order)

    [ I'd preferably send this to some Oracle support email but I
    can't find any on both www.oracle.com and www.technet.com. ]
    The following program illustrates bug I found in JDBC Oracle thin
    driver.
    * Synopsis:
    The parameters of prepared statement (I tested SELECT's and
    UPDATE's) are bound in the reverse order.
    If one do:
    PreparedStatement p = connection.prepareStatement(
    "SELECT field FROM table WHERE first = ? and second = ?");
    and then bind parameter 1 to "a" and parameter to "b":
    p.setString(1, "a");
    p.setString(2, "b");
    then executing p yields the same results as executing
    SELECT field FROM table WHERE first = "b" and second = "a"
    although it should be equivalent to
    SELECT field FROM table WHERE first = "a" and second = "b"
    The bug is present only in "thin" Oracle JDBC driver. Changing
    driver to "oci8" solves the problem.
    * Version and platform info:
    I detected the bug using Oracle 8.0.5 server for Linux.
    According to $ORACLE_HOME/jdbc/README.doc that is
    Oracle JDBC Drivers release 8.0.5.0.0 (Production Release)
    * The program below:
    The program below illustrates the bug by creating dummy two
    column table, inserting the row into it and then selecting
    the contents using prepared statement. Those operations
    are performed on both good (oci8) and bad (thin) connections,
    the results can be compared.
    You may need to change SID, listener port and account data
    in getConnecton calls.
    Sample program output:
    $ javac ShowBug.java; java ShowBug
    Output for both connections should be the same
    --------------- thin Driver ---------------
    [ Non parametrized query: ]
    aaa
    [ The same - parametrized (should give one row): ]
    [ The same - with buggy reversed order (should give no answers):
    aaa
    --------------- oci8 driver ---------------
    [ Non parametrized query: ]
    aaa
    [ The same - parametrized (should give one row): ]
    aaa
    [ The same - with buggy reversed order (should give no answers):
    --------------- The end ---------------
    * The program itself
    import java.sql.*;
    class ShowBug
    public static void main (String args [])
    throws SQLException
    // Load the Oracle JDBC driver
    DriverManager.registerDriver(new
    oracle.jdbc.driver.OracleDriver());
    System.out.println("Output for both connections should be the
    same");
    Connection buggyConnection
    = DriverManager.getConnection
    ("jdbc:oracle:thin:@localhost:1521:ORACLE",
    "scott", "tiger");
    process("thin Driver", buggyConnection);
    Connection goodConnection
    = DriverManager.getConnection ("jdbc:oracle:oci8:",
    "scott", "tiger");
    process("oci8 driver", goodConnection);
    System.out.println("--------------- The end ---------------");
    public static void process(String title, Connection conn)
    throws SQLException
    System.out.println("--------------- " + title + "
    Statement stmt = conn.createStatement ();
    stmt.execute(
    "CREATE TABLE bug (id VARCHAR(10), val VARCHAR(10))");
    stmt.executeUpdate(
    "INSERT INTO bug VALUES('aaa', 'bbb')");
    System.out.println("[ Non parametrized query: ]");
    ResultSet rset = stmt.executeQuery(
    "select id from bug where id = 'aaa' and val = 'bbb'");
    while (rset.next ())
    System.out.println (rset.getString (1));
    System.out.println("[ The same - parametrized (should give one
    row): ]");
    PreparedStatement prep = conn.prepareStatement(
    "select id from bug where id = ? and val = ?");
    prep.setString(1, "aaa");
    prep.setString(2, "bbb");
    rset = prep.executeQuery();
    while (rset.next ())
    System.out.println (rset.getString (1));
    System.out.println("[ The same - with buggy reversed order
    (should give no answers): ]");
    prep = conn.prepareStatement(
    "select id from bug where id = ? and val = ?");
    prep.setString(1, "bbb");
    prep.setString(2, "aaa");
    rset = prep.executeQuery();
    while (rset.next ())
    System.out.println (rset.getString (1));
    stmt.execute("DROP TABLE bug");
    null

    Horea
    In the ejb-jar.xml, in the method a cursor is closed, set <trans-attribute>
    to "Never".
    <assembly-descriptor>
    <container-transaction>
    <method>
    <ejb-name></ejb-name>
    <method-name></method-name>
    </method>
    <trans-attribute>Never</trans-attribute>
    </container-transaction>
    </assembly-descriptor>
    Deepak
    Horea Raducan wrote:
    Is there a known bug in Oracle JDBC thin driver version 8.1.6 that would
    prevent it from closing the open cursors ?
    Thank you,
    Horea

  • Bug in Oracle JDBC thin driver 8.1.6 ?

    Is there a known bug in Oracle JDBC thin driver version 8.1.6 that would
    prevent it from closing the open cursors ?
    Thank you,
    Horea

    Horea
    In the ejb-jar.xml, in the method a cursor is closed, set <trans-attribute>
    to "Never".
    <assembly-descriptor>
    <container-transaction>
    <method>
    <ejb-name></ejb-name>
    <method-name></method-name>
    </method>
    <trans-attribute>Never</trans-attribute>
    </container-transaction>
    </assembly-descriptor>
    Deepak
    Horea Raducan wrote:
    Is there a known bug in Oracle JDBC thin driver version 8.1.6 that would
    prevent it from closing the open cursors ?
    Thank you,
    Horea

  • Bug in Oracle JDBC Drivers with {ts ?}

    Oracle fails to set bind variables correctly when using the {ts ?} in an insert. It works ok if you use {d ?}.
    Ex:
    String st = "INSERT INTO BL(NM,TSTAMP) VALUES (?,{ts ?} )";
    System.out.println(dbConn.nativeSQL(st));
    java.sql.PreparedStatement stmt = dbConnn.prepareStatement(st);
    stmt.setString(1,"test");
    stmt.setString(2,"2000-08-18 09:33:45");
    int xx = stmt.executeUpdate();
    Oracle Reports:
    INSERT INTO BL (NM,TSTAMP) VALUES (:1,TO_DATE (?, 'YYYY-MM-DD HH24:MI:SS'))
    ConnectionPoolManager failed:java.sql.SQLException: ORA-00911: invalid character
    Notice the ? doesn't change to :2.
    Whoops.
    Also when does Oracle plan to implement {fn }
    scalars. There are work arounds but they are not portable. If not soon we will switch our suggested database for our clients.
    null

    Horea
    In the ejb-jar.xml, in the method a cursor is closed, set <trans-attribute>
    to "Never".
    <assembly-descriptor>
    <container-transaction>
    <method>
    <ejb-name></ejb-name>
    <method-name></method-name>
    </method>
    <trans-attribute>Never</trans-attribute>
    </container-transaction>
    </assembly-descriptor>
    Deepak
    Horea Raducan wrote:
    Is there a known bug in Oracle JDBC thin driver version 8.1.6 that would
    prevent it from closing the open cursors ?
    Thank you,
    Horea

  • Oracle 11g bug ?!

    We are trying to execute a simple query of the form
    select * from sometable where upper(attr1) like 'WB%' or upper(attr2) like 'WB%' or upper(attr3) like 'WB%'
    The data does exist in the table but the query does not return values.
    Sometimes the count(*) on that table returns the correct number but the actual select statement does not return data.
    We have added a dummy where clause
    select * from sometable where upper(attr1) like 'WB%' or upper(attr2) like 'WB%' or upper(attr3) like 'WB%' or lower(attr2) like 'WB%' and the data does show up.
    We are on Oracle 11g 11.2.0.2 and have migrated recently from 10g. And this issue has started appearing after the migration.
    Any thoughts on what could be causing this issue ?
    Thanks
    Surya
    Edited by: Surya on 09-Mar-2011 06:11

    user11180582 wrote:
    We have added a dummy where clause
    select * from sometable where upper(attr1) like 'WB%' or upper(attr2) like 'WB%' or upper(attr3) like 'WB%' or lower(attr2) like 'WB%' and the data does show up. Hm. difficult but I doubt that you have a bug. I guess you have either some strange values or there is something in the full statement that is missing in your example.
    For example please be aware that the AND operator has a higher priority then the OR operator (is this way since oracle 7 at least).
    So if your real statement would include an and condition, this could produce unwanted outcome.
    select * from sometable
    where upper(attr1) like 'WB%'
         or upper(attr2) like 'WB%'
         or upper(attr3) like 'WB%'
         and lower(attr5) = 'XY' This is identical to:
    select * from sometable
    where upper(attr1) like 'WB%'
         or upper(attr2) like 'WB%'
         or (upper(attr3) like 'WB%' and lower(attr5) = 'XY' )But usually you want
    select * from sometable
    where (upper(attr1) like 'WB%' or upper(attr2) like 'WB%' or upper(attr3) like 'WB%')
            and lower(attr5) = 'XY' Some additon. Your condition could also be written like this. Maybe this helps to find the real cause of the error.
    select * from sometable
    where 'WB' in (substr(upper(attr1),1,2)
                       ,substr(upper(attr2),1,2)
                       ,substr(upper(attr3),1,2)
                       )I find this often to be better readable then a long LIKE + OR expression.

  • Oracle 11g bug for column ambigously defined error

    I have below format query running on Oracle 10g without any issues
    select col1
    from (select col1
    from (select 'A' col1
    from dual)
    ) v1
    inner join (select col1 as col2
    from (select 'A' col1
    from dual)
    ) v2
    on (v1.col1=v2.col2);
    When I run the exact same query on Oracle 11g I get column ambiguously defined error. But when I change the query to as below it works fine on 11g
    select v1.col1
    from (select col1
    from (select 'A' col1
    from dual)
    ) v1
    inner join (select col1 as col2
    from (select 'A' col1
    from dual)
    ) v2
    on (v1.col1=v2.col2);
    Is it because 11g ignores column alias in my inner queries.

    I'd tend to agree that this seems to be a bug in 11.1.0.7 (at least, that's the version I'm running it in)
    It's not even that Oracle doesn't know about the column aliases, you can remove the aliases in the ON without a problem, i.e.
    SELECT v1.col1
       FROM
      (SELECT col1 FROM
        (SELECT 'A' col1 FROM dual
      ) v1
    INNER JOIN
      (SELECT col1 AS col2 FROM
        (SELECT 'A' col1 FROM dual
      ) v2
         ON (col1=col2);works fine. Using the old join syntax also seems to work fine
    SELECT col1
       FROM
      (SELECT col1 FROM
        (SELECT 'A' col1 FROM dual
      ) v1,
      (SELECT col1 AS col2 FROM
        (SELECT 'A' col1 FROM dual
      ) v2
      WHERE (col1=col2);So it appears that something in the SQL 99 parser is broken. Have you logged a bug in Metalink?
    Justin

  • BUG for sort column with Oracle 11g and APEX 3.2

    I have BUG in Report region(Oracle 11g and APEX 3.2). if i have more than 746 Char for my column's value and i want to sort them, this error appear
    Report error :
    ORA-00910: specified length too long for its datatype.
    But in an other environement in Oracle 10g and apex 3.2, with the same data. I have no BUG.
    Somebody have an idea for a possible solution to this problem???

    Again, I may just be wasting your time...but if I have XDB problems...especially with the password, I do the following:
    1. Change your working directory to $ORACLE_HOME/apex.
    2. Start SQL*Plus and connect to the database where Oracle Application Express is installed as SYS.
    3. Run apxconf.sql
    > @apxconf
    4. When prompted, enter a password for the Oracle Application Express Admin account.
    5. When prompted, enter the port for the Oracle XML DB HTTP server. (default port being, of course,8080).
    6. Unlock the ANONYMOUS account
    > ALTER USER ANONYMOUS ACCOUNT UNLOCK;
    7. If needed, I do the SETHTTPPORT command mentioned before...
    Since I'm using the Oracle 11g, with embedded PL/SQL server, I have no idea if this is the same for 10g us OHS?
    Hope that helps!
    KSL.

  • Known bugs in 11g beta?

    Hi,
    I am using the 11g beta (ODAC1110510beta) but have come across a problem related to using functions (e.g Upper) in the where clause of a select statement. This code used to work with earlier versions of ODP.NET.
    Is there a list of known bugs in the beta, and where can I find it?
    (I have not yet a small test case to demonstrate the bug, but I am working on it.)
    Thanks

    how are you using the UPPER function ?? if you could post the SQL Code it would help... i am using UPPER and it works for me with the 11g tools...

  • Oracle 11g compatibility with oracle 10g and 9i?

    Hi All
    I have some queries on 11g compatibility.
    Is oracle 11g client compatible with oracle 10g client which is already installed on desktop?
    If yes any changes to be done and where?
    Is oracle 11g compatible with oracle 10g/9i on the same server where 10g/9i are installed?
    Regards

    Thanks Justin Thats right ...
    Problem elaboration is as follows
    We currently have an application which requires oracle 10g(10.2.0.3) client to connect to database from user desktops. As
    part of new application development the oracle 11g clients need to be installed on all the user deskotps.
    The complete application software along with oracle client 11g has to be roled out on these desktop as part of
    implementaion of new application besides the existing application(The application software is packaged along with oracle
    10g client).
    We would like to understand if there is any software provided by oracle using which we can switch between different oracle
    versions while accessing the respective applications simultaneously. Also are there any known bugs/issues in running
    oracle 10g client and oracle 11g client together on the same user desktops with different oracle homes?

  • Oracle 11g benefits

    Hello Guys
    Oracle 11g new features notes as found on web very generic
    if i want to convince my client to switch from oracle 10g to oracle 11g,this information will not be useful
    if you had migrated to 11g and worked on it,please reply practical reasons from dba point of view
    how customer will be benefited from migrating from oracle 10 g to 11g
    like if i mentioned to him ADR feature it doesnt makes sense to him
    Active dataguard may be one of feature but will be have any benefit where dataguard is implemented
    still to application guys also it will give any advantage
    say for example i am discussing this with Application team head ,how will he benefit from migrating to 11g
    what feature will be benefitted to him and how
    will this feature will be appealing enough to efforts in migration
    thanks
    cheers

    In my opinion, the best way to convince them is to do an assessment for their particular environment, based on the specifics.
    For example, I've done such one for a database and here are some of the points:
    1. Almost 30%(as reported by Grid Control) of frequently executed queries are on tables like XX.XXXX and YY.YYYYY. These tables are relatively small and statements , and functions on them are good candidates for modification to use :
    Query Results Cache and PL/SQL Function Result Cache (Oracle 11G Enterprise Edition option, no extra cost needed).
    2. From time to time we experience sudden execution plan changes and get worse plans. This degrades applications' performance orders of magnitude. Oracle 11g has a new built-in feature called "SQL Plan Management". As described in the docs:
    "SQL plan management prevents performance regressions resulting from sudden changes to the execution plan of a SQL statement by providing components for capturing, selecting, and evolving SQL plan information. If you are performing a database upgrade that installs a new optimizer version, it can result in plan changes for a small percentage of SQL statements, with most of the plan changes resulting in either no performance change or improvement. However, certain plan changes may cause performance regressions.
    With SQL plan management, the optimizer automatically manages execution plans and ensures that only known or verified plans are used. When a new plan is found for a SQL statement, the plan is not used until it has been verified by the database to have comparable or better performance than the current plan. This means if you seed SQL plan management with your current (pre-11g) execution plan, which will become the SQL plan baseline for each statement, the optimizer uses these plans after the upgrade. If the 11g optimizer determines that a different plan should be used, the new plan is queued for verification and will not be used until it has been confirmed to have comparable or better performance than the current plan."
    I don't expect this to be perfect but at least it will decrease the number of such problematic periods.
    3. 10g Recovery Manager doesn't support parallelism per datafile. In our environment we have several 30+GB datafiles and since our storage system is not very fast for such type of operations, non-parallel restore of a single datafile will take much more time compared to the same activity on 11g. 11g supports RMAN datafile restore in parallel.
    4. Several optimizations in optimizer work. One of them is better handling of full scans:
    We've done some tests 10g/11g and were surprised because of this direct path read/db file scattered reads thing. Our tests are:
    Two databases - one 11g and one 10g with same sga_target,sga_max_size(500MB) and pga_aggregate_target(200MB), everything else is as it is set during install by DBCA. These two databases run on one host.
    The storage is a NAS(6 discs) managed by 11g ASM (one normal redundancy diskgroup ) which is used by the databases.
    I imported a 3GB table on every database and gathered stats. To not go in detail as of now, the results are:
    three consecutive runs on 11g.
    average execution time - 50 seconds
    three consecutive runs on 10g.
    average execution time - 125 seconds
    The statement is:
    select /*+ full(t) nocache(t) */ count(1) from zz.zzz t;
    and there is no other activity on the host and the storage.
    Same number of logical and physical reads during 11g and 10g runs.
    During the above runs while run on:
    11g, iostat reports ~14MB/s per disk
    10g, iostat reports ~5MB/s per disk
    After tracing these sessions we figured out that on 11g direct path read is used, while 10g uses db file scattered read.
    5. We can use AUDIT_SYS_OPERATIONS in conjunction with XML,EXTENDED for auditing purposes. 10.2.0.4 has a bug for this that is fix in 11.1.0.6 onwards.
    6. Database Resident Connection Pooling(Concepts guide 11g documentation)
    "Database Resident Connection Pooling (DRCP) provides a connection pool in the database server for typical Web application usage scenarios. DRCP pools dedicated servers, which comprise of a server foreground combined with a database session, to create pooled servers.
    A Web application typically acquires a database connection, uses the connection for a short period, and then releases the connection. DRCP enables multiple Web application threads and processes to share the pooled servers for their connection needs.
    DRCP complements middle-tier connection pools that share connections between threads in a middle-tier process. DRCP also enables you to share database connections across multiple middle-tier processes. These middle-tier processes may belong to the same or different middle-tier host.
    DRCP enables a significant reduction in key database resources that are required to support a large number of client connections. DRCP reduces the amount of memory required for the database server and boosts the scalability of both the database server and the middle-tier. The pool of readily available servers also reduces the cost of re-creating client connections.
    DRCP is especially useful for architectures with multi-process, single-threaded application servers, such as PHP and Apache servers, that cannot do middle-tier connection pooling. The database can scale to tens of thousands of simultaneous connections with DRCP."
    It will help us to improve dedicated server usage(currently we use shared server).
    7. A lot of bug fixes for bugs that don't have 10g patches , fixed in 11g only and affect us - examples XML,EXTENDED and AUDIT_SYS_OPERATIONS bug, FGA bugs, job system on logical standby database , "ORA-12569: TNS:packet checksum failure" during sqlplus login and so on.
    It's for sure that there are much more such convincing points, but a several days assessment will make it possible to identify the most important ones from performance/availability/security perspective for their environment. As it is often the case - the devil is in the details. It's all about the way they use the database.

  • Enterprise manager version with Oracle 11g

    Which version of Enterprise Manager do I need to install with 64 bit Oracle 11g. What is the latest version? Where can I get this information. The latest version that I could find for download on Oracle website is 10.2.0.4, but the one that comes with 11g Enterprise edition says 11.1 (the one without the Grid control).

    The latest grid control is 10.2.0.4 - note that you have to turn off instance status metric or you get too many files open - a bug that they are doing a patch for.
    You are correct thou - 11g DB control is bundled with the db, but that is db control not grid control - a similar but unique product.

  • The danger of memory target in Oracle 11g - request for discussion.

    Hello, everyone.
    This is not a question, but kind of request for discussion.
    I believe that many of you heard something about automatic memory management in Oracle 11g.
    The concept is that Oracle manages the target size of SGA and PGA. Yes, believe it or not, all we have to do is just to tell Oracle how much memory it can use.
    But I have a big concern on this. The optimizer takes the PGA size into consideration when calculating the cost of sort-related operations.
    So what would happen when Oracle dynamically changes the target size of PGA? Following is a simple demonstration of my concern.
    UKJA@ukja116> select * from v$version;
    BANNER
    Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production
    PL/SQL Release 11.1.0.6.0 - Production
    CORE    11.1.0.6.0      Production
    TNS for 32-bit Windows: Version 11.1.0.6.0 - Production
    NLSRTL Version 11.1.0.6.0 - Production
    -- Configuration
    *.memory_target=350m
    *.memory_max_target=350m
    create table t1(c1 int, c2 char(100));
    create table t2(c1 int, c2 char(100));
    insert into t1 select level, level from dual connect by level <= 10000;
    insert into t2 select level, level from dual connect by level <= 10000;
    -- First 10053 trace
    alter session set events '10053 trace name context forever, level 1';
    select /*+ use_hash(t1 t2) */ count(*)
    from t1, t2
    where t1.c1 = t2.c1 and t1.c2 = t2.c2
    alter session set events '10053 trace name context off';
    -- Do aggressive hard parse to make Oracle dynamically change the size of memory segments.
    declare
      pat1     varchar2(1000);
      pat2     varchar2(1000);
      va       number;
      vc       sys_refcursor;
      vs        varchar2(1000);
    begin
      select ksppstvl into pat1
        from sys.xm$ksppi i, sys.xm$ksppcv v   -- views for x$ table
        where i.indx = v.indx
        and i.ksppinm = '__pga_aggregate_target';
      for idx in 1 .. 10000000 loop
        execute immediate 'select count(*) from t1 where rownum = ' || (idx+1)
              into va;
        if mod(idx, 1000) = 0 then
          sys.dbms_system.ksdwrt(2, idx || 'th execution');
          select ksppstvl into pat2
          from sys.xm$ksppi i, sys.xm$ksppcv v   -- views for x$ table
          where i.indx = v.indx
          and i.ksppinm = '__pga_aggregate_target';
          if pat1 <> pat2 then
            sys.dbms_system.ksdwrt(2, 'yep, I got it!');
            exit;
          end if;
        end if;
      end loop;
    end;
    -- As to alert log file,
    25000th execution
    26000th execution
    27000th execution
    28000th execution
    29000th execution
    30000th execution
    yep, I got it! <-- the pga target changed with 30000th hard parse
    -- Second 10053 trace for same query
    alter session set events '10053 trace name context forever, level 1';
    select /*+ use_hash(t1 t2) */ count(*)
    from t1, t2
    where t1.c1 = t2.c1 and t1.c2 = t2.c2
    alter session set events '10053 trace name context off';With above test case, I found that
    1. Oracle invalidates the query when internal pga aggregate size changes, which is quite natural.
    2. With changed pga aggregate size, Oracle recalculates the cost. These are excerpts from the both of the 10053 trace files.
    -- First 10053 trace file
    PARAMETERS USED BY THE OPTIMIZER
      PARAMETERS WITH ALTERED VALUES
    Compilation Environment Dump
    _smm_max_size                       = 11468 KB
    _smm_px_max_size                    = 28672 KB
    optimizer_use_sql_plan_baselines    = false
    optimizer_use_invisible_indexes     = true
    -- Second 10053 trace file
    PARAMETERS USED BY THE OPTIMIZER
      PARAMETERS WITH ALTERED VALUES
    Compilation Environment Dump
    _smm_max_size                       = 13107 KB
    _smm_px_max_size                    = 32768 KB
    optimizer_use_sql_plan_baselines    = false
    optimizer_use_invisible_indexes     = true
    Bug Fix Control Environment10053 trace file clearly says that Oracle recalculates the cost of the query with the change of internal pga aggregate target size. So, there is a great danger of unexpected plan change while Oracle dynamically controls the memory segments.
    I believe that this is a desinged behavior, but the negative side effect is not negligible.
    I just like to hear your opinions on this behavior.
    Do you think that this is acceptable? Or is this another great feature that nobody wants to use like automatic tuning advisor?
    ================================
    Dion Cho - Oracle Performance Storyteller
    http://dioncho.wordpress.com (english)
    http://ukja.tistory.com (korean)
    ================================

    I made a slight modification with my test case to have mixed workloads of hard parse and logical reads.
    *.memory_target=200m
    *.memory_max_target=200m
    create table t3(c1 int, c2 char(1000));
    insert into t3 select level, level from dual connect by level <= 50000;
    declare
      pat1     varchar2(1000);
      pat2     varchar2(1000);
      va       number;
    begin
      select ksppstvl into pat1
        from sys.xm$ksppi i, sys.xm$ksppcv v
        where i.indx = v.indx
        and i.ksppinm = '__pga_aggregate_target';
      for idx in 1 .. 1000000 loop
        -- try many patterns here!
        execute immediate 'select count(*) from t3 where 10 = mod('||idx||',10)+1' into va;
        if mod(idx, 100) = 0 then
          sys.dbms_system.ksdwrt(2, idx || 'th execution');
          for p in (select ksppinm, ksppstvl
              from sys.xm$ksppi i, sys.xm$ksppcv v
              where i.indx = v.indx
              and i.ksppinm in ('__shared_pool_size', '__db_cache_size', '__pga_aggregate_target')) loop
              sys.dbms_system.ksdwrt(2, p.ksppinm || ' = ' || p.ksppstvl);
          end loop;
          select ksppstvl into pat2
          from sys.xm$ksppi i, sys.xm$ksppcv v
          where i.indx = v.indx
          and i.ksppinm = '__pga_aggregate_target';
          if pat1 <> pat2 then
            sys.dbms_system.ksdwrt(2, 'yep, I got it! pat1=' || pat1 ||', pat2='||pat2);
            exit;
          end if;
        end if;
      end loop;
    end;
    /This test case showed expected and reasonable result, like following:
    100th execution
    __shared_pool_size = 92274688
    __db_cache_size = 16777216
    __pga_aggregate_target = 83886080
    200th execution
    __shared_pool_size = 92274688
    __db_cache_size = 16777216
    __pga_aggregate_target = 83886080
    300th execution
    __shared_pool_size = 88080384
    __db_cache_size = 20971520
    __pga_aggregate_target = 83886080
    400th execution
    __shared_pool_size = 92274688
    __db_cache_size = 16777216
    __pga_aggregate_target = 83886080
    500th execution
    __shared_pool_size = 88080384
    __db_cache_size = 20971520
    __pga_aggregate_target = 83886080
    1100th execution
    __shared_pool_size = 92274688
    __db_cache_size = 20971520
    __pga_aggregate_target = 83886080
    1200th execution
    __shared_pool_size = 92274688
    __db_cache_size = 37748736
    __pga_aggregate_target = 58720256
    yep, I got it! pat1=83886080, pat2=58720256Oracle continued being bounced between shared pool and buffer cache size, and about 1200th execution Oracle suddenly stole some memory from PGA target area to increase db cache size.
    (I'm still in dark age on this automatic memory target management of 11g. More research in need!)
    I think that this is very clear and natural behavior. I just want to point out that this would result in unwanted catastrophe under special cases, especially with some logic holes and bugs.
    ================================
    Dion Cho - Oracle Performance Storyteller
    http://dioncho.wordpress.com (english)
    http://ukja.tistory.com (korean)
    ================================

  • Bug in Oracle UpdatableResultSet? (insert, updateString requires non-empty ResultSet?

    As far as I can determine from the documentation and posts in other newsgroups
    the following example should work to produce an updatable but "empty" ResultSet which can be used to insert rows.
    But it doesn't work in a JDK 1.2.2 and JDK 1.3.0_01 application using Oracle 8i (8.1.7) thin JDBC
    driver against an Oracle 8.1.5 database I get the following error
    SQLException: java.sql.SQLException: Invalid argument(s) in call: setRowBufferAt
    However, if I change it to so the target (ie insert) ResultSet is initialized to contain one or more
    rows, it works just fine.
    ResultSet rset2 = stmt2.executeQuery ( "select Context.* from Context where ContextCd = '0' " );
    Is this a bug in Oracle's JDBC driver (more specifically, the UpdatableResultSet implimentation)?
    Does an updatabable ResultSet have to return rows to be valid and useable for insert operations?
    If it does, is there another way to create an updatable ResultSet that does not depend upon
    "hard-coding" some known data value into the query?
    try
    // conn is a working, tested connection to an Oracle database via 8.1.7 thin JDBC driver.
    // source statement
    Statement stmt = conn.createStatement (
    ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY );
    System.out.println("source rset");
    rset = stmt.executeQuery ( "select Context.* from Context" );
    // target Statement
    Statement stmt2 = conn.createStatement (
    ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE );
    ResultSet rset2 =
    stmt2.executeQuery ( "select Context.* from Context where ContextCd = NULL" );
    System.out.println(
    "see if rset2 looks good even though empty (bcs primarykey = null)");
    ResultSetMetaData rsmd2 = rset2.getMetaData();
    int numColumns = rsmd2.getColumnCount();
    for( int i = 0; i <= numColumns; i++ )
    env.msg.println ( "(" + i + ") " + rsmd2.getColumnLabel(i) );
    // test results showed the correct columns even though no row returned.
    // quess we can use this trick to create an "empty" insert ResultSet.
    System.out.println("interate through rset and insert using rset2");
    if(rset.next())
    System.out.println("move to insert row");
    rset2.moveToInsertRow();
    System.out.println("insert values");
    rset2.updateString( "ContextCd", rset.getString("ContextCd") + "-test" );
    rset2.updateString( "Descrip", "test" );
    rset2.updateString( "Notes", "test" );
    System.out.println("insert row into db (but not committed)");
    rset2.insertRow();
    catch( ... ) ...
    Thanks
    R.Parr
    Temporal Arts

    I have noticed the same problem, actually it doens't matter if there is no data in your resultset. If you have a result with data and suppose you were to analyze the data by moving through all of the rows, the cursor is now after the last row. If you call insertRow, the same exception is thrown. Kinda strange, I didn't get any response as to why this is happening and that was a few weeks ago. I hope someone responds, at this point I am just re-writing some of my code to not use updateable resultsets.
    <BLOCKQUOTE><font size="1" face="Verdana, Arial">quote:</font><HR>Originally posted by Randall Parr ([email protected]):
    As far as I can determine from the documentation and posts in other newsgroups
    the following example should work to produce an updatable but "empty" ResultSet which can be used to insert rows.
    But it doesn't work in a JDK 1.2.2 and JDK 1.3.0_01 application using Oracle 8i (8.1.7) thin JDBC
    driver against an Oracle 8.1.5 database I get the following error<HR></BLOCKQUOTE>
    null

Maybe you are looking for

  • Problem with headerline in OO   again     -  other thread was locked  -

    Problem with headerline in OO   Hello, I've the problem that I cannot give values from an inertnal table to an variable because the itab has no headerline, because in oo it is not possible. Here the coding: structure in se11 ZACTIVITYIF with componen

  • XFX 4890 missing hdmi cable

     My mom bought a xfx 4890 in best buy store in new york city and shipped it here in philippines. When I open the box I only see the card, dvi to vga adapter, crossfire brigde and the s-video cables. Why didn't I get the hdmi cable? I had to use the n

  • Currency is not showing in the result out of BW report.

    Hi All, I created a report, In the report out having key figure called "Amount", In the result its displaying as Amount =100, But as per the user requirement I need the amount value as Amount=100 EUR or MYR or GBP or USD like this. The keyfigures hav

  • Bapi to Create a meterial from a template material

    Dear All, I have a requirement to create a material, through a bapi.. But if there is a template material ( copy from material.. ) is given, the material should be created with the details of the given material except the basic data and Classificatio

  • Opmn logs not being written

    Hi All, We are facing an issue. No logs are being written to the opmn/logs directory. It was being written correctly till 4th December and then stopped all of a sudden. Are there any configuration files which may have been affected. Best regards, Bri