Rules of thumb for acceptable query response times?

Once I read a statement from SAP which said that users typically tolerate
response times up to 7 seconds. So you should strive to achive this goal.
Unfortunately I cannot remember in which document or webpage this
statement was made. Does anybody happen to have a reference for this rule
or any other SAP rules about the BW query response times?
Regards,
Mark

Share with us the situations where your query is running slow. How many rows are you returning via SQL Commands?
On reports; the maximum row count being returned and/or the pagination scheme can have impact on performance.
Jeff

Similar Messages

  • Help required in optimizing the query response time

    Hi,
    I am working on a application which uses a jdbc thin client. My requirement is to select all the table rows in one table and use the column values to select data in another table in another database.
    The first table can have maximum of 6 million rows but the second table rows will be around 9000.
    My first query is returning within 30-40 milliseconds when the table is having 200000 rows. But when I am iterating the result set and query the second table the query is taking around 4 millisecond for each query.
    the second query selection criteria is to find the value in the range .
    for example my_table ( varchar2 column1, varchar2 start_range, varchar2 end_range);
    My first query returns a result which then will be used to select using the following query
    select column1 from my_table where start_range < my_value and end_range> my_value;
    I have created an index on start_range and end_range. this query is taking around 4 millisseconds which I think is too much.
    I am using a preparedStatement for the second query loop.
    Can some one suggest me how I can improve the query response time?
    Regards,
    Shyam

    Try the code below.
    Pre-requistee: you should know how to pass ARRAY objects to oracle and receive resultsets from java. There are 1000s of samples available on net.
    I have written a sample db code for the same interraction.
    Procedure get_list takes a array input from java and returns the record set back to java. You can change the tablenames and the creteria.
    Good luck.
    DROP TYPE idlist;
    CREATE OR REPLACE TYPE idlist AS TABLE OF NUMBER;
    CREATE OR REPLACE PACKAGE mypkg1
    AS
       PROCEDURE get_list (myval_list idlist, orefcur OUT sys_refcursor);
    END mypkg1;
    CREATE OR REPLACE PACKAGE BODY mypkg1
    AS
       PROCEDURE get_list (myval_list idlist, orefcur OUT sys_refcursor)
       AS
          ctr   NUMBER;
       BEGIN
          DBMS_OUTPUT.put_line (myval_list.COUNT);
          FOR x IN (SELECT object_name, object_id, myvalue
                      FROM user_objects a,
                           (SELECT myval_list (ROWNUM + 1) myvalue
                              FROM TABLE (myval_list)) b
                     WHERE a.object_id < b.myvalue)
          LOOP
             DBMS_OUTPUT.put_line (   x.object_name
                                   || ' - '
                                   || x.object_id
                                   || ' - '
                                   || x.myvalue
          END LOOP;
       END;
    END mypkg1;
    [pre]
    Testing the code above. Make sure dbms output is ON.
    [pre]
    DECLARE
       a      idlist;
       refc   sys_refcursor;
       c number;
    BEGIN
       SELECT x.nu
       BULK COLLECT INTO a
         FROM (SELECT 5000 nu
                 FROM DUAL) x;
       mypkg1.get_list (a, refc);
    END;
    [pre]
    Vishal V.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           

  • How to obtain the Query Response Time of a query?

    Given the Average Length of Row of tables and the number of rows in each table,
    is there a way we get the query response time of a query involving
    those tables. Query includes joins as well.
    For example, suppose there 3 tables t1, t2, t3. I wish to obtain the
    time it takes for the following query:
    Query
    SELECT t1.col1, t2.col2
    FROM t1, t2, t3
    WHERE t1.col1 = t2.col2
    AND t1.col2 IN ('a', 'c', 'd')
    AND t2.col1 = t3.col2
    AND t2.col1 = t1.col1 (+)
    ORDER BY t1.col1
    Given are:
    Average Row Length of t1 = 200 bytes
    Average Row Length of t2 = 100 bytes
    Average Row Length of t3 = 500 bytes
    No of rows in t1 = 100
    No of rows in t2 = 1000
    No of rows in t3 = 500
    What is required is the 'query response time' for the said query.

    I do not know how to do it myself. But if you are running Oracle 10g, I believe that there is a new tool called: SQL Tuning Advisor which might be able to help.
    Here are some links I found doing a google search, and it looks like it might meet your needs and even give you more information on how to improve your code.
    http://www.databasejournal.com/features/oracle/article.php/3492521
    http://www.databasejournal.com/features/oracle/article.php/3387011
    http://www.oracle.com/technology/obe/obe10gdb/manage/perflab/perflab.htm
    http://www.oracle.com/technology/pub/articles/10gdba/week18_10gdba.html
    http://www.oracle-base.com/articles/10g/AutomaticSQLTuning10g.php
    Have fun reading:
    You can get help from teachers, but you are going to have to learn a lot by yourself, sitting alone in a room ....Dr. Seuss
    Regards
    Tim

  • Rule of thumb for CACHE_SIZE

    Hi all,
    I do have a system outsourced, where the DB (MAXDB 7.6.05) runs on a single SLES 10 server.
    This server has got 16 GB RAM. The CACHE_SIZE is configured to 20 GB (2500000 pages) and a top shows me, that from the 40 GB swap 20 GB are used (file system cache is so low, that it can be ignored) ... and swapd runs with at least 6% CPU all the time.
    Is this a good situation? Not for me! Does anybody have a rule of thumb for CACHE_SIZE?
    I would say 75 % of RAM should be the highest value... any othe suggestion?
    Thank you!
    Christian

    Cache must always fit in the physical RAM. The purpose of the cache is to hold data in the memory that it doesn't need to be read again and again from the disk. If you now configure that cache bigger than the physical available RAM (minus application minus operating system) the system will start swapping/paging in and out and hence slowing down the full system.
    Ideally the machine is not swapping at all and all data is in the memory.
    Markus

  • How to get query response time from ST03 via a script ?

    Hello People,
    I am trying to get average query response time for BW queries with a script (for monitoring/historisation).
    I know that this data can be found manually in ST03n in the "BI workload'.
    However, I don't know how to get this stat from a script.
    My idea is to run a SQL query to get this information, here is the state of my query :
    select count(*) from sapbw.rsddstat_olap
    where calday = 20140401
    and (eventid = 3100 or eventid = 3010)
    and steptp = 'BEX3'
    The problem is that this query is not returning the same number of navigations as the number shown in ST03n.
    Can you help me to set the correct filters to get the same number of navigation as in ST03n ?
    Regards.

    Hi Experts,
    Do you have ideas for this SQL query ?
    Regards.

  • Rules of thumb for sizing an Oracle BPM 11g deployment

    Anyone out there have some rules of thumb they are using to size out an environment for Oracle BPM 11g? I know processing power can vary widely for process complexity and amount of data floating around. Still, I get asked questions like how much processing power do I need for this solution? I have a current client looking at 2500+ potential human workflow users with 1000 concurrent at peak load. Short of running some performance test myself and extrapolating numbers I am at a loss. Hoping some others can chime in with some thoughts.

    an update... my rule of thumb for 50 users has proven to be a bit high. Looks to be 30-40 per core when you split out the BPMN engine from other computing intensive processes such as the ESB. Without splitting up overall SOA/BPM functionality over multiple servers concurrent user counts of various technology really takes a hit.

  • How to get Query response Time?

    II am on BI 7.0. I ran some queries using RSRT command. I want to find how much time the queries took.
    I went to
    st03 -> expert mode -> BI system load-> select today / week/month according to the query runtime day
    I do not see any Info Providers. Query was on a cube so why no Info Providers.
    Does something have to turned on InfoPorvider to show.
    When I look  in RSDDSTAT_OLAP table, I do see many rows but cannot make any sense. Is there some documentation on how to get total  query time from this table?
    Is there any other way to get query response time?
    Thanks a lot.

    HI,
    why not use RSRT ? You can add database statistics option in "Execut & Debug" and you get all the runtime metrics of your query
    In transaction RSRT, enter the query name and press u2018Execute +Debugu2019.
    Selecting u2018Display Statistics Datau2019 .
    After executing the query will return a list of the measured metrics.
    The event id / text describes the steps  (duration in seconds):
    "OLAP: Read data" gives the SQL statements repsonse time (ok - because the SAP
    application server acts as an Oracle client a little network traffic from the db server is included,
    but as far as you not transferring zillions of rows it can be ignored)
    But it gives you much more (i.e. if the OLAP cache gets used or not )...
    In the "Aggreagate statistcs" you get all the infoproviders involved in that query.
    bye
    yk

  • Spatial Query Response Time

    O/S - Sun Solaris
    ver - Oracle 8.1.7
    I am trying to improve the response time of the following query. Both tables contain polygons.
    select a.data_id, a.GEOLOC from information_data a, shape_data b where a.info_id = 2 and b.shape_id = 271 and sdo_filter(a.GEOLOC,b.GEOLOC,'querytype=window')='TRUE'
    The response time with info_id not indexed is 9 seconds. When I index info_id, I get the following error. Why is indexing info_id causing a spatial index error ? Also, other than manipulating the tiling level, is there anything else that could improve the response time ?
    ERROR at line 1:
    ORA-29902: error in executing ODCIIndexStart() routine
    ORA-13208: internal error while evaluating [window SRID does not match layer
    SRID] operator
    ORA-06512: at "MDSYS.SDO_INDEX_METHOD", line 84
    ORA-06512: at line 1
    Thanks,
    Ravi.

    Hello Ravi,
    Both layers should have SDO_SRID values set in order for the index to work properly.
    After you do that you might want to add an Oracle hint to the query:
    select /*+ ordered */ a.data_id, a.GEOLOC
    from shape_data b, information_data a
    where a.info_id = 2 and b.shape_id = 271
    and sdo_filter(a.GEOLOC,b.GEOLOC,'querytype=window')='TRUE' ;
    Hope this helps,
    Dan
    Also, if only one or very few rows have a.info_id=2 then the function sdo_geom.relate
    might also work quickly.

  • CCMS Monitoring for Average HTTP response time

    Hi guys ,
    Is it possible to monitor Av. response time for HTTP(this is based on ST03) using CCMS ?
    Thanks in advance
    George

    hi
    As per my understanding you tried to view the responsetime comp as same like in sto3 by ccms, the way as below, RZ20-> SAP CCMS montior templates- >Entiresystem-><sid>->application server -><server>R3 services ->  DIalog you can get all the response time as same in the ST03.
    else in otherway if you looking for monitoring Java and webdynpro, you can do this by GRMG.chk this for to knw http://help.sap.com/saphelp_nwpi71/helpdata/en/45/4ee37fea5917eae10000000a155369/content.htm|http://help.sap.com/saphelp_nwpi71/helpdata/en/45/4ee37fea5917eae10000000a155369/content.htm]
    for configuration,[GRMG-config guide|http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/106a4d88-2a36-2c10-549b-dc549d00b8b9?quicklink=index&overridelayout=true]
    chk and update
    jansi

  • 23" w/ PC Vista for gaming; 14ns response time??

    Hi guys.. I'm planning to get a PC in late March and the stunning 23" LCD caught my attenion while scouting for nice widescreen LCDs. The only problem is, on the spec from Apple site they stated the response time is 14ns, while compared to normal LCDs which has 2-6ns. Just wonder if this would affect my gaming (lag) on the screen?
    I'm currently sourcing for mid-range ATI or Nvida cards after reading the forum on certain cards capatibility with the LCD. Looking at ATI x1600xt.
    Would appreciate some insights on this. Thanks for taking the time to look at my message.
    Z

    Personally if I were running windoze on a peecee I
    would not buy an Apple display. True, they are
    elegant looking units but there are equally good
    displays for less money that would be much more
    compatible with your computer. There are just too
    many issues like not being able to display the BIOS
    screen etc. that I would not want to have to deal
    with.
    Hmm.. really appreciate the input mate. Just been to the IT show07 and there was this 23" display at the apple booth... its just sso beautiful. The only LCD that can match the looks is a 22" LG LCD widescreen.
    I've made a call to my local support centre eariler and the CR-officer said there won't be any complications with their LCD running on PC Vista.Only thing he mentioned is that the 14ms(compared to normal LCD 4ms) will be the slowing of graphics transfer but is not noticable by naked eye.
    hence..... I still believe I will end up getting a 23"....

  • How to improve sql server query response time

    I have a table that contains 60 million records with the following structure
    1. SEQ_ID (Bigint),
    2. SRM_CLIENT_ENTITIES_SEQ_ID (Bigint),
    3. CUS_ENTITY_DATA_SEQ_ID (Bigint),
    4. SRM_CLIENT_ENTITY_ATTRIBUTES_SEQ_ID (Bigint),
    5. ATTRIBUTE_DATETIME (DateTime),
    6. ATTRIBUTE_DECIMAL (Decimal(18,2)),
    7. ATTRIBUTE_STRING (nvarchar(255)),
    8. ATTRIBUTE_BOOLEAN (Char(1)),
    9. SRM_CLIENTS_SEQ_ID (Bigint)
    Clustered index with key SEQ_ID
    Non unique non clustered index : I've following four composite indexes
    a. SRM_CLIENTS_SEQ_ID, SRM_CLIENT_ENTITIES_SEQ_ID, SRM_CLIENT_ENTITY_ATTRIBTUES_SEQ_ID, ATTRIBUTE_DATETIME
    b. SRM_CLIENTS_SEQ_ID, SRM_CLIENT_ENTITIES_SEQ_ID, SRM_CLIENT_ENTITY_ATTRIBTUES_SEQ_ID, ATTRIBUTE_DECIMAL
    c. SRM_CLIENTS_SEQ_ID, SRM_CLIENT_ENTITIES_SEQ_ID, SRM_CLIENT_ENTITY_ATTRIBTUES_SEQ_ID, ATTRIBUTE_STRING
    d. SRM_CLIENTS_SEQ_ID, SRM_CLIENT_ENTITIES_SEQ_ID, SRM_CLIENT_ENTITY_ATTRIBTUES_SEQ_ID, ATTRIBUTE_BOOLEAN
    The problem is that when i execute a simple query over this table it does not return the results in an acceptable time.
    Query:
    SELECT CUS_ENTITY_DATA_SEQ_ID FROM dbo.CUS_PIVOT_NON_UNIQUE_INDEXES WHERE SRM_CLIENT_ENTITY_ATTRIBUTES_SEQ_ID = 51986 AND ATTRIBUTE_DECIMAL = 4150196
    Execution Time : 2 seconds
    Thanks

    Did you look at the execution plan.
    The query may not use none of the indexes. The Clustered index is on SEQ_ID and the non clustered index doesn't start with SRM_CLIENT_ENTITY_ATTRIBUTES_SEQ_ID
    OR ATTRIBUTE_DECIMAL.
    The order of the columns in an index matters. Just for testing ( if it is not prod. environment) Create an NCI with SRM_CLIENT_ENTITY_ATTRIBUTES_SEQ_ID
    and ATTRIBUTE_DECIMAL and check.
    Please use Marked as Answer if my post solved your problem and use
    Vote As Helpful if a post was useful.

  • Query response time takes more time when calling from package

    SELECT
    /* UTILITIES_PKG.GET_COUNTRY_CODE(E.EMP_ID,E.EMP_NO) COUNTRY_ID */
    (SELECT DISTINCT IE.COUNTRY_ID
    FROM DOCUMENT IE
    WHERE IE.EMP_ID =E.EMP_ID
    AND IE.EMP_NO = E.EMP_NO
    AND IE.STATUS = 'OPEN' ) COUNTRY_ID
    FROM EMPLOYEE E
    CREATE OR REPLACE PACKAGE BODY UTILITIES_PKG AS
    FUNCTION GET_COUNTRY_CODE(P_EMP_ID IN VARCHAR2, P_EMP_NO IN VARCHAR2)
    RETURN VARCHAR2 IS
    L_COUNTRY_ID VARCHAR2(25) := '';
    BEGIN
    SELECT DISTINCT IE.COUNTRY_ID
    INTO L_COUNTRY_ID
    FROM DOCUMENT IE
    WHERE IE.EMP_ID = P_EMP_ID
    AND IE.EMP_NO = P_EMP_NO
    AND IE.STATUS = 'OPEN';
    RETURN L_COUNTRY_ID;
    EXCEPTION
    WHEN OTHERS THEN
    RETURN 'CONT';
    END;
    END UTILITIES_PKG;
    when I run above query its coming in 1.2 seconds.but when comment subquery and call from package its taking 9 seconds.query returns more than 2000 records.i am not able to find the reason why it is taking more time when calling from package?

    You are getting a different plan when you run it as PL/SQL most likely. Comment your statement:
    SELECT /* your comment here */then find them in V$SQL and get the SQL IDs. You can then use DBMS_XPLAN.DISPLAY_CURSOR to see what is actually happening.
    http://www.psoug.org/reference/dbms_xplan.html

  • Query response time

    Needed some help to understand what may be the reason :
    I have a query that appears to have different numbers even though the execution paths across two different database servers are same. Both servers have all the tables, indexes, data ,etc exactly the same.
    And my query is
    select DISTINCT a.PART , a.PART_DESC from PARTS a, MIKE.PART_RATE b where a.state = 'GA' and (a.source='R')
    and (a.state = b.state and a.part = b.part and b.business = 'Y')
    ON DATABASE 1
    Execution Plan
    0 SELECT STATEMENT Optimizer=HINT: FIRST_ROWS (Cost=1788 Card=630 Bytes=39060)
    1 0 SORT (UNIQUE) (Cost=1788 Card=630 Bytes=39060)
    2 1 NESTED LOOPS (Cost=1779 Card=630 Bytes=39060)
    3 2 TABLE ACCESS (FULL) OF 'PART_RATE' (Cost=3 Card=592 Bytes=6512)
    4 2 TABLE ACCESS (BY INDEX ROWID) OF 'PARTS' (Cost=3 Card=13840 Bytes=705840)
    5 4 INDEX (RANGE SCAN) OF 'PARTS_X1' (NON-UNIQUE) (Cost=2 Card=13840)
    ON DATABASE 2
    Execution Plan
    0 SELECT STATEMENT Optimizer=HINT: FIRST_ROWS (Cost=6 Card=1 Bytes=198)
    1 0 SORT (UNIQUE) (Cost=6 Card=1 Bytes=198)
    2 1 NESTED LOOPS (Cost=4 Card=1 Bytes=198)
    3 2 TABLE ACCESS (FULL) OF 'PART_RATE' (Cost=2 Card=1 Bytes=9)
    4 2 TABLE ACCESS (BY INDEX ROWID) OF 'PARTS' (Cost=2 Card=48 Bytes=9072)
    5 4 INDEX (RANGE SCAN) OF 'PARTS_X1' (NON-UNIQUE) (Cost=1 Card=48)
    The same query on DATABASE1 is taking much longer time. What might be the reason ? Your help is appreciated

    If your tables are not analyzed and you provide a hint like FIRST_ROWS, Oracle will use the CBO to determine the query plan. If the tables have not been analyzed, the CBO will make up statistics, either using default values or doing dynamic sampling (depending on the version of Oracle and the initialization parameters). If Oracle has to do dynamic sampling, it may take significantly more time to parse the query and the query plan may be significantly slower. I would be a bit suprised if the query plan on both systems was really identical, which is why I was asking you how you found the query plan.
    If you trace both sessions and run tkprof, you should see the breakdown in parse and execution time on both systems to see whether the slower system is spending the time parsing.
    As I suggested originally, however, if you gather statistics on one system, you really ought to gather statistics on the other.
    Justin
    Distributed Database Consulting, Inc.
    http://www.ddbcinc.com/askDDBC

  • Rule of thumb for the number of averages in an FFT for vibration analysis?

    I'm doing vibration analysis on rotating machinery and would like to average the FFT to minimize variations of the data (rms averaging).  How does one choose the optimum number of averages? 
    Also, why is it necessary to specify the number of averages (for example, in the Spectral Measurements express VI) as well as telling the VI to restart averaging.  Would not the latter would be sufficient when the Spectral Measurements VI is enclosed in a loop?  Thanks.

    Thanks for your post. 
    In my experience 20 is a good number.  It really depends however on a number of factors. 
    1) does the frequency of the rotation of the machine (speed) change?  If so, averaging from an FFT would not work well.  I would use the Order Spectrum in the Sound and Vibration Measurement Suite if speed changes.
    2) are loads changing (and speed is constant or you are using order spectrum)?  If so you will want a smaller number of averages so you do not average out the effect of fast load changes.
    3) try a few numbers and note when the noise floor appears stable.  This may be the best method to choose the number. 
    4) how often do you want a result?  A smaller number of averages will produce an "averae complete" result more often. 
    Use the averages complete boolean to gate passing on the results (to the user interface, file, further analysis, etc.).  With restart averaging on, it will restart another averaging process and toggle the boolean (gate).
    Hope this helps. 
    Preston Johnson
    Principal Sales Engineer
    Condition Monitoring Systems
    Vibration Analyst III - www.vibinst.org, www.mobiusinstitute.com
    National Instruments
    [email protected]
    www.ni.com/mcm
    www.ni.com/soundandvibration
    www.ni.com/biganalogdata
    512-683-5444

  • Slow query response time

    Morning SQL gurus,
    Running queries on APEX takes very long compared to running the script directly on the database.
    I tried setting optimizer mode to all_rows, used driving_site and index hints, any other suggestions? The scripts on Apex and DB make use of a db :-/
    Regards,
    Pirate
    Edited by: Pirate on Jun 22, 2011 11:04 AM

    This is the fourm for issues with the SQL Developer tool. You will get better answers in the Apex forum or the SQL and PL/SQL forum.

Maybe you are looking for