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

Similar Messages

  • Major performance trouble Oracle 11g  RHELx64, HP 8100 storage

    Hi hope some one can help me with this.
    We have a datawarehouse with this configuratuion
    Database
    RHEL5 u5 on 2* intel 5700 cpu, 36gb ram, emulex 4gb dual port hba, HP EVA 8100 san.
    Oracle 11g 11.1.7.
    Database 8 kblock
    Disks are
    /data 2.0TB 72 disks formated with ext3 4k block.
    /log 100GB 72 disks formated with ext3 4k block.
    ETL
    Informatica Power Center 8.6 on similar machine.
    My problem is vhen we try to load the database with data it takes forever so we tested this stuff
    iops script run
    SET SERVEROUTPUT ON
    DECLARE
    lat INTEGER;
    iops INTEGER;
    mbps INTEGER;
    BEGIN
    -- DBMS_RESOURCE_MANAGER.CALIBRATE_IO (<DISKS>, <MAX_LATENCY>, iops, mbps, lat);
    DBMS_RESOURCE_MANAGER.CALIBRATE_IO (72, 10, iops, mbps, lat);
    DBMS_OUTPUT.PUT_LINE ('max_iops = ' || iops);
    DBMS_OUTPUT.PUT_LINE ('latency = ' || lat);
    dbms_output.put_line('max_mbps = ' || mbps);
    end;
    Results
    Warehouse database about 600GB data in it
    max_iops = 82
    latency = 11
    max_mbps = 204
    LOW!!!
    I installed a new database with just the exaple schemas on same disk /data and got theese results
    max_iops = 25665
    latency = 8
    max_mbps = 517
    Any one have some ideas what i should test or change?
    /Jens Bäckström (Noob)Dba

    The second database IOTEST is a small test db.
    This is how i did the test
    i stopped the DWRPD01 wich is the dw database.
    i start the IOTEST DATABSE and run the iops script.
    after the run i stoped IOTEST and started DWPRD02 and run the same script.
    i am sure the database files was on the same san disk group . but ofc i can not besure that the data be on the same physical disk in the SAN cabinett.
    Ill check ur other questions as soon as i have some ansvers
    and thanks for helping me out.
    Below are my initfiles from the DB's
    /Jens
    IOTEST Database
    IOTEST.__db_cache_size=16106127360
    IOTEST.__java_pool_size=268435456
    IOTEST.__large_pool_size=268435456
    IOTEST.__oracle_base='/oracle_prod01'#ORACLE_BASE set from environment
    IOTEST.__pga_aggregate_target=6442450944
    IOTEST.__sga_target=21474836480
    IOTEST.__shared_io_pool_size=0
    IOTEST.__shared_pool_size=4294967296
    IOTEST.__streams_pool_size=268435456
    *.archive_lag_target=1800
    *.audit_file_dest='/oracle_prod01/admin/IOTEST/adump'
    *.audit_sys_operations=true
    *.audit_trail='db'
    *.compatible='11.1.0.0.0'
    *.control_file_record_keep_time=16
    *.control_files='/iotest/IOTEST/control01.ctl','/iotest/IOTEST/control02.ctl','/iotest/IOTEST/control03.ctl'
    *.db_block_checking='LOW'
    *.db_block_checksum='TYPICAL'
    *.db_block_size=8192
    *.db_create_file_dest=''
    *.db_domain=''
    *.db_file_multiblock_read_count=32
    *.db_files=200
    *.db_name='IOTEST'
    *.db_recovery_file_dest=''
    *.db_writer_processes=3
    *.diagnostic_dest='/oracle_prod01'
    *.dispatchers='(PROTOCOL=TCP) (SERVICE=IOTESTXDB)'
    *.filesystemio_options='setall'
    *.log_checkpoints_to_alert=true
    *.nls_language='AMERICAN'
    *.open_cursors=512
    *.optimizer_index_cost_adj=50
    *.parallel_io_cap_enabled=true
    *.parallel_max_servers=10
    *.parallel_min_servers=2
    *.pga_aggregate_target=6442450944
    *.processes=512
    *.recyclebin='off'
    *.remote_login_passwordfile='EXCLUSIVE'
    *.sga_target=21474836480DWPRD01.__db_cache_size=16106127360
    *.star_transformation_enabled='TRUE'
    *.undo_tablespace='UNDOTBS1'
    DWPRD01 Database
    DWPRD01.__java_pool_size=268435456
    DWPRD01.__large_pool_size=268435456
    DWPRD01.__oracle_base='/oracle_prod01'#ORACLE_BASE set from environment
    DWPRD01.__pga_aggregate_target=6442450944
    DWPRD01.__sga_target=21474836480
    DWPRD01.__shared_io_pool_size=0
    DWPRD01.__shared_pool_size=4294967296
    DWPRD01.__streams_pool_size=268435456
    *.archive_lag_target=1800
    *.audit_file_dest='/oracle_prod01/admin/DWPRD01/adump'
    *.audit_sys_operations=true
    *.audit_trail='db'
    *.compatible='11.1.0.0.0'
    *.control_file_record_keep_time=16
    *.control_files='/dbffast_prod01/control01.ctl','/oracle_prod01/control02.ctl','/log_prod01/control03.ctl'
    *.db_block_checking='LOW'
    *.db_block_checksum='TYPICAL'
    *.db_block_size=8192
    *.db_create_file_dest=''
    *.db_domain=''
    *.db_file_multiblock_read_count=32
    *.db_files=200
    *.db_name='DWPRD01'
    *.db_recovery_file_dest=''
    *.db_writer_processes=3
    *.diagnostic_dest='/oracle_prod01'
    *.dispatchers='(PROTOCOL=TCP) (SERVICE=DWPRD01XDB)'
    *.filesystemio_options='setall'
    *.log_archive_dest_1='LOCATION=/arch_prod01'
    *.log_archive_format='DWPRD01_%t_%s_%r.log'
    *.log_checkpoints_to_alert=true
    *.nls_language='AMERICAN'
    *.open_cursors=512
    *.optimizer_index_cost_adj=50
    *.parallel_io_cap_enabled=true
    *.parallel_max_servers=10
    *.parallel_min_servers=2
    *.pga_aggregate_target=6442450944
    *.processes=512
    *.recyclebin='off'
    *.remote_login_passwordfile='EXCLUSIVE'
    *.sga_target=21474836480
    *.star_transformation_enabled='TRUE'
    *.undo_tablespace='UNDOTBS1'

  • WS-I Tools - Major Bug in JDeveloper 11g

    Hello,
    I've tried tro run the WS-I analyzer from JDeveloper (11.1.1 - 2 - 3 ) but have the following error:
    An error occcured when writing the temporaryWS-I Analyzer configuration file
    After spending couple of hours and finally gave up, and I believe this is a big BUGGGGGGGGGGGGGG in 11g JDeveloper , no log no clue.
    I tried the same in 10.1.3.4 and it works just fine, I followed the following instructions, for both versions.
    http://www.oracle.com/technetwork/developer-tools/jdev/wsi-howto-091316.html
    I am surprised about this bug of Jdeveloper ...................If any Ace, or Director has any clue ??? let us know please.
    Thanks

    Hi, I am using Oracle supplied HR schema, table EMPLOYEES. I created EO on EMPLOYEES table. All the attributes show correctly as Persistent first.
    Under Default Value section, I selected Radio Button "SQL" and entered valid Sql statement, Hit save button. I moved to next attribute, then I see. The previous attribute for which I entered Sql statement as default value, turned to Transient. But this is a Persistent attribute. It is not allowing me to change it back to Persistent.
    Hope the above steps will help to reproduce the bug in your system.

  • 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

  • Connect By Clause -  Major Bug in Oracle 9.0.1

    Currently I am working with Oracle 8.1.6 database,
    now we are migrating to Oracle 9.0.1.
    We are often using "Connect By" clause in our queries since our database structure is hierarchical.
    I am facing one problem with "Connect By" clause in
    Oracle 9.0.1, actually which is working properly with Oracle 8.1.6.
    I am giving the Problem.
    I have created a Table say Object_Master,
    Then I insert 3 rows in that table,
    and then I commit and try to execute one query,
    Same thing is working properly in Oracle 8.1.6 but same query is not working in Oracle 9.0.1.
    Following is the script.
    Create table Object_Master
    ObjectId Number(5),
    ObjectName Varchar2(255),
    ParentId Number(5),
    DeleteStatus Varchar2(1),
    IsSecuritySet Varchar2(1))
    Insert Into Object_Master Values (1,'john',0,'N','Y')
    Insert Into Object_Master Values (2,'ADMIN',1,'N','Y')
    Insert Into Object_Master Values (3,'ADMIN',1,'N','Y')
    Commit
    Select * from
    Object_Master
    Start with ObjectId = 1
    Connect By parentid = Prior ObjectId
    And DeleteStatus = 'N' And ( IsSecuritySet = 'N' Or ObjectName = 'ADMIN' )
    This script is working perfectly with Oracle 8.1.6 but when I try to run this sc[i]Long postings are being truncated to ~1 kB at this time.

    Hey Mitesh,
    What's going on? So many posting for the same question, and that is also not comlete. Try to post rest of your question.
    Dharmesh Patel

  • Connect by clause - Major bug with Oracle 9.0.1

    Currently I am working with Oracle 8.1.6 database,
    now we are migrating to Oracle 9.0.1.
    We are often using "Connect By" clause in our queries since our database structure is hierarchical.
    I am facing one problem with "Connect By" clause in
    Oracle 9.0.1, actually which is working properly with Oracle 8.1.6.
    I am giving the Problem.
    I have created a Table say Object_Master,
    Then I insert 3 rows in that table,
    and then I commit and try to execute one query,
    Same thing is working properly in Oracle 8.1.6 but same query is not working in Oracle 9.0.1.
    Following is the script.
    Create table Object_Master
    ObjectId Number(5),
    ObjectName Varchar2(255),
    ParentId Number(5),
    DeleteStatus Varchar2(1),
    IsSecuritySet Varchar2(1))
    Insert Into Object_Master Values (1,'john',0,'N','Y')
    Insert Into Object_Master Values (2,'ADMIN',1,'N','Y')
    Insert Into Object_Master Values (3,'ADMIN',1,'N','Y')
    Commit
    Select * from
    Object_Master
    Start with ObjectId = 1
    Connect By parentid = Prior ObjectId
    And DeleteStatus = 'N' And ( IsSecuritySet = 'N' Or ObjectName = 'ADMIN' )
    This script is working perfectly with Oracle 8.1.6 but when I try to run this sc[i]Long postings are being truncated to ~1 kB at this time.

    Hey Mitesh,
    What's going on? So many posting for the same question, and that is also not comlete. Try to post rest of your question.
    Dharmesh Patel

  • 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.

  • Oracle Designer 10g With Oracle 11g DB possible

    Hi,
    Please clarify my below query,
    we are currently using oracle designer 10g and deploying the components to production DB which is in oracle 9i, We are planning to migrate to oracle supported version 11g DB, since oracle designer 11g is not there we would be sticking to oracle 10g itself, Now my question is, will we be having issues or road blocks with this combination Oracle designer 10g and Oracle 11g DB???
    Regards
    Bala

    @Erik
    Don't have a doc id. You have to go to the certication tab in My Oracle Support. Search for Oracle Designer 10.1.2.6.0 there you will find the three supported database version.
    Oracle Designer 10.1.2.6.0 is certified with Oracle Database 11.2.0.1.0 on Microsoft Windows (32-bit) XP
    Oracle Designer 10.1.2.6.0 with Oracle Database 11.2.0.1.0
    Customers must review MetaLink Doc 1299040.1 Application Design Transformer Hangs at 65% when running against Oracle 11gR2
    Certified with:
    Oracle Fusion Middleware 10g 10.1.2.0.2 Oracle Developer Suites 10g 10.1.2.0.2 Oracle AS/DS Patch Set 10g 10.1.2.3.0
    @Bala
    Colleagues of mine have imported a designer repository inside 11gR2 and where not able to change objects inside the repository. When they imported the same designer dump inside an 11gR1 database it worked fine.
    In the other post (Re: 11G compatibility it is also written that there are some major bugs and those bugs will not be fixed.

  • Aspnetdb with Oracle 11g

    Hi
    It is an application and want to deploy VS2008.NET WebParts to make a Dashboard style display. This type of screen required (under a philosophy Microsoft) database called aspnetdb "as it allows control of certain profiles and statements of the screen transparent to the user.
    How I can implement this type of functionality on an Oracle 11g database?
    Is it possible to replicate this data model aspnetdb on oracle so that it is also transparent to the application?
    Thanks ....

    @Erik
    Don't have a doc id. You have to go to the certication tab in My Oracle Support. Search for Oracle Designer 10.1.2.6.0 there you will find the three supported database version.
    Oracle Designer 10.1.2.6.0 is certified with Oracle Database 11.2.0.1.0 on Microsoft Windows (32-bit) XP
    Oracle Designer 10.1.2.6.0 with Oracle Database 11.2.0.1.0
    Customers must review MetaLink Doc 1299040.1 Application Design Transformer Hangs at 65% when running against Oracle 11gR2
    Certified with:
    Oracle Fusion Middleware 10g 10.1.2.0.2 Oracle Developer Suites 10g 10.1.2.0.2 Oracle AS/DS Patch Set 10g 10.1.2.3.0
    @Bala
    Colleagues of mine have imported a designer repository inside 11gR2 and where not able to change objects inside the repository. When they imported the same designer dump inside an 11gR1 database it worked fine.
    In the other post (Re: 11G compatibility it is also written that there are some major bugs and those bugs will not be fixed.

  • 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)
    ================================

  • Oracle 11g: Oracle insert/update operation is taking more time.

    Hello All,
    In Oracle 11g (Windows 2008 32 bit environment) we are facing following issue.
    1) We are inserting/updating data on some tables (4-5 tables and we are firing query with very high rate).
    2) After sometime (say 15 days with same load) we are feeling that the Oracle operation (insert/update) is taking more time.
    Query1: How to find actually oracle is taking more time in insert/updates operation.
    Query2: How to rectify the problem.
    We are having multithread environment.
    Thanks
    With Regards
    Hemant.

    Liron Amitzi wrote:
    Hi Nicolas,
    Just a short explanation:
    If you have a table with 1 column (let's say a number). The table is empty and you have an index on the column.
    When you insert a row, the value of the column will be inserted to the index. To insert 1 value to an index with 10 values in it will be fast. It will take longer to insert 1 value to an index with 1 million values in it.
    My second example was if I take the same table and let's say I insert 10 rows and delete the previous 10 from the table. I always have 10 rows in the table so the index should be small. But this is not correct. If I insert values 1-10 and then delete 1-10 and insert 11-20, then delete 11-20 and insert 21-30 and so on, because the index is sorted, where 1-10 were stored I'll now have empty spots. Oracle will not fill them up. So the index will become larger and larger as I insert more rows (even though I delete the old ones).
    The solution here is simply revuild the index once in a while.
    Hope it is clear.
    Liron Amitzi
    Senior DBA consultant
    [www.dbsnaps.com]
    [www.orbiumsoftware.com]Hmmm, index space not reused ? Index rebuild once a while ? That was what I understood from your previous post, but nothing is less sure.
    This is a misconception of how indexes are working.
    I would suggest the reading of the following interasting doc, they are a lot of nice examples (including index space reuse) to understand, and in conclusion :
    http://richardfoote.files.wordpress.com/2007/12/index-internals-rebuilding-the-truth.pdf
    "+Index Rebuild Summary+
    +•*The vast majority of indexes do not require rebuilding*+
    +•Oracle B-tree indexes can become “unbalanced” and need to be rebuilt is a myth+
    +•*Deleted space in an index is “deadwood” and over time requires the index to be rebuilt is a myth*+
    +•If an index reaches “x” number of levels, it becomes inefficient and requires the index to be rebuilt is a myth+
    +•If an index has a poor clustering factor, the index needs to be rebuilt is a myth+
    +•To improve performance, indexes need to be regularly rebuilt is a myth+"
    Good reading,
    Nicolas.

  • Oracle 11g - Problem in referring ROWNUM in the SQL

    Hello All,
    We are facing a strange problem with Oracle 11g (11.2.0.1.0).
    When we issue a query which refers the rownum, it returns a invalid record ( which is not exists in the table).
    The same sql is working fine once we analyze the table
    Note: The same sql is working fine with oracle 10g (Before analyze also).
    The script to reproduce the issue:
    DROP TABLE BusinessEntities;
    CREATE TABLE BusinessEntities
    business_entity_id VARCHAR2(25) PRIMARY KEY,
    business_entity_name VARCHAR2(50) NOT NULL ,
    owner_id VARCHAR2(25) ,
    statutory_detail_id NUMBER ,
    address_id NUMBER NOT NULL
    DROP TABLE BusEntityRoles;
    CREATE TABLE BusEntityRoles
    business_entity_id VARCHAR2(25) NOT NULL,
    role_id VARCHAR2(10) NOT NULL,
    PRIMARY KEY (business_entity_id, role_id)
    INSERT
    INTO businessentities ( business_entity_id , business_entity_name, owner_id , statutory_detail_id , address_id)
    VALUES
    ( 'OWNER', 'OWNER Corporation Ltd', NULL , 1, 1 );
    INSERT
    INTO businessentities ( business_entity_id , business_entity_name, owner_id , statutory_detail_id , address_id)
    VALUES
    ( 'ALL_IN_ALL', 'ALL IN ALL Corporation Ltd', 'OWNER' , 2, 2 );
    INSERT INTO busentityroles(business_entity_id, role_id) VALUES ('TEST' , 'OWNER');
    INSERT INTO busentityroles (business_entity_id,role_id) VALUES ('TEST','VENDOR');
    INSERT INTO busentityroles(business_entity_id, role_id) VALUES ('ALL_IN_ALL' , 'VENDOR');
    SELECT *
    FROM
    (SELECT raw_sql_.business_entity_id, raw_sql_.business_entity_name, raw_sql_.owner_id, raw_sql_.address_id,
    rownum raw_rnum_
    FROM
    (SELECT *
    FROM BusinessEntities
    WHERE (business_entity_id IN
    (SELECT business_entity_id
    FROM BusinessEntities
    WHERE business_entity_id = 'OWNER'
    OR owner_id = 'ALL_IN_ALL'
    AND business_entity_id NOT IN
    (SELECT business_entity_id FROM BusEntityRoles
    ORDER BY business_entity_id ASC
    ) raw_sql_
    WHERE rownum <= 5
    WHERE raw_rnum_ > 0;
    OUTPUT Before Analyzing
    BUSINESS_ENTITY_ID: OWNER
    BUSINESS_ENTITY_NAME: NULL
    OWNER_ID: OWNER
    ADDRESS_ID: NULL
    RAW_RNUM_: 1
    Note: There is no record in the table with the value business_entity_id as 'OWNER' and OWNER_ID as 'OWNER' and the address_id as NULL
    OUTPUT : After analyzed the table Using the below mentioned command
    ANALYZE TABLE "BUSENTITYSUPPLYCHAINROLES" ESTIMATE STATISTICS
    ANALYZE TABLE "BUSINESSENTITIES" ESTIMATE STATISTICS
    BUSINESS_ENTITY_ID: OWNER
    BUSINESS_ENTITY_NAME: OWNER Corporation Ltd
    OWNER_ID: NULL
    ADDRESS_ID: 1
    RAW_RNUM_: 1
    Any clue why Oracle 11g is behaving like this.

    Hi,
    it's a good practice to give aliases for tables, as well as name query blocks. Here it is (and formatted for convinience):
    select --/*+ gather_plan_statistics optimizer_features_enable('10.2.0.4') */
      from (select /*+ qb_name(v2) */
                   raw_sql_.business_entity_id
                  ,raw_sql_.business_entity_name
                  ,raw_sql_.owner_id
                  ,raw_sql_.address_id
                  ,rownum raw_rnum_
              from (select /*+ qb_name(v1) */ *
                      from businessentities b1
                     where (b1.business_entity_id in
                           (select /*+ qb_name(in) */ b2.business_entity_id
                               from businessentities b2
                              where business_entity_id = 'OWNER'
                                 or owner_id = 'ALL_IN_ALL'
                                and business_entity_id not in
                                   (select /*+ qb_name(not_in) */ r.business_entity_id from busentityroles r)))
                     order by business_entity_id asc) raw_sql_
             where rownum <= 5)
    where raw_rnum_ > 0;You are facing some bug - definitely - and, possibly, it is caused by [join elimination|http://optimizermagic.blogspot.com/2008/06/why-are-some-of-tables-in-my-query.html]. As a workaround you should rewrite the query to eliminate unnecessary join manually; or you may include a hint to not eliminate join (it's not documented):
    SQL>
    select -- /*+ gather_plan_statistics optimizer_features_enable('10.2.0.4') */
      from (select /*+ qb_name(v2)  */
                   raw_sql_.business_entity_id
                  ,raw_sql_.business_entity_name
                  ,raw_sql_.owner_id
                  ,raw_sql_.address_id
                  ,rownum raw_rnum_
              from (select /*+ qb_name(v1) no_eliminate_join(b1) */ *
                      from businessentities b1
                     where (b1.business_entity_id in
                           (select /*+ qb_name(in) */ b2.business_entity_id
                               from businessentities b2
                              where business_entity_id = 'OWNER'
                                 or owner_id = 'ALL_IN_ALL'
                                and business_entity_id not in
                                   (select /*+ qb_name(not_in) */ r.business_entity_id from busentityroles r)))
                     order by business_entity_id asc) raw_sql_
             where rownum <= 5)
    20   where raw_rnum_ > 0;
    BUSINESS_ENTITY_ID        BUSINESS_ENTITY_NAME                               OWNER_ID                  ADDRESS_ID  RAW_RNUM_
    OWNER                     OWNER Corporation Ltd                                                                 1          1Strange thing is executing a transformed query gives correct result too:
    SELECT "from$_subquery$_001"."BUSINESS_ENTITY_ID" "BUSINESS_ENTITY_ID",
           "from$_subquery$_001"."BUSINESS_ENTITY_NAME" "BUSINESS_ENTITY_NAME",
           "from$_subquery$_001"."OWNER_ID" "OWNER_ID",
           "from$_subquery$_001"."ADDRESS_ID" "ADDRESS_ID",
           "from$_subquery$_001"."RAW_RNUM_" "RAW_RNUM_"
      FROM  (SELECT /*+ QB_NAME ("V2") */
                    "RAW_SQL_"."BUSINESS_ENTITY_ID" "BUSINESS_ENTITY_ID",
                    "RAW_SQL_"."BUSINESS_ENTITY_NAME" "BUSINESS_ENTITY_NAME",
                    "RAW_SQL_"."OWNER_ID" "OWNER_ID","RAW_SQL_"."ADDRESS_ID" "ADDRESS_ID",
                    ROWNUM "RAW_RNUM_"
               FROM  (SELECT /*+ QB_NAME ("V1") */
                            "SYS_ALIAS_1"."BUSINESS_ENTITY_ID" "BUSINESS_ENTITY_ID",
                            "SYS_ALIAS_1"."BUSINESS_ENTITY_NAME" "BUSINESS_ENTITY_NAME",
                            "SYS_ALIAS_1"."OWNER_ID" "OWNER_ID",
                            "SYS_ALIAS_1"."STATUTORY_DETAIL_ID" "STATUTORY_DETAIL_ID",
                            "SYS_ALIAS_1"."ADDRESS_ID" "ADDRESS_ID"
                       FROM "TIM"."BUSINESSENTITIES" "SYS_ALIAS_1"
                      WHERE ("SYS_ALIAS_1"."BUSINESS_ENTITY_ID"='OWNER'
                          OR "SYS_ALIAS_1"."OWNER_ID"='ALL_IN_ALL' AND  NOT
                             EXISTS (SELECT /*+ QB_NAME ("NOT_IN") */ 0
                                       FROM "TIM"."BUSENTITYROLES" "R"
                                      WHERE "R"."BUSINESS_ENTITY_ID"="SYS_ALIAS_1"."BUSINESS_ENTITY_ID")
                      ORDER BY "SYS_ALIAS_1"."BUSINESS_ENTITY_ID") "RAW_SQL_"
             WHERE ROWNUM<=5) "from$_subquery$_001"
    26   WHERE "from$_subquery$_001"."RAW_RNUM_">0
    27  /
    BUSINESS_ENTITY_ID        BUSINESS_ENTITY_NAME                               OWNER_ID                  ADDRESS_ID  RAW_RNUM_
    OWNER                     OWNER Corporation Ltd                                                                 1          1

Maybe you are looking for

  • Windows 7 sees iMac but iMac can't see Win7 in Finder

    I'm a brand new convert from the PC world to the Mac world and I'm trying my darndest to get this PC off my desk. I figured I would just get rid of the monitor and use remote desktop or CORD or something to control my PC through my new iMac. However,

  • K9N2 Diamond works with X2 3800+ but not Phenomii 940 with updated BIOS

    The system in question. MSI K9N2 Diamond Current BIOS 7375v 2.6, have also tried 2.5, 2.4, 2.3, 2.2 AMD Phenom II 940 2X 2Gb Corsair CM2X2048-6400C5 Antec True Power 750 Watt P.S. EVGA Nvidia GTX 260 GPU W.D. 300Gb HDD This system is about 6 months o

  • Insert Table of Contents?

    Is there a way to insert a table of contents into a PDF (by marking sections, or some other way)? If so, how? Also, if I PDF 2 seperate Word documents, and then combine them into one PDF, is there a way to update the ToC?

  • Cannot load ClassDiagram.cd on Visual Studio. "URI formats are not supported

    When I try to open a class diagram for my asp.net webforms project I get the following error. The Class Diagram (.cd) files get generated but I can't open them. I do have some classes that use the URI class but i don't really think that could be the

  • Safari crashes as soon as it is opened

    Help...Safari crashes as soon as it is opened.... here is the error report...Thanks in advance Date/Time: 2009-02-20 13:49:21.142 -0500 OS Version: 10.4.11 (Build 8S165) Report Version: 4 Command: Safari Path: /Applications/Safari.app/Contents/MacOS/