Performance problem counting ocurrences

Hi,
I have an infocube with 5 characteristics (region,company,distribution center, route, customer) and 3 key figures, I have set one of this KF to average ( values different to 0), i am loading data from 16 months and 70 weeks. In my query i have set a calculated KF which is counting the ocurrences by the lowest characateristic to obtain it by granularity level therefore I always count the lowest detail (customer) there are aprox, 500K customers so my web templates are taking more than 10 minutes displaying the 12 months, I have looked up to make aggregations however the query is not using them anyway, has anyone had this kind of performance problems with such a low level of data (6 million for 12 months), Has anyone found a workaround to improve performance? I really expect someone has this experience and could help me out, this will depend on the life of BW in the organzation.
Please help me out!
Thanks in advance!

Hi,
First of all thanks for your advices, I have taken part of both in my solution, I am now not considering anymore to use the avg defined in the ratio, how ever i am still considering  it in the query, it is answering at least for now taking up to 10 mins. Now my exact requirement is to display the count of distinct customers groped by the upper levels. I have populated my infocube with 1 in my key figure however, it may be duplicated for a distribution center, company or region, therefore i have to find out the distinct customer. With SAP's "How to count occurences" i managed that, but it is not performing at an acceptable level , i have performed tests without the division between CKF customer/ CKF avg customer and found this is what is now slowing the query. I find the boolean evaluation might be more useful and less costly if you could hint a little more in how to do it, i would appreciate with points, also a change in the model could be costly by the front end part because of dependences with queries and web templates, i rather have it solved in BW workbench by partitioning, aggregation, new infocubes,  which is already a solution I have analyzed by disggregating the characteristics by totals in different infocubes with the same KF and then by query selecting the appropiate one. I was wondering if an initial routine could do the count distincts and group by with the same ratio for different characteristics so i do not rework the other configuration I already have

Similar Messages

  • Performance problem on wait event PX Deq: Execute Reply

    Hi everybody
    I encounter some performance problem, I've made a tkprof on a select statement and I saw that more than 95% of the elapsed time is due to event PX Deq: Execute Reply.
    This request is not CPU or paging consuming. What is this event and how could I reduce it ? Could it be a disk problem ?
    Thanks a lot, best regards
    Greg
    Here is a sample of my tkprof:
    call count cpu elapsed disk query current rows
    Parse 1 0.03 0.03 0 0 0 0
    Execute 1 0.22 2.16 68 177 12 0
    Fetch 2 0.17 511.97 38 40 0 1
    total 4 0.42 514.16 106 217 12 1
    Misses in library cache during parse: 1
    Optimizer mode: ALL_ROWS
    Parsing user id: 38
    Rows Row Source Operation
    1 PX COORDINATOR (cr=202 pr=103 pw=0 time=513984636 us)
    0 PX SEND QC (RANDOM) :TQ10003 (cr=0 pr=0 pw=0 time=0 us)
    0 HASH GROUP BY (cr=0 pr=0 pw=0 time=0 us)
    0 PX RECEIVE (cr=0 pr=0 pw=0 time=0 us)
    0 PX SEND HASH :TQ10002 (cr=0 pr=0 pw=0 time=0 us)
    0 HASH GROUP BY (cr=0 pr=0 pw=0 time=0 us)
    0 HASH JOIN (cr=0 pr=0 pw=0 time=0 us)
    0 BUFFER SORT (cr=0 pr=0 pw=0 time=0 us)
    0 PX RECEIVE (cr=0 pr=0 pw=0 time=0 us)
    0 PX SEND BROADCAST :TQ10000 (cr=0 pr=0 pw=0 time=0 us)
    473 TABLE ACCESS FULL DIM_CALL_DISTANCE (cr=8 pr=7 pw=0 time=27259 us)
    0 HASH JOIN (cr=0 pr=0 pw=0 time=0 us)
    0 BUFFER SORT (cr=0 pr=0 pw=0 time=0 us)
    0 PX RECEIVE (cr=0 pr=0 pw=0 time=0 us)
    0 PX SEND BROADCAST :TQ10001 (cr=0 pr=0 pw=0 time=0 us)
    4 TABLE ACCESS FULL DIM_AUDIT_CALL (cr=32 pr=31 pw=0 time=35037 us)
    0 PX BLOCK ITERATOR PARTITION: 1 16 (cr=0 pr=0 pw=0 time=0 us)
    0 TABLE ACCESS FULL FACT_CALL PARTITION: 1 48 (cr=0 pr=0 pw=0 time=0 us)
    Elapsed times include waiting on following events:
    Event waited on Times Max. Wait Total Waited
    ---------------------------------------- Waited ---------- ------------
    db file sequential read 67 0.05 0.95
    os thread startup 4 0.21 0.80
    PX Deq: Join ACK 4 0.00 0.00
    PX Deq: Parse Reply 3 0.13 0.17
    SQL*Net message to client 2 0.00 0.00
    PX Deq: Execute Reply 304 1.96 511.68
    db file scattered read 6 0.01 0.03
    PX qref latch 12 0.00 0.00
    SQL*Net message from client 2 94.93 94.94
    PX Deq: Signal ACK 6 0.10 0.11
    enq: PS - contention 1 0.00 0.00
    ********************************************************************************

    PX Deq: Execute Reply is an idle event associated with Parallel Query. Are your tables partitioned or have a degree greater then 1?
    The tables appear to be small in size. The overhead associated with parallel query generally hinders response time on queries involving small tables.

  • Performance problem with recordset object

    Hi,
    I have a performance problem with record set object. Is it true using RecordSet object as argument to the method will cause any perfomance degradation?
    here is my code.
    finStmtList = selectFinancialStatements(rs, shortFormat, latestOnly, true);
    I changed the code by populating the recordset in the method that called the above statement. previously the population of valueobject is within the select FinancialStatements.
    Now the method looks like
    finStmtList = selectFinancialStatements(ValueObject, shortFormat, latestOnly, true);
    Is this fix will result in any performance gain?

    Can any one suggest me that the above RecordSet Object contains large number of records that counts up to 1000 rows and having 30 columns? I tested the application. But the performance varies from time to time.
    Is there any other way to fine tune it?

  • Performance problem between Oracle.DataAccess v1 and v2

    Hi, I have serious performance problem with OracleDataReader when I use the GetValues method.
    My server is Oracle 9.2.0.7, and i use ODAC v10.2.0.221
    I create a dummy table for benchmark :
    create table test (a varchar2(50), b number)
    begin
    for i in 1..62359 loop
    insert into test values ('Values ' || i, i);
    end loop;
    commit;
    end;
    I use the same code for benchmark Framework v1 and Framework v2.
    Code :
    try {
    OracleConnection c = new OracleConnection("user id=saturne_dbo;password=***;data source=satedfx;");
    c.Open();
    go(c);
    c.Close();
    catch (Exception ex) {
    MessageBox.Show(ex.Message);
    private void go(IDbConnection c) {
    IDbCommand cmd = c.CreateCommand();
    cmd.CommandText = "select * from test";
    cmd.CommandType = CommandType.Text;
    DateTime dt = DateTime.Now;
    IDataReader reader = cmd.ExecuteReader();
    int count = 0;
    while (reader.Read()) {
    object[] fields = new object[reader.FieldCount];
    reader.GetValues(fields);
    count++;
    reader.Close();
    TimeSpan eps = DateTime.Now - dt;
    MessageBox.Show("Time " + count + " : " + eps.TotalSeconds);
    Result are :
    Framework v1 with OracleDataAccess 1.10.2.2.20 "Time 62359 : 0.5"
    Framework v2 with OracleDataAccess 2.10.2.2.20 "Time 62359 : 3.57" FACTOR 6 !!!!!
    I notice same problem with oleDb provider and Microsoft Oracle Client provider..
    It's a serious problem for my production server, the time calculation explode...
    Where is the explication ?
    Do u know solution ?

    Can you please try out following -
    1. Create a .NET 1.x DLL with your benchmark code. This will obviously use ODP.NET for .NET 1.x.
    2. Call this assembly routine from a .NET 1.x executable and note the results.
    3. Now call this assembly routine from a .NET 2.0 executable and note the results.
    The idea is to always use "ODP.NET for .NET 1.x" even in .NET 2.0 runtime. This will tell us whether the performance degradation is a runtime issue.

  • Performance problem with sdn_nn - new 10g install

    I am having a performance problem with sdn_nn after migrating to a new machine. The old Oracle version was 9.0.1.4. The new is 10g. The new machine is faster in general. Most (non-spatial) batch processes run in half the time. However, the below statement is radically slower. The below statement ran in 45 minutes before. On the new machine it hasn't finished after 10 hours. I am able to get a 5% sample of the customers to finish in 45 minutes.
    Does anyone have any ideas on how to approach this problem? Any chance something isn't installed correctly on the new machine (the nth version of the query finishe, albeit 20 times slower)?
    Appreciate any help. Thanks.
    - Jack
    create table nearest_store
    as
    select /*+ ordered */
    a.customer_id,
    b.store_id nearest_store,
    round(mdsys.sdo_nn_distance(1),4) distance
    from customers a,
    stores b
    where mdsys.sdo_nn(
    b.geometry,
    a.geometry,
    'sdo_num_res=1, unit=mile',
    1
    ) = 'TRUE'
    ;

    Dan,
    customers 110,000 (involved in this query)
    stores 28,000
    Here is the execution plan on the current machine:
    CREATE TABLE STATEMENT cost = 81947
    LOAD AS SELECT
    PX COORDINATOR
    PX SEND QC (RANDOM) :TQ10000
    ROW NESTED LOOPS
    1 1 PX BLOCK ITERATOR
    1 1ROW TABLE ACCESS FULL CUSTOMERS
    1 3 PARTITION RANGE ALL
    1 3 TABLE ACCESS BY LOCAL INDEX ROWID STORES
    DOMAIN INDEX STORES_SIDX
    I can't capture the execution plan on the old database. It is gone. I don't remember it being any different from the above (full scan customers, probe stores index once for each row in customers).
    I am trying the query without the create table (just doing a count). I'll let you know on that one.
    I am at 10.0.1.3.
    Here is how I created the index:
    create index stores_sidx
    on stores(geometry)
    indextype is mdsys.spatial_index LOCAL
    Note that the stores table is partitioned by range on store type. There are three store types (each in its own partition). The query returns the nearest store of each type (three rows per customer). This is by design (based on the documented behavior of sdo_nn).
    In addition to running the query without the CTAS, I am also going try running it on a different machine tonight. I let you know how that turns out.
    The reason I ask about the install, is that the Database Quick Installation Guide for Solaris says this:
    "If you intend to use Oracle JVM or Oracle interMedia, you must install the Oracle Database 10g Products installation type from the Companion CD. This installation optimizes the performance of those products on your system."
    And, the Database Installlation Guide says:
    "If you plan to use Oracle JVM or Oracle interMedia, Oracle strongly recommends that you install the natively compiled Java libraries (NCOMPs) used by those products from the Oracle Database 10g Companion CD. These libraries are required to improve the performance of the products on your platform."
    Based on that, I am suspicious that maybe I have the product installed on the new machine, but not correctly (forgot to set fast=true).
    Let me know if you think of anything else you'd like to see. Thanks.
    - Jack

  • Question for ORACLE EXPERTS!!! PERFORMANCE PROBLEM!!!

    I have 2 nodes on RAC. On node1 the following query run in 15 seconds and on node2 the same query run in 40 minutes. This is a big problem because we are migrating a SQL Server database to Oracle RAC 10gR2 (10.2.0.2) on HP-UX Itanium and we can´t finish the project because of this performance problem!!! PLEASE HELP ME ORACLE GURUS !!! I have opened a TAR at Metalink a 3 month ago,but they can´t help me with this. Can anyone explain this event to me please??? " gc cr multi block request 92011 0.33 737.49
    This is the query that i run on both nodes and this is the tkprof of the trace file when i run this on second node:
    select /*+ NO_PARALLEL(t) */ sum(t.saldo_em_real)
    from
    brcapdb2.titulo t
    call count cpu elapsed disk query current rows
    Parse 1 0.00 0.00 0 0 0 0
    Execute 1 0.00 0.00 0 0 0 0
    Fetch 1 13.76 790.26 0 107219 0 0
    total 3 13.76 790.26 0 107219 0 0
    Misses in library cache during parse: 1
    Optimizer mode: ALL_ROWS
    Parsing user id: 31
    Elapsed times include waiting on following events:
    Event waited on Times Max. Wait Total Waited
    ---------------------------------------- Waited ---------- ------------
    SQL*Net message to client 2 0.00 0.00
    SQL*Net message from client 2 0.02 0.02
    gc cr multi block request 92011 0.33 737.49
    gc current grant busy 1 0.00 0.00
    latch: KCL gc element parent latch 4 0.00 0.00
    latch: object queue header operation 17 0.00 0.01
    latch free 6 0.00 0.00
    gc remaster 9 1.94 9.00
    gcs drm freeze in enter server mode 19 1.97 30.52
    gc current block 2-way 10 0.61 2.72
    SQL*Net break/reset to client 1 0.01 0.01
    Please help me if you can!!
    Tks,
    Paulo.

    Elapsed times include waiting on following events:
    Event waited on Times Max. Wait Total Waited
    ---------------------------------------- Waited ---------- ------------
    SQL*Net message to client 2 0.00 0.00
    SQL*Net message from client 2 0.02 0.02
    gc cr multi block request 92011 0.33 737.49
    gc current grant busy 1 0.00 0.00
    latch: KCL gc element parent latch 4 0.00 0.00
    latch: object queue header operation 17 0.00 0.01
    latch free 6 0.00 0.00
    gc remaster 9 1.94 9.00
    gcs drm freeze in enter server mode 19 1.97 30.52
    gc current block 2-way 10 0.61 2.72
    SQL*Net break/reset to client 1 0.01 0.01There's lots of global cache traffic going on. All those multiblock transfers seem to be saturating the interconnect. Some things to consider:
    - Have a look at metalink note 3951017.8 for a possible fix
    - Check that your interconnect is properly configured
    - Try running the query with PARALLEL hint. This would mean doing disk I/O instead of buffer & interconnect I/O.
    edit: changed "without NOPARALLEL" to "with PARALLEL"
    Message was edited by:
    antti.koskinen

  • OCCI VS 2008 & OCCI 11.1.0.6.0  Performance Problem

    I have been using VS C++ 2003 in combination with the oracle instant client 10.2.0.4 in our tool. We now moved to VS C++ 2008 (Express Edition) and oracle instant client 11.1.0.6.0 as listed at
    [http://www.oracle.com/technology/tech/oci/occi/occidownloads.html]
    I noticed a significant performance change for even simple queries on using the 11.1.0.6.0 client.
    Does anybody else noticed any performance problems with the 11.1.0.6.0 client libraries for VS C++9(VS 2008) 32 bit?
    I made a small test program which just connects to the db instance and makes a simple select and afterwards iterate through the result and calculate count by just incrementing. Following is the output of the same program, first with the 11.1.0.6.0 client and afterwards with the 10.2.0.4.0 client.
    Testing OCCI
    Using Oracle Client:Oracle 11.1.0.6.0
    Connected to Server lsy_ext.world
    Version :Oracle9i Enterprise Edition Release 9.2.0.5.0 - Production
    With the Partitioning, OLAP and Oracle Data Mining options
    JServer Release 9.2.0.5.0 - Production
    beginning select :select * from schedule
    Current time and date: Tue Mar 17 13:05:27 2009
    Select finished:select * from schedule
    Current time and date: Tue Mar 17 13:05:31 2009
    beginning iteration through result
    Current time and date: Tue Mar 17 13:05:31 2009
    iteration finished
    Current time and date: Tue Mar 17 13:05:31 2009
    Total Data for
    select * from schedule
    Count = 578
    beginning select :select * from leg
    Current time and date: Tue Mar 17 13:05:31 2009
    Select finished:select * from leg
    Current time and date: Tue Mar 17 13:05:36 2009
    beginning iteration through result
    Current time and date: Tue Mar 17 13:05:36 2009
    iteration finished
    Current time and date: Tue Mar 17 13:05:48 2009
    Total Data for
    select * from leg
    Count = 981011
    Testing OCCI
    Using Oracle Client:Oracle 10.2.0.4.0
    Connected to Server lsy_ext.world
    Version :Oracle9i Enterprise Edition Release 9.2.0.5.0 - Production
    With the Partitioning, OLAP and Oracle Data Mining options
    JServer Release 9.2.0.5.0 - Production
    beginning select :select * from schedule
    Current time and date: Tue Mar 17 13:04:03 2009
    Select finished:select * from schedule
    Current time and date: Tue Mar 17 13:04:03 2009
    beginning iteration through result
    Current time and date: Tue Mar 17 13:04:03 2009
    iteration finished
    Current time and date: Tue Mar 17 13:04:03 2009
    Total Data for
    select * from schedule
    Count = 578
    beginning select :select * from leg
    Current time and date: Tue Mar 17 13:04:03 2009
    Select finished:select * from leg
    Current time and date: Tue Mar 17 13:04:03 2009
    beginning iteration through result
    Current time and date: Tue Mar 17 13:04:03 2009
    iteration finished
    Current time and date: Tue Mar 17 13:04:15 2009
    Total Data for
    select * from leg
    Count = 981011
    Apparently, each select statement takes round about 5 seconds with the 11 client libraries. Does anybody has an explanation for this?
    beginning select :select * from schedule
    Current time and date: Tue Mar 17 13:05:*27* 2009
    Select finished:select * from schedule
    Current time and date: Tue Mar 17 13:05:*31* 2009
    Thank you
    Benny
    Edited by: bennyvar on Mar 18, 2009 12:25 PM

    I started visual studio with logging turned on. Here are the results from the log file:
    <entry>
    <record>60</record>
    <time>2008/01/18 19:14:09.974</time>
    <type>Information</type>
    <source>Microsoft Visual Studio</source>
    <description>Entering function CVsPackageInfo::HrInstantiatePackage</description>
    <guid>{D601BB95-E404-4A8E-9F24-5C1A462426CE}</guid>
    </entry>
    <entry>
    <record>61</record>
    <time>2008/01/18 19:14:11.026</time>
    <type>Warning</type>
    <source>Microsoft Visual Studio Appid Stub</source>
    <description>CheckPackageSignature failed; invalid Package Load Key</description>
    <guid>{D601BB95-E404-4A8E-9F24-5C1A462426CE}</guid>
    </entry>
    <entry>
    <record>62</record>
    <time>2008/01/18 19:14:11.056</time>
    <type>Information</type>
    <source>Microsoft Visual Studio</source>
    <description>Begin package load [Oracle Developer Tools for Visual Studio .NET]</description>
    <guid>{D601BB95-E404-4A8E-9F24-5C1A462426CE}</guid>
    </entry>
    <entry>
    <record>63</record>
    <time>2008/01/18 19:14:16.273</time>
    <type>Error</type>
    <source>Microsoft Visual Studio</source>
    <description>SetSite failed for package [Oracle Developer Tools for Visual Studio .NET]</description>
    <guid>{D601BB95-E404-4A8E-9F24-5C1A462426CE}</guid>
    <hr>80004005 - E_FAIL</hr>
    </entry>
    <entry>
    <record>64</record>
    <time>2008/01/18 19:14:16.313</time>
    <type>Error</type>
    <source>Microsoft Visual Studio</source>
    <description>End package load [Oracle Developer Tools for Visual Studio .NET]</description>
    <guid>{D601BB95-E404-4A8E-9F24-5C1A462426CE}</guid>
    <hr>80004005 - E_FAIL</hr>
    </entry>

  • Performance problem querying multiple CLOBS

    We are running Oracle 8.1.6 Standard Edition on Sun E420r, 2 X 450Mhz processors, 2 Gb memory
    Solaris 7. I have created an Oracle Text indexes on several columns in a large table, including varchar2 and CLOB. I am simulating search engine queries where the user chooses to find matches on the exact phrase, all of the words (AND) and any of the words (OR). I am hitting performance problems when querying on multiple CLOBs using the OR, e.g.
    select count(*) from articles
    where contains (abstract , 'matter OR dark OR detection') > 0
    or contains (subject , 'matter OR dark OR detection') > 0
    Columns abstract and subject are CLOBs. However, this query works fine for AND;
    select count(*) from articles
    where contains (abstract , 'matter AND dark AND detection') > 0
    or contains (subject , 'matter AND dark AND detection') > 0
    The explain plan gives a cost of 2157 for OR and 14.3 for AND.
    I realise that multiple contains are not a good thing, but the AND returns sub-second, and the OR is taking minutes! The indexes are created thus:
    create index article_abstract_search on article(abstract)
    INDEXTYPE IS ctxsys.context parameters ('STORAGE mystore memory 52428800');
    The data and index tables are on separate tablespaces.
    Can anyone suggest what is going on here, and any alternatives?
    Many thanks,
    Geoff Robinson

    Thanks for your reply, Omar.
    I have read the performance FAQ already, and it points out single CONTAINS clauses are preferred, but I need to check 2 columns. Also, I don't just want a count(*), I will need to select field values. As you can see from my 2 queries, the first has multiple CLOB columns using OR, and the second AND, with the second taking that much longer. Even with only a single CONTAINS, the cost estimate is 5 times more for OR than for AND.
    Add an extra CONTAINS and it becomes 300 times more costly!
    The root table is 3 million rows, the 2 token tables have 6.5 and 3 million rows respectively. All tables have been fully analyzed.
    Regards
    Geoff

  • Performance problem: 1.000 queries over a 1.000.000 rows table

    Hi everybody!
    I have a difficult performance problem: I use JDBC over an ORACLE database. I need to build a map using data from a table with around 1.000.000 rows. My query is very simple (see the code) and takes an average of 900 milliseconds, but I must perform around 1.000 queries with different parameters. The final result is that user must wait several minutes (plus the time needed to draw the map and send it to the client)
    The code, very simplified, is the following:
    String sSQLCreateView =
    "CREATE VIEW " + sViewName + " AS " +
    "SELECT RIGHT_ASCENSION, DECLINATION " +
    "FROM T_EXO_TARGETS " +
    "WHERE (RIGHT_ASCENSION BETWEEN " + dRaMin + " AND " + dRaMax + ") " +
    "AND (DECLINATION BETWEEN " + dDecMin + " AND " + dDecMax + ")";
    String sSQLSentence =
    "SELECT COUNT(*) FROM " + sViewName +
    " WHERE (RIGHT_ASCENSION BETWEEN ? AND ?) " +
    "AND (DECLINATION BETWEEN ? AND ?)";
    PreparedStatement pstmt = in_oDbConnection.prepareStatement(sSQLSentence);
    for (int i = 0; i < 1000; i++)
    pstmt.setDouble(1, a);
    pstmt.setDouble(2, b);
    pstmt.setDouble(3, c);
    pstmt.setDouble(4, d);
    ResultSet rset = pstmt.executeQuery();
    X = rset.getInt(1);
    I have yet created index with RIGHT_ASCENSION and DECLINATION fields (trying different combinations).
    I have tried yet multi-threads, with very bad results
    Has anybody a suggestion ?
    Thank you very much!

    How many total rows are there likely to be in the View you create?
    Perhaps just do a select instead of a view, and loop thru the resultset totalling the ranges in java instead of trying to have 1000 queries do the job. Something like:
    int     iMaxRanges = 1000;
    int     iCount[] = new int[iMaxRanges];
    class Range implements Comparable
         float fAMIN;
         float fAMAX;
         float fDMIN;
         float fDMAX;
         float fDelta;
         public Range(float fASC_MIN, float fASC_MAX, float fDEC_MIN, float fDEC_MAX)
              fAMIN = fASC_MIN;
              fAMAX = fASC_MAX;
              fDMIN = fDEC_MIN;
              fDMAX = fDEC_MAX;
         public int compareTo(Object range)
              Range     comp = (Range)range;
              if (fAMIN < comp.fAMIN)
                   return -1;
              if (fAMAX > comp.fAMAX)
                   return 1;
              if (fDMIN < comp.fDMIN)
                   return -1;
              if (fDMAX > comp.fDMAX)
                   return 1;
              return 0;
    List     listRanges = new ArrayList(iMaxRanges);
    listRanges.add(new Range(1.05, 1.10, 120.5, 121.5));
    //...etc.
    String sSQL =
    "SELECT RIGHT_ASCENSION, DECLINATION FROM T_EXO_TARGETS " +
    "WHERE (RIGHT_ASCENSION BETWEEN " + dRaMin + " AND " + dRaMax + ") " +
    "AND (DECLINATION BETWEEN " + dDecMin + " AND " + dDecMax + ")";
    Statement stmt = in_oDbConnection.createStatement();
    ResultSet rset = stmt.executeQuery(sSQL);
    while (rset.next())
         float fASC = rset.getFloat("RIGHT_ASCENSION");
         flaot fDEC = rset.getFloat("DECLINATION");
         int iRange = Collections.binarySearch(listRanges, new Range(fASC, fASC, fDEC, fDEC));
         if (iRange >= 0)
              ++iCount[iRange];

  • Performance Problem After Upgrade

    Hi Gurus,
    We have successfully Upgrade our system R3 4.6c to ECC6, Database Oracle 10g on AIX.
    Now we are facing Performance Problem. when we are checking Tables are taking Huge time to update data.
    Regards,
    Darshan...

    Thanks! AC,
    Performance Problem is resolved.
    Now facing problem in RFC SAPXPG_DBDEST_ECCDB
    Logon     Connection Error
    Error Details     Error when opening an RFC connection
    Error Details     ERROR: SAP gateway connection failed. Is SAP gateway started?
    Error Details     LOCATION: SAP-Server eccci_LRP_00 on host eccci (wp 14)
    Error Details     COMPONENT: CPIC
    Error Details     COUNTER: 18
    Error Details     MODULE:
    Error Details     LINE:
    Error Details     RETURN CODE: 236
    Error Details     SUBRC: 0
    Error Details     RELEASE: 700
    Error Details     TIME: Tue Mar 17 11:57:01 2009
    Error Details     VERSION:
    Regards,
    Darshan..

  • Event ID 218 Copy of database 'Mailbox Database'- experienced a performance problem

    Hi,
    We have 16 GB of RAM for EXchange 2010 and 4 Processor and using iSCSI Starwind LUN.
    Event ID : 218
    Event Source : ExchangeStoreDB
    Event Category :Database Recovery
    the copy of database 'Mailbox Database - NYM' on this server experienced a performance problem. Failover returned the following
    error: here is only one copy of this mailbox database (Mailbox Database - NYM). Automatic recovery is not available.
    It occurs specially when the exchange backup start ; we are using window backup for taking exchange backup
    I can see warnning of ESE below the event 218 - Information Store (3912) Mailbox Database - NYM: A request to write to the file "D:\Program Files\Microsoft\Exchange Server\V14\Mailbox\Mailbox Database 0959355037\Mailbox Database 0959355037.edb" at
    offset 150801350656 (0x000000231c760000) for 32768 (0x00008000) bytes has not completed for 68 second(s). This problem is likely due to faulty hardware. Please contact your hardware vendor for further assistance diagnosing the problem.
    Also,
    1. How can I enable verbose logging to expert level for exchange MailboxDatabase.
    2. What type performace counter need to be set for exchange database in Performance Monitor
    Any Help ?
    Thanks
    Prakash

    We had the same issue on our mbx server with Exchange 2010 Ent SP3, Win Svr 2008 R2 SP1 running on VMware v5.1 with Exchange dbs mounted to the VM via iSCSI LUNs on our NetApp SAN.  
    We escalated the ticket, and the Microsoft Exchange escalation team stated that the EIDs of the database corruption and automatic recovery seem to point to a hardware issue.  And, they told us not to panic and that there was no need to rebuild the environment
    and migrate the databases immediately.  They instead asked us to focus all our efforts on solving the iSCSI environment issues, since each Exchange EID db corruption/ autorecovery would be preceded by some type of corresponding iSCI System EID.  
    We hence opened tickets with MS Storage Team and with NetApp support and worked on this ticket with input from all 3 groups.
    After about a month an a half of troubleshooting & trial error- with tickets open with NetApp, MS Storage Team, and MS Exchange team, we finally seem to have applied a configuration change that worked. 
    NetApp support referred us to the following article relating to VMware:
    http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=2039495
    So, per NetApp support and MS Storage team, do the following:
    1.    Manually dismount Exchange Databases on the mailbox server.
    2.    Open Device Manager, Network Adapters, VMXNET3 Ethernet Adapter #3, Properties
    3.    Change Small RX Buffers from the default 512 to the maximum 8192 using the drop down selector.
    4.    Change the RX Ring #1 from the default 1024 to the maximum of 4096 using the drop down selector.
    5.    Click OK and save the change.
    6.    Re-mount the Exchange Databases
    And, to our surprise, this seems to have done the trick.  It seems like the issue is an iSCSI-related NIC setting all along.
    Thanks,
    Detrich

  • Oracle performance problem -

    We are facing some critical performance problems with one of the
    tables. I have a table with the schema given below.When there
    are around 2 lakh entries in this table, if I give a select count
    (*) , it takes around 20 seconds to return the count. Where as
    any other table in the same database, returns the count in less
    than 2 seconds for around 1 lakh entries. I am not able to
    figure out where the performance bottle neck is.
    Configuration:
    Oracle 8.0.5 on Windows NT 4.0
    USER_NAME NOT NULL VARCHAR2(30)
    TASK_ID NUMBER // Unique
    TASK_NAME NOT NULL VARCHAR2(100)
    TERMINAL_NAME VARCHAR2(30)
    TASK_DATE DATE
    TASK_STATUS NOT NULL NUMBER
    PARENT_ID NUMBER
    NE_NAME NOT NULL VARCHAR2(30)
    ENM_JOBID VARCHAR2(30)
    CMD_CONTENT VARCHAR2(4000)
    CMD_RESPONSE VARCHAR2(4000)
    RESPONSE_TIME DATE
    TASK_TYPE NUMBER
    SCHEDULE_TIME DATE
    All the tables are present in the same table space. So
    I guess it could not be because of any disk access differences
    between tables. Have you guys faced any such problems ? Could
    this be because of the huge CMD_RESPONSE and CMD_CONTENT
    fields ?

    Thanks a lot.
    I would like to know , how I can optimise the performance when
    having longer records. Will increasing the block size help in
    getting better performance ? If so,is there any other
    disadvantage in increasing the block size.
    My actual requirement is to read all the records in the
    table. So, a static cursor is created on the server and I do a
    block fetch(SQLFetchScrolll). I use ODBC for this purpose. The
    first fetch takes a lot of time, around 50 seconds or so for 2
    lakh records. Any ideas how to optimise the same ???
    Best Regards,
    Vignesh

  • XMLAGG performance problems

    Hello,
    I've been having performance problems with one query using XMLAGG. Explain plan shows that all tables are joined using correct indexes - there is nothing wrong with it. After series of experiments with the query I found out that the problem is in use of XMLAGG function. It aggregates the data before submitting it to the result XML document.
    I there any way to generate something like
    <Main attr1="...">
    <el1>...</el1>
    <el2>...</el2>
    <SubElement>
    <row>row1 from the database</row>
    <row>row2 from the database</row>
    <row>rowN from the database</row>
    </SubElement>
    <Main>
    without using XMLAGG in the subquery or somehow switch the aggregation off? I dont really need the records to be aggregated, all I need is to be able to generate multiple record based XML in the subquery which would have normally failed on (single-row query returned more than one record exception) without XMLAGG.
    Thanks in advance
    Alexey

    TKPROF: Release 9.2.0.1.0 - Production on Wed Jan 31 15:21:34 2007
    Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
    Trace file: lnsqd1_ora_7350_perfoamance_test_01.trc
    Sort options: default
    count = number of times OCI procedure was executed
    cpu = cpu time in seconds executing
    elapsed = elapsed time in seconds executing
    disk = number of physical reads of buffers from disk
    query = number of buffers gotten for consistent read
    current = number of buffers gotten in current mode (usually for update)
    rows = number of rows processed by the fetch or execute call
    ALTER SESSION SET EVENTS '10046 trace name context forever, level 1'
    call count cpu elapsed disk query current rows
    Parse 0 0.00 0.00 0 0 0 0
    Execute 1 0.00 0.00 0 0 0 0
    Fetch 0 0.00 0.00 0 0 0 0
    total 1 0.00 0.00 0 0 0 0
    Misses in library cache during parse: 0
    Optimizer goal: ALL_ROWS
    Parsing user id: 113
    create table tmp_003
    as
    select a.*, 'NEW ' as eventtype
    from v_deal_xml a
    where a.deal_id in
    select a.pk_value
    from da_history a, gx_type b
    where a.evtime <= to_date('1/22/2007 12:59:26', 'MM/DD/RRRR HH24:MI:SS')
    and a.type_id = b.type_id
    and b.xmltype = 'GDP/DEAL'
    and a.eventtype = 'NEW'
    call count cpu elapsed disk query current rows
    Parse 1 0.12 0.12 0 60 1 0
    Execute 1 108.30 105.87 0 6343 1387 172
    Fetch 0 0.00 0.00 0 0 0 0
    total 2 108.42 106.00 0 6403 1388 172
    Misses in library cache during parse: 1
    Optimizer goal: ALL_ROWS
    Parsing user id: 113
    insert into tmp_003
    select a.*, 'UPDATE' as eventtype
    from v_deal_xml a
    where a.deal_id in
    select a.pk_value --b.xmltype, a.*
    from da_history a, gx_type b
    where a.evtime <= to_date('1/22/2007 12:59:26', 'MM/DD/RRRR HH24:MI:SS')
    and a.type_id = b.type_id
    and b.xmltype = 'GDP/DEAL'
    and a.eventtype = 'UPDATE'
    call count cpu elapsed disk query current rows
    Parse 1 0.13 0.13 0 60 0 0
    Execute 1 256.74 250.96 0 18752 3815 381
    Fetch 0 0.00 0.00 0 0 0 0
    total 2 256.87 251.09 0 18812 3815 381
    Misses in library cache during parse: 1
    Optimizer goal: ALL_ROWS
    Parsing user id: 113
    Rows Row Source Operation
    381 NESTED LOOPS (cr=1194 pr=0 pw=0 time=26458 us)
    381 VIEW VW_NSO_1 (cr=430 pr=0 pw=0 time=6665 us)
    381 SORT UNIQUE (cr=430 pr=0 pw=0 time=6285 us)
    381 MERGE JOIN (cr=430 pr=0 pw=0 time=3761 us)
    1 TABLE ACCESS BY INDEX ROWID GX_TYPE (cr=2 pr=0 pw=0 time=67 us)
    5 INDEX FULL SCAN XPKGX_TYPE (cr=1 pr=0 pw=0 time=24 us)(object id 71282)
    381 SORT JOIN (cr=428 pr=0 pw=0 time=3698 us)
    603 TABLE ACCESS FULL DA_HISTORY (cr=428 pr=0 pw=0 time=1339 us)
    381 TABLE ACCESS BY INDEX ROWID DEAL (cr=764 pr=0 pw=0 time=16692 us)
    381 INDEX UNIQUE SCAN DEAL_PK (cr=383 pr=0 pw=0 time=8926 us)(object id 71236)
    commit
    call count cpu elapsed disk query current rows
    Parse 1 0.00 0.00 0 0 0 0
    Execute 1 0.00 0.00 0 0 1 0
    Fetch 0 0.00 0.00 0 0 0 0
    total 2 0.00 0.00 0 0 1 0
    Misses in library cache during parse: 0
    Parsing user id: 113
    OVERALL TOTALS FOR ALL NON-RECURSIVE STATEMENTS
    call count cpu elapsed disk query current rows
    Parse 3 0.25 0.25 0 120 1 0
    Execute 4 365.04 356.84 0 25095 5203 553
    Fetch 0 0.00 0.00 0 0 0 0
    total 7 365.29 357.10 0 25215 5204 553
    Misses in library cache during parse: 2
    OVERALL TOTALS FOR ALL RECURSIVE STATEMENTS
    call count cpu elapsed disk query current rows
    Parse 83 0.01 0.01 0 0 0 0
    Execute 125 0.03 0.03 0 108 201 46
    Fetch 114 0.01 0.00 0 221 0 72
    total 322 0.05 0.04 0 329 201 118
    Misses in library cache during parse: 3
    Misses in library cache during execute: 3
    4 user SQL statements in session.
    125 internal SQL statements in session.
    129 SQL statements in session.
    Trace file: lnsqd1_ora_7350_perfoamance_test_01.trc
    Trace file compatibility: 9.00.01
    Sort options: default
    1 session in tracefile.
    4 user SQL statements in trace file.
    125 internal SQL statements in trace file.
    129 SQL statements in trace file.
    45 unique SQL statements in trace file.
    11196 lines in trace file.

  • SCOM-Difference between Problem Count and Event Count in Application Failure Analysis Report

    Dear All, 
    Could someone explain me clearly , the difference between  Problem Count and
    Event Count in Application Failure Analysis  Report. Please help me in understanding What is meant be problem and event in the report .
    Thanks in Advance.
    Regards,
    Rajesh Kumar C

    Hello Rajesh,
    The "problem" is the logically grouped set of the exception events which have the identical hash calculated over several fields as "Stack", "Source", "Failed Function" and so on... So, even if exceptions are different
    in the other properties but hash matches over the considered properties - then all those exceptions go into the same "problem group".
    So, event is an instance of the problem. One event contributes to one problem but one problem might have a huge event count if you have a repeating issue.
    The logic is similar for the performance analysis report, only fields that go into the "problem" hash are different. e.g. "Stack" is not used in hash for perf events...
    Dmitry Matveev

  • PL/SQL Performance problem

    I am facing a performance problem with my current application (PL/SQL packaged procedure)
    My application takes data from 4 temporary tables, does a lot of validation and
    puts them into permanent tables.(updates if present else inserts)
    One of the temporary tables is parent table and can have 0 or more rows in
    the other tables.
    I have analyzed all my tables and indexes and checked all my SQLs
    They all seem to be using the indexes correctly.
    There are 1.6 million records combined in all 4 tables.
    I am using Oracle 8i.
    How do I determine what is causing the problem and which part is taking time.
    Please help.
    The skeleton of the code which we have written looks like this
    MAIN LOOP ( 255308 records)-- Parent temporary table
    -----lots of validation-----
    update permanent_table1
    if sql%rowcount = 0 then
    insert into permanent_table1
    Loop2 (0-5 records)-- child temporary table1
    -----lots of validation-----
    update permanent_table2
    if sql%rowcount = 0 then
    insert into permanent_table2
    end loop2
    Loop3 (0-5 records)-- child temporary table2
    -----lots of validation-----
    update permanent_table3
    if sql%rowcount = 0 then
    insert into permanent_table3
    end loop3
    Loop4 (0-5 records)-- child temporary table3
    -----lots of validation-----
    update permanent_table4
    if sql%rowcount = 0 then
    insert into permanent_table4
    end loop4
    -- COMMIT after every 3000 records
    END MAIN LOOP
    Thanks
    Ashwin N.

    Do this intead of ditching the PL/SQL.
    DECLARE
    TYPE NumTab IS TABLE OF NUMBER(4) INDEX BY BINARY_INTEGER;
    TYPE NameTab IS TABLE OF CHAR(15) INDEX BY BINARY_INTEGER;
    pnums NumTab;
    pnames NameTab;
    t1 NUMBER(5);
    t2 NUMBER(5);
    t3 NUMBER(5);
    BEGIN
    FOR j IN 1..5000 LOOP -- load index-by tables
    pnums(j) := j;
    pnames(j) := 'Part No. ' || TO_CHAR(j);
    END LOOP;
    t1 := dbms_utility.get_time;
    FOR i IN 1..5000 LOOP -- use FOR loop
    INSERT INTO parts VALUES (pnums(i), pnames(i));
    END LOOP;
    t2 := dbms_utility.get_time;
    FORALL i IN 1..5000 -- use FORALL statement
    INSERT INTO parts VALUES (pnums(i), pnames(i));
    get_time(t3);
    dbms_output.put_line('Execution Time (secs)');
    dbms_output.put_line('---------------------');
    dbms_output.put_line('FOR loop: ' || TO_CHAR(t2 - t1));
    dbms_output.put_line('FORALL: ' || TO_CHAR(t3 - t2));
    END;
    Try this link, http://download-west.oracle.com/docs/cd/B10501_01/appdev.920/a96624/05_colls.htm#23723

Maybe you are looking for

  • DateTime format

    Hello, We're currently working project that uses SharePoint 2013 platform to do the heavy lifting. One of the requirements we have is that system must comply with various acts which includes date and time formatting. The problem we're having is that

  • How can i setup an apple ID for an 80 year old family member in another country from my country

    Hi , I am trying to set up an old 3gs for my 80 year old father and i need an apple id for him. I get an error on the apple website when i try to set an apple id up for him, no explanation just "error: this page cant be displayed.Contact support for

  • My phone seems to have 2 browsers.

    This is my first post here, and I found a problem since signing up. As in the attachment, I used red_romanov a alias but it said it does not accept special character. I tried removing and it accepts, but I did not want that. As there is no option to

  • How to debug this?

    Under Flash Player 10.1 on Windows, we are suddenly getting an error that did not occur under player 9 or 10, and does not appear in any version of player on Mac.  The biggest problem is that the entire error stack is inside the Flash framework, init

  • Valuechange listener called multiple times for checkbox in table.

    Hi All, I'm trying to understand how value change listeners work for checkbox components within a table column. I have a checkbox declared as below <af:selectBooleanCheckbox id="sbc1" valueChangeListener="#{pageFlowScope.classfiyBean.checkBoxValueCha