XE and 10g performance comparison

Hi all,
does anyone compared the performance of both systems? What I mean is, would the same query, on the same machine, on the same data and identic plans result in the same execution statistics, hence result in the same run-time on both systems. Or is there somekind of a undocumented bottleneck?
More precisely I would like to source out small domains of my data warehouse on machines running XE. I know that there are no bitmap indizes available, but I think that should be fine for small data sets (between 5mb and 1000mb).
Thanks in advance
Maik

Thanks for your responses. I did some measurements on the weekend comparing the performance of Oracle XE and Oracle 9.2.0.6.0, because I had no 10gR2 ready to hand. SGA, PGA, cache size, shared_pool_size were set to the same sizes.
The result was, that the XE performed 5-6 times slower than the same queries on the 9i database, even with exactly the same execution statistics, as you can see on the example below.
Does anyone has an idea where this run-time overhead is coming from?
Maik
XE:
Elapsed: 00:00:00.06
Statistics
     0 recursive calls
     0 db block gets
2567 consistent gets
     0 physical reads
     0 redo size
2860 bytes sent via SQL*Net to client
     461 bytes received via SQL*Net from client
     9 SQL*Net roundtrips to/from client
     0 sorts (memory)
     0 sorts (disk)
     115 rows processed
9i:
Elapsed: 00:00:00.01
Statistics
     0 recursive calls
     0 db block gets
2567 consistent gets
     0 physical reads
     0 redo size
2754 bytes sent via SQL*Net to client
     576 bytes received via SQL*Net from client
     9 SQL*Net roundtrips to/from client
     1 sorts (memory)
     0 sorts (disk)
     115 rows processed

Similar Messages

  • Looking for Performance Comparisons Between JRockit 6 and Sun Java SE 6

    Hello,
    Can someone point me to some performance comparisons (benchmarks, etc.) between the JRockit and Sun JVMs?
    Thanks in advance.

    Hi Ben.
    Before I send to to the SPEC sites (which can be a tad hard to parse) I must ask - What application or type of application are you interested in? The answer will vary a bit depending on what you need.

  • Performance comparison of J2sdkee1.3.1's JMS and iPlanet MQ 2.0

    I am evaluating two JMS APIs: The free one comes with J2sdkee 1.3.1 and the iPlanet Message Queue for Java 2.0 (free for development and evaluation, not free on Production environment).
    I created two JSP pages running under Tomcat 3.3. One JSP page is calling a Java class 1 which uses j2sdkee1.3.1 JMS API: it creates InitialContext() and lookups for QueueConnectionFactory & Queue, then sends a text message to the Queue.
    I did a little performance improvement by putting this process into a static method init(), so it will be called only once. The latter request will only send message.
    The second JSP page is calling a Java class 2 which doesn't use JNDI, instead, it calls the new QueueConnectionFactory/QueueConnection classes provided by iPlanet MQ API.
    I found out that InitialContext() call and lookup process is taking quite a long time in the first case. After that, sending message is quite fast. However, if "j2ee" is shutdown in the middle, the JSP page can't recover unless I restarted Tomcat server.
    The performance of iPlanet MQ API is pretty good even if the QueueConnectionFactory/QueueConnection classes are created for each request. And it can recover after the Broker is restarted.
    Anybody experienced in using J2sdkee1.3.1 JMS API? If you know a better way to improve performance other than the static method init() which can't recover, please share your information. Appreciate it.
    Thanks,
    Ye

    Your performance comparison should be identical in all ways except for the particular server you are trying to evaluate. which should be relatively painless, given the use of JNDI.
    At the very least, ignore the JNDI lookup in your first test.
    I have found the j2ee JMS provider (the free one) to be quite slow, and also have found a bug with the shutdown and startup process changing the message order. which is a fundamental error.
    I have used IBM MQ (websphere MQ) and found it to be very fast and worked as expected. I have not used their pub/sub product (which i suspect is based on Talarian.)
    I favour servers built in native code, and integrate using JMS. just like I prefer Oracle over a pure Java RDBMS, but like the ease of integration offered with JDBC.
    I would avoid webstyle start-up companies like Iplanet. That joint effort seems like a desperate attempt at reviving Netscape thru technology, rather than thru a business concept.

  • SQL performance 9i and 10g

    Hi guys,
    I have question regarding sql fetching slow response issue in 10g compared to 9i. Have enabled the 10046 trace the actual CPU and Elapsed time of that query.
    cpu = cpu time in seconds executing
    elapsed = elapsed time in seconds executing
    rows = number of rows processed by the fetch or execute call
    SQL == Running on 9i
    call count cpu elapsed disk query current rows
    Parse 1 0.01 0.01 0 0 0 0
    Execute 1 0.00 0.00 0 0 0 0
    Fetch 13295 1.39 1.55 513 14742 0 13294
    total 13297 1.40 1.56 513 14742 0 13294
    SQL == Running on 10g
    call count cpu elapsed disk query current rows
    Parse 1 0.01 0.00 0 0 0 0
    Execute 1 0.00 0.00 0 0 0 0
    Fetch 13305 1.41 1.32 0 14621 0 13304
    total 13307 1.42 1.32 0 14621 0 13304
    They are running quite fast in 9i and 10g Database with the trace report. However, there has slow response issue on 10g.
    E.g SQL> set time on
    SQL> set timing on
    ---- fetching records on screen
    ---- truncated
    13304 returned.
    00:15:21
    SQL>
    In 9i, it only takes 2 mins to return the sqlplus prompt, but take at least 15 mins to return in 10g. Do you have any idea?
    I have raised the issue with Oracle Support, the the OSS said.. your 10046 trace is good and take only 1-2 sec. And he didn't follow after that. Please help if you have idea. Thanks
    Best Regards,
    Vbeer.

    Hi Charles,
    Oracle Version 10.2.0.3
    NAME TYPE VALUE
    statistics_level string TYPICAL
    NAME TYPE VALUE
    optimizer_dynamic_sampling integer 2
    In 10g raw trace file of 10046:
    <--QUERY-->
    END OF STMT
    PARSE #1:c=10000,e=4193,p=0,cr=0,cu=0,mis=1,r=0,dep=0,og=1,tim=21234109349008
    BINDS #1:
    EXEC #1:c=0,e=115,p=0,cr=0,cu=0,mis=0,r=0,dep=0,og=1,tim=21234109349329
    WAIT #1: nam='SQL*Net message to client' ela= 3 driver id=1650815232 #bytes=1 p3=0 obj#=77206 tim=21234109349392
    WAIT #1: nam='SQL*Net message from client' ela= 669 driver id=1650815232 #bytes=1 p3=0 obj#=77206 tim=21234109350166
    WAIT #1: nam='SQL*Net message to client' ela= 0 driver id=1650815232 #bytes=1 p3=0 obj#=77206 tim=21234109350353
    WAIT #1: nam='SQL*Net more data to client' ela= 12 driver id=1650815232 #bytes=2161 p3=0 obj#=77206 tim=21234109350403
    FETCH #1:c=0,e=224,p=0,cr=4,cu=0,mis=0,r=1,dep=0,og=1,tim=21234109350428
    WAIT #1: nam='SQL*Net message from client' ela= 149 driver id=1650815232 #bytes=1 p3=0 obj#=77206 tim=21234109350613
    WAIT #1: nam='SQL*Net more data from client' ela= 9 driver id=1650815232 #bytes=524 p3=0 obj#=77206 tim=21234109350665
    WAIT #0: nam='SQL*Net message to client' ela= 1 driver id=1650815232 #bytes=1 p3=0 obj#=77206 tim=21234109350737
    WAIT #0: nam='SQL*Net more data to client' ela= 9 driver id=1650815232 #bytes=2524 p3=0 obj#=77206 tim=21234109350774
    WAIT #0: nam='SQL*Net message from client' ela= 5199 driver id=1650815232 #bytes=1 p3=0 obj#=77206 tim=21234109355996
    WAIT #1: nam='SQL*Net message to client' ela= 1 driver id=1650815232 #bytes=1 p3=0 obj#=77206 tim=21234109356058
    FETCH #1:c=0,e=48,p=0,cr=1,cu=0,mis=0,r=1,dep=0,og=1,tim=21234109356084
    WAIT #1: nam='SQL*Net message from client' ela= 61 driver id=1650815232 #bytes=1 p3=0 obj#=77206 tim=21234109356177
    WAIT #0: nam='SQL*Net message to client' ela= 1 driver id=1650815232 #bytes=1 p3=0 obj#=77206 tim=21234109356218
    WAIT #0: nam='SQL*Net message from client' ela= 4931 driver id=1650815232 #bytes=1 p3=0 obj#=77206 tim=21234109361179
    WAIT #1: nam='SQL*Net message to client' ela= 0 driver id=1650815232 #bytes=1 p3=0 obj#=77206 tim=21234109361248
    FETCH #1:c=0,e=43,p=0,cr=1,cu=0,mis=0,r=1,dep=0,og=1,tim=21234109361272
    WAIT #1: nam='SQL*Net message from client' ela= 81 driver id=1650815232 #bytes=1 p3=0 obj#=77206 tim=21234109361388
    WAIT #0: nam='SQL*Net message to client' ela= 1 driver id=1650815232 #bytes=1 p3=0 obj#=77206 tim=21234109361447
    WAIT #0: nam='SQL*Net message from client' ela= 5057 driver id=1650815232 #bytes=1 p3=0 obj#=77206 tim=21234109366540
    WAIT #1: nam='SQL*Net message to client' ela= 1 driver id=1650815232 #bytes=1 p3=0 obj#=77206 tim=21234109366602
    FETCH #1:c=0,e=52,p=0,cr=1,cu=0,mis=0,r=1,dep=0,og=1,tim=21234109366629
    WAIT #1: nam='SQL*Net message from client' ela= 75 driver id=1650815232 #bytes=1 p3=0 obj#=77206 tim=21234109366737
    WAIT #0: nam='SQL*Net message to client' ela= 1 driver id=1650815232 #bytes=1 p3=0 obj#=77206 tim=21234109366778
    WAIT #0: nam='SQL*Net message from client' ela= 4913 driver id=1650815232 #bytes=1 p3=0 obj#=77206 tim=21234109371739
    WAIT #1: nam='SQL*Net message to client' ela= 0 driver id=1650815232 #bytes=1 p3=0 obj#=77206 tim=21234109371791
    FETCH #1:c=0,e=42,p=0,cr=1,cu=0,mis=0,r=1,dep=0,og=1,tim=21234109371815
    WAIT #1: nam='SQL*Net message from client' ela= 64 driver id=1650815232 #bytes=1 p3=0 obj#=77206 tim=21234109371911
    WAIT #0: nam='SQL*Net message to client' ela= 0 driver id=1650815232 #bytes=1 p3=0 obj#=77206 tim=21234109371947
    WAIT #0: nam='SQL*Net message from client' ela= 95474 driver id=1650815232 #bytes=1 p3=0 obj#=77206 tim=21234109467455
    WAIT #1: nam='SQL*Net message to client' ela= 1 driver id=1650815232 #bytes=1 p3=0 obj#=77206 tim=21234109467536
    FETCH #1:c=0,e=58,p=0,cr=1,cu=0,mis=0,r=1,dep=0,og=1,tim=21234109467563
    WAIT #1: nam='SQL*Net message from client' ela= 248 driver id=1650815232 #bytes=1 p3=0 obj#=77206 tim=21234109467848
    WAIT #0: nam='SQL*Net message to client' ela= 1 driver id=1650815232 #bytes=1 p3=0 obj#=77206 tim=21234109467893
    WAIT #0: nam='SQL*Net message from client' ela= 5526 driver id=1650815232 #bytes=1 p3=0 obj#=77206 tim=21234109473480
    WAIT #1: nam='SQL*Net message to client' ela= 3 driver id=1650815232 #bytes=1 p3=0 obj#=77206 tim=21234109473716
    FETCH #1:c=0,e=143,p=0,cr=1,cu=0,mis=0,r=1,dep=0,og=1,tim=21234109473761
    WAIT #1: nam='SQL*Net message from client' ela= 148 driver id=1650815232 #bytes=1 p3=0 obj#=77206 tim=21234109473979
    WAIT #0: nam='SQL*Net message to client' ela= 0 driver id=1650815232 #bytes=1 p3=0 obj#=77206 tim=21234109474068
    WAIT #0: nam='SQL*Net message from client' ela= 5516 driver id=1650815232 #bytes=1 p3=0 obj#=77206 tim=21234109479623
    WAIT #1: nam='SQL*Net message to client' ela= 1 driver id=1650815232 #bytes=1 p3=0 obj#=77206 tim=21234109479745
    FETCH #1:c=0,e=84,p=0,cr=1,cu=0,mis=0,r=1,dep=0,og=1,tim=21234109479781
    WAIT #1: nam='SQL*Net message from client' ela= 126 driver id=1650815232 #bytes=1 p3=0 obj#=77206 tim=21234109479950
    WAIT #0: nam='SQL*Net message to client' ela= 0 driver id=1650815232 #bytes=1 p3=0 obj#=77206 tim=21234109479996
    WAIT #0: nam='SQL*Net message from client' ela= 182929 driver id=1650815232 #bytes=1 p3=0 obj#=77206 tim=21234109662981
    WAIT #1: nam='SQL*Net message to client' ela= 2 driver id=1650815232 #bytes=1 p3=0 obj#=77206 tim=21234109663141
    FETCH #1:c=0,e=100,p=0,cr=1,cu=0,mis=0,r=1,dep=0,og=1,tim=21234109663177
    WAIT #1: nam='SQL*Net message from client' ela= 139 driver id=1650815232 #bytes=1 p3=0 obj#=77206 tim=21234109663368
    WAIT #0: nam='SQL*Net message to client' ela= 0 driver id=1650815232 #bytes=1 p3=0 obj#=77206 tim=21234109663434
    WAIT #0: nam='SQL*Net message from client' ela= 5593 driver id=1650815232 #bytes=1 p3=0 obj#=77206 tim=21234109669069
    WAIT #1: nam='SQL*Net message to client' ela= 2 driver id=1650815232 #bytes=1 p3=0 obj#=77206 tim=21234109669240
    FETCH #1:c=0,e=110,p=0,cr=1,cu=0,mis=0,r=1,dep=0,og=1,tim=21234109669282
    WAIT #1: nam='SQL*Net message from client' ela= 167 driver id=1650815232 #bytes=1 p3=0 obj#=77206 tim=21234109669506
    WAIT #0: nam='SQL*Net message to client' ela= 1 driver id=1650815232 #bytes=1 p3=0 obj#=77206 tim=21234109669597
    WAIT #0: nam='SQL*Net message from client' ela= 5505 driver id=1650815232 #bytes=1 p3=0 obj#=77206 tim=21234109675138
    WAIT #1: nam='SQL*Net message to client' ela= 1 driver id=1650815232 #bytes=1 p3=0 obj#=77206 tim=21234109675213
    FETCH #1:c=0,e=56,p=0,cr=1,cu=0,mis=0,r=1,dep=0,og=1,tim=21234109675239
    WAIT #1: nam='SQL*Net message from client' ela= 76 driver id=1650815232 #bytes=1 p3=0 obj#=77206 tim=21234109675351
    Cheers,
    Vbeer

  • Performance comparisons of DES and AES

    Hi,
    Has anyone gathered data in regards to performance comparison of AES vs DES using the JCE in java?
    I would be interested in finding which is faster.
    Thanks,
    Dan

    Oh, sorry by the truncated table. I've pasted an abridged version of the "openssl speed" output.
    I will paste the unabridged version of "openssl speed des" output (openssl is a C crypto toolkit, not a Java toolkit).
    To get the most accurate results, try to run this
    program when this computer is idle.
    First we calculate the approximate speed ...
    Doing des cbc 20971520 times on 16 size blocks: 20971520 des cbc's in 8.11s
    Doing des cbc 5242880 times on 64 size blocks: 5242880 des cbc's in 7.97s
    Doing des cbc 1310720 times on 256 size blocks: 1310720 des cbc's in 7.86s
    Doing des cbc 327680 times on 1024 size blocks: 327680 des cbc's in 7.78s
    Doing des cbc 40960 times on 8192 size blocks: 40960 des cbc's in 7.24s
    Doing des ede3 6990506 times on 16 size blocks: 6990506 des ede3's in 6.33s
    Doing des ede3 1747626 times on 64 size blocks: 1747626 des ede3's in 6.31s
    Doing des ede3 436906 times on 256 size blocks: 436906 des ede3's in 6.27s
    Doing des ede3 109226 times on 1024 size blocks: 109226 des ede3's in 6.26s
    Doing des ede3 13653 times on 8192 size blocks: 13653 des ede3's in 6.08s
    OpenSSL 0.9.7d 17 Mar 2004
    built on: Thu Apr 22 13:21:37 2004
    options:bn(64,32) md2(int) rc4(idx,int) des(idx,cisc,4,long) aes(partial) idea(int) blowfish(idx)
    compiler: cl  /MD /W3 /WX /G5 /Ox /O2 /Ob2 /Gs0 /GF /Gy /nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -DDSO_WIN32 -DBN_ASM -DMD5_ASM -DSHA1_ASM -DRMD160_ASM /Fdout32dll -DOPENSSL_NO_KRB5
    available timing options: TIMEB HZ=1000
    timing function used: ftime
    The 'numbers' are in 1000s of bytes per second processed.
    type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes
    des cbc          41374.15k    42106.20k    42695.55k    43123.55k    46377.93k
    des ede3         17675.11k    17719.91k    17849.97k    17852.74k    18398.65k

  • Performance comparison between using sql and pl/sql for same purpose

    Hi All,
    I have to do some huge inserts into a table from some other tables. I have 2 option:
    Option 1
    ======
    a. Declare a cusor for a query involving all source tables, this will return the data to be populated into target
    b. Use a cursor for loop to loop through all the records in the cursor
    c. for each iteration of the loop, populate target columns, do any calculations/function calls required to populate derived columns, and then insert the resulting record into target table
    Option 2
    ======
    Just write a big single "Insert Into ..... Select ..." statement, doing alll calculations/funtion calls in the select statement generating the source data.
    Now my question is ; which option is fast? and why. This operation is performace critical so I need the option which will run faster. Can anybody help???
    Thanks in Advance.

    user9314072 wrote:
    while the above comments are vaild, you should concider maintainability in you code. Even if you can write the sql it might be the code becomes complex making tuning very dificult, and derade performance.Beg to differ on that. Regardless of complexity of code, SQL is always faster than PL/SQL when dealing with SQL data. The reason for that is that PL/SQL still needs to use SQL anyway for row retrieval, and in addition it needs to copy row data from the buffer cache into the PL/SQL PGA. This is an overhead that does not exist in SQL.
    So if you are processing a 100 million rows with a complex 100 line SQL statement, versus a 100 million rows 100 line PL/SQL procedure, SQL will always be faster.
    It is a trade off, my experiance is large SQL's 100's lines long become hard to manage. You need to ask yourself why there are 100's of line of SQL. This points to an underlying problem. A flaky data model is very likely the cause. Or not using SQL correctly. Many times a 100 line SQL can be changed to a 10 liner by introducing different logic that solves the exact same problem easier and faster (e.g. using analytical SQL, thinking "+out-of-the-box+").
    Also, 100's of line of SQL points to a performance issue always. And it does not matter where you move this code logic to PL/SQL or Java or elsewhere, the performance problem will remain. Moving the problem from SQL to PL/SQL or Java does not reduce the number of rows to process, or make a significant change in the number of CPU instructions to be executed. And there's the above overhead mentioned - pulling SQL data into a client memory segment for processing (an overhead that does not exist using SQL).
    So how do you address this then? Assuming the data model is correct, then there are 2 primary methods to address the 100's of SQL lines and its associated performance problem.
    Modularise the SQL. Make the 100's of lines easier to maintain and understand. This can be done using VIEWS and the SQL WITH clause.
    As for the associated performance issue - materialised views comes to mind as an excellent method to address this type of problem.
    my advice is keep things simple, because soon or later you will need to change the code.I'm all for that - but introducing more moving parts like PL/SQL or Java and ref cursors and bulk fetching and so on.. how does that reduce complexity?
    SQL is the first and best place to solve row crunching problems. Do not be fooled into thinking that you can achieve that same performance using PL/SQL or Java.

  • Upgrade 9i to 10g Performance Issue

    Hi All,
    DBA team recently upgraded the database from 9i to 10g (Oracle Database 10g Enterprise Edition Release 10.2.0.2.0 - 64bi).
    There is a process as follows
    Mainframe --> Flat file --> (Informatica) --> Oracle DB --> (processing through SPs) --> Report
    The whole process normally used to take 1.5 - 2 hrs which is now taking 4-5 hrs after 9i to 10g upgrade.
    I tried searching on Google but could not find any detailed procedure to root out the cause. Below is the link of such an instance-
    http://jonathanlewis.wordpress.com/2007/02/02/10g-upgrade/
    Can someone suggest where to start digging to find out the reason behind the slowdown (if possible, please tell the detailed procedure or reference)?
    It is to be noted that there was no other change besides Database upgrade. Also, for about 20 days after the upgrade the whole process took near 1 hr (which was a pleasnt gain) but afterward it shoot up to 4-5 hrs suddenly and since then its taking same time.
    Thanks.

    Without more information (Statspack reports, AWR reports, or at least query plans), it's going to be exceptionally hard to help you.
    There are dozens, more likely hundreds, of parameters which change between 9i and 10g. And one of which could cause an individual query to perform worse. Plus, obviously something changed after the process was running quickly for 20 days, so there is some change on your side that would need to be identified and accounted for. There is no way for anyone to guess which of the hundreds of parameter and behavioral changes might have contributed to the problem, nor for us to guess what might have changed after 20 days in your database.
    If you can at least provide Statspace/ AWR reports, we may be able to help you out with a general tuning exercise. If you can identify what changed between the time the process was running well to the time it stopped running well, we may be able to help there as well.
    Justin

  • Error in checking FORALL and FOR performance in PL/SQL.!

    I am using FORALL and FOR construct' comparison in term of times taken by them(performance).
    This is whats my problem:
    SQL> SET SERVEROUTPUT ON;
    SQL> CREATE TABLE T1(C1 VARCHAR2(100));
    Table created.
    SQL> declare
    2 t1 number;
    3 t2 number;
    4 t3 number;
    5 begin
    6 for i in 1..10
    7 loop
    8 t1:=dbms_utility.get_time;
    9 insert into t1 values('RAVIKANTH');
    10 end loop;
    11 t2:=dbms_utility.get_time;
    12 forall i in 1..10
    13 insert into t1 values('RAVIKANTH');
    14 t3:=dbms_utility.get_time;
    15 dbms_output.put_line('Time taken for FOR'||TO_CHAR((t2-t1)/100));
    16 dbms_output.put_line('Time taken for FORALL'||TO_CHAR((t3-t1)/100));
    17 end;
    18 /
    declare
    ERROR at line 1:
    ORA-06550: line 13, column 1:
    PLS-00435: DML statement without BULK In-BIND cannot be used inside FORALL
    ... dear friends, please help me out in resolving this.
    Thanks in advance,
    Ravikanth K.

    Forall works with sets of data, like index-by tables. Here's an example:
    declare
       t1 number;
       t2 number;
       t3 number;
       type r_tt is table of t%rowtype
          index by binary_integer;
       tt r_tt;
    begin
       for i in 1..10
       loop
          t1:=dbms_utility.get_time; -- <----- this one should be outside the loop
          insert into t values('RAVIKANTH');
       end loop;
       t2:=dbms_utility.get_time;
       -- Load the index-by Table
       for i in 1..10
       loop
          tt (i).c1  := 'RAVIKANTH';
       end loop;
       -- Use this index-by Table to perform the Bulk Operation
       forall i in 1..10
          insert into t values tt (i);
       t3:=dbms_utility.get_time;
       dbms_output.put_line('Time taken for FOR'||TO_CHAR((t2-t1)/100));
       dbms_output.put_line('Time taken for FORALL'||TO_CHAR((t3-t1)/100));
    end;You probably won't see much difference in elapsed time. You testing a single insert again a bulk operation.
    btw: You have a local variable with the same name as your table

  • Oracle Database 10g: Performance Tuning guide

    Oracle Database 10g: Performance Tuning guide
    can any one help me where i can get above mentioned guide
    thanx in Advance
    regards,

    There's this wonderful website called Google: http://www.google.com. If you type in the exact same thing as this thread title, the first results listed will no doubt shock, surprise and amaze you ...
    Enjoy !!
    Cheers
    Richard Foote
    http://richardfoote.wordpress.com/

  • Oracle 9i and 10g differences in "group by"

    I found the sorting order is different in "group by" function of Oracle 9i and 10g.
    What is the reason?
    >>>>>>>>>>>>>>>>>>>>>
    SQL> create table t ( a number, b number);
    Table created.
    SQL> insert into t values (1,2);
    1 row created.
    SQL> insert into t values (100, 200);
    1 row created.
    SQL> insert into t values (10, 20);
    1 row created.
    >>>>>>>>>
    9i
    >>>>>>>>>
    SQL> select sum (b) , a from t group by a;
    SUM(B) A
    2 1
    20 10
    200 100
    >>>>>>>>>
    10g
    >>>>>>>>>
    SQL> select sum (b) , a from t group by a;
    SUM(B) A
    2 1
    200 100
    20 10

    in oracle "group by" doesn't sort. Not strictly true.
    Pre 10g had an implicit order by which was caused by the way the database engine performed it's group by operation.
    In 10g this has now been "refined" so that group by does what it says i.e. groups the data, without having the side effect of implicitly ordering the data.
    In reality if you want data in a particular order you should always specify an ORDER BY clause and never rely on the fact that Oracle used to suffer from an implicit side effect.
    ;)

  • Oracle 10g performance is slow

    Dear Exports
    how we can imporve the Oracle 10g performance........we are upgrading from Oracle 8 to Oracle 10g. Windows platform. and using Oracle developer 6 as front end .
    thanks in advance

    Do you have statistics gathered on the tables in the 8i database? Can you post the explain plan for the query in both databases?
    Since you know what SQL is having poor performance you can use TKPROF and SQL TRACE to see where your query is spending its time.
    Try the following:
    alter session set timed_statistics=true;
    alter session set max_dump_file_size=unlimited;
    alter session set tracefile_identifier='BAD_SQL';
    alter session set events '10046 trace name context forever, level 12';
    <insert sql with poor response time>
    disconnect
    Use the TKPROF utility on the file found in USER_DUMP_DEST that contains the string BAD_SQL.
    For information on how to interrupt the TKPROF output, see the following link.
    http://download-east.oracle.com/docs/cd/B19306_01/server.102/b14211/sqltrace.htm

  • Webservice implementation options and their performance ranking?

    If I am to to implement a webservice from/to SAP ERP,  I consider I have at least 3 options:
    1) Without PI - generating webservice from an RFC enabled wrapper function module (or bapi) inside SAP ERP
    2) With PI, exposing a WS using RFC adapter in PI that uses an RFC wrapper fm (or bapi) in ERP
    3) With PI, exposing a WS using ABAP proxy in ERP where the proxy uses non-RFC wrapper fm (or bapi).
    Using ABAP proxy is recommended (instead of RFC adapter) for syncronous interfaces between PI and SAP applications I have heard, but still wanted to take RFC adapter as option.
    Does anybody have experience about performance comparison in these options, if you have tested them all? Such a test must use same context e.g. using BAPI_CUSTOMER_GETDETAIL and you should have a client that can use them all (you probably have different wsdl for each and your client must calculate/trace response times. I know it is possible to monitor response times inside XI, but practically absolute response times can be calculated only in the client.
    To be honest, I am more interested in hearing performance difference between generating WS from ERP directly or from PI. Options 2) and 3) are just PI variations. But if you have tested options 2) and 3) as well please let me know.
    I was thinking of testing all scenarios myself, but if you have experience already, then you would save my time.
    br: Kimmo

    Hi Kimmo,
       Whatis the PI version you are using?
    I think you have other options too.
    4) Create a service interface and implement the enterprise service in the backend.
    http://www.sappi.sapag.co.in/flat-file-to-file-senario/creating-custom-enterprise-services-using-abap-and-xi/
    The option 1 that you mentioned and option 4 (That i have mentioned) will be of comparable performace.
    From a performance stand point, option 1(or 4) will be the fastest (at least in theory ) as we do not have any mediating system.
    But from a standards perspective, the option that i have suggested, is better (Read mre about SOA concepts to appreciate this more).
    General suggestion is that we should not be using PI for User- machine integration (which is your case).
    Best Regards,
    Ravikanth Talagana

  • Differences in 9i and 10g optimizer

    Hi,
    If I am migrating from 9i to 10g (10.2), what are the main changes between the optimizers of these 2 versions?
    Where can I find these things in manuals?
    Amy experiances?
    Please share.
    Thanks

    I'm not sure the specifics you are looking for are mentioned in the manuals. Check the 10g New Features manual and check for positings as you are doing.
    One issue we are seeing in 10g is a phenemenon called "bind peeking". This happens when SQL is using bind variables and generates a plan to execute the query. Later the same query text is executed with different values but isn't as efficeint a plan for those values (usually due to index use; sometimes the same situation that histograms are created for) and query performance is not good the second time. There is an undocumented intitalization parameter you can find on metalink (possibly here in OTN) that can turn bind peeking off.

  • Diffrence between  10g R1 RAC and 10g R2 RAC

    Good day to all,
    Any one here knows the diffrence between 10g R1 RAC and 10g R2 RAC in terms of Installation , Backup and recovery , Performance tunning and more ..............
    Please this treat this information is urgent
    Cheers
    Syed

    Please this treat this information is urgentOk, then what about the New features doc of 10gR2 reading urgently :
    http://download.oracle.com/docs/cd/B19306_01/server.102/b14214/chapter1.htm#NEWFTCH1
    Nicolas.

  • Performance Comparisons

    I ma looking for performance comparisons of WebLogic Server on Sun server compared
    to an Intel server. I am looking for the number of transactions per second that
    can be processed on say a 4-way Wintel server as opposed to a Sun UE or, better
    yet, a SunFire 280. Can anyone provide me with this information or point me towards
    a source where I can find it?
    Thanks!
    Greg

    Greg Wojtak wrote:
    >
    I ma looking for performance comparisons of WebLogic Server on Sun server compared
    to an Intel server. I am looking for the number of transactions per second that
    can be processed on say a 4-way Wintel server as opposed to a Sun UE or, better
    yet, a SunFire 280. Can anyone provide me with this information or point me towards
    a source where I can find it?
    Thanks!Good question in my opinion ... but this is
    a more generel question to java between Solaris and
    Wintel ..
    But seems you have an 4 Processor Intel Box ..
    and only a two processor Solaris Box ..
    and also the Ultra III processor have a by
    far lower taktrate , right ?
    The result should be obvious ..
    The more generell question is, whether
    the Java-Threads can ran so nice on
    all processors, as they do on Solaris ..
    and also whether you have so much memory
    as you can have under Solaris ?
    The Thread handling is still totaly different
    under Windows and Solaris .. Wintel makes a times
    sliced scheduling between the threads .. and
    Solaris uses still the concept of LWPs which
    are managed by the kernel .. not the threads
    themselved are scheduled by the kernel ..
    I recently heared during a SUN talk that SUN thought now, that
    the overhead in the kernel for the scheduling in not longer
    too high .. and they provide in the upcomming Solaris 2.9
    a new thread modell which does the scheduling inside of
    the kernel ..
    I would assume, that a heavy threaded application performs
    better on Solaris .. but this is only an assumption ..
    I never had the time to measure this ..
    Good luck !
         Frank

Maybe you are looking for

  • Check boxes in ALV

    My Requirement is for a list of OUTPUT results if the user checks the checkbox then i have to update certain entries. What would be a best way to do that ???? Dialog programming or a custom Grid in ALV.

  • Problem with Dynamic Converter

    Hi All I am new to Dynamic Converter. I want to convert a .doc and .txt file to html and pdf when I check in. For that I have installed Dynamic Conveter on my CS (10gR3 on linux). Now when i click on Get Conversion link on Content Info Page it gives

  • Macbook Pro screensaver not working in Vosemite

    On a brand new Macbook Pro, updated to Yosemite the screensaver does not work properly.. it works ok from a hot corner but on timeout,  it goes to a black screen. I read about his issue somewhere else but no one offered a solution.

  • Bind a front panel control to an item

    Hi all, I have a problem with selecting DataSocket in "Data Binding Selection" when I want to bind a front panel control to an item in another server such as an OPC Server. I want to know whether we connect to that item via OPC Server or DataSocket S

  • My "Save for Web" dialogue box is so huge the save button is off screen

    I'm running Windows XP with Photoshop CS6. Since the "Save" button runs off the edge of my monitor, I can't click Save. I also can't move the dialogue box up far enough to get to it before running out of screen space. I tried just hitting the enter k