Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Mailing Lists -> Oracle-L -> RE: *Measuring sql performance (elapsed time and scalability) by number of logical reads

RE: *Measuring sql performance (elapsed time and scalability) by number of logical reads

From: Cary Millsap <cary.millsap_at_hotsos.com>
Date: Tue, 2 May 2006 09:45:36 -0500
Message-ID: <C970F08BBE1E164AA8063E01502A71CF518949@WIN02.hotsos.com>


"You can't tell how long something took by counting how many times it happened."

This one is actually my own.

Cary Millsap
Hotsos Enterprises, Ltd.
http://www.hotsos.com
Nullius in verba  

Hotsos Symposium 2007 / March 4-8 / Dallas Visit www.hotsos.com for curriculum and schedule details...

-----Original Message-----
From: oracle-l-bounce_at_freelists.org
[mailto:oracle-l-bounce_at_freelists.org] On Behalf Of Radoulov, Dimitre Sent: Tuesday, May 02, 2006 9:28 AM
To: Wolfgang Breitling
Cc: oracle-l_at_freelists.org
Subject: Re: *Measuring sql performance (elapsed time and scalability) by number of logical reads

> To quote Cary Millsap (who, I believe quotes someone else) "you can't
tell
> how
> long something took by counting how often it occured". Trying to use
any
> count
> (lio, pio, BCHR, ...) as s substitute for elapsed time is misguided
from
> the start.
> Your summary below contains the answer. Remember
>
> response time (elapsed time) = service time + wait time.
>
> as an aside, note that there are no counts anywhere in that formula.
In
> your
> case the service time (cpu) is the difference. Due to the
peculiarities of
> cpu
> time accounting, wait time is -0.01 for both of your queries, but plan
1
> takes 4
> times the cpu to do the work.
>
> Just another example why it is important to gather system statistics
so
> that the
> CBO will consider cpu time when making a plan selection. That doesn't
mean
> he/she/it will get it right every time, but there is a better chance
with
> cpu
> costing.

Thanks,
but the CPU costing is on.

SNAME                          PNAME                               PVAL1

PVAL2

------------------------------ ------------------------------ ----------
----------------------------------------
SYSSTATS_INFO                  STATUS 
COMPLETED
SYSSTATS_INFO                  FLAGS                                   1
SYSSTATS_MAIN                  SREADTIM                            1.373
SYSSTATS_MAIN                  MREADTIM                            5.556
SYSSTATS_MAIN                  CPUSPEED                              585
SYSSTATS_MAIN                  MBRC                                   12
SYSSTATS_MAIN                  MAXTHR                           21000192
SYSSTATS_MAIN                  SLAVETHR                               -1



PLAN_TABLE_OUTPUT





| Id  | Operation                              |  Name 
| Rows | Bytes | Cost (%CPU)|

|   0 | SELECT STATEMENT                       | 
|    23 |  1472 | 43215   (1)|
|*  1 |  VIEW                                  | 
|    23 |  1472 |            |
|*  2 |   COUNT STOPKEY                        | 
|       |       |            |
|   3 |    VIEW                                | 
|   199 | 10149 |            |
|*  4 |     SORT UNIQUE STOPKEY                | 
|   199 | 24079 | 43213   (1)|
|   5 |      CONCATENATION                     | 
|       |       |            |
|   6 |       TABLE ACCESS BY INDEX ROWID      | LESSICO_PN 
|     1 |    25 |     2  (50)|
|   7 |        NESTED LOOPS                    | 
|     1 |    62 |    15   (7)|
|   8 |         NESTED LOOPS                   | 
|     2 |   162 |    17   (6)|
|   9 |          NESTED LOOPS                  | 
|    18 |  1818 |    21   (5)|
|  10 |           NESTED LOOPS                 | 
|     1 |   121 |    95   (4)|
|  11 |            NESTED LOOPS                | 
|     4 |   148 |    11  (10)|
|  12 |             TABLE ACCESS BY INDEX ROWID| AN_TELAI 
|     3 |    57 |     5  (20)|
|* 13 |              INDEX RANGE SCAN          | XIF04AN_TELAI 
|     1 |       |     4  (25)|
|* 14 |             INDEX RANGE SCAN           |
XIF02FILTRO_DATI_CATALOGO 
|     1 |    18 |     3  (34)|
|* 15 |            INDEX RANGE SCAN            | PK_VP_TAVOLE 
|     1 |    20 |     5  (20)|
|* 16 |           INDEX RANGE SCAN             | XPKASSOC_TAVOLE_PARTS 
|     8 |   160 |     3  (34)|
|* 17 |          INDEX RANGE SCAN              | XPKAN_PARTS 
|     3 |    57 |     3  (34)|
|* 18 |         INDEX RANGE SCAN               | XPKLESSICO_PN 
|     1 |       |     2  (50)|
|  19 |       NESTED LOOPS                     | 
|     1 |   121 |    95   (4)|
|  20 |        NESTED LOOPS                    | 
|    18 |  1818 |    21   (5)|
|  21 |         NESTED LOOPS                   | 
|     2 |   162 |    17   (6)|
|  22 |          NESTED LOOPS                  | 
|     1 |    62 |    15   (7)|
|  23 |           NESTED LOOPS                 | 
|     4 |   148 |    11  (10)|
|  24 |            TABLE ACCESS BY INDEX ROWID | AN_TELAI 
|     3 |    57 |     5  (20)|
|* 25 |             INDEX RANGE SCAN           | XIF04AN_TELAI 
|     1 |       |     4  (25)|
|* 26 |            INDEX RANGE SCAN            |
XIF02FILTRO_DATI_CATALOGO 
|     1 |    18 |     3  (34)|
|* 27 |           INDEX RANGE SCAN             | XIF01LESSICO_PN 
|     1 |    25 |     2  (50)|
|* 28 |          INDEX RANGE SCAN              | XIF01AN_PARTS 
|     3 |    57 |     3  (34)|
|* 29 |         INDEX RANGE SCAN               | XIF01ASSOC_TAVOLE_PARTS

|     8 |   160 |     3  (34)|
|* 30 |        INDEX RANGE SCAN                | PK_VP_TAVOLE 
|     1 |    20 |     5  (20)|
------------------------------------------------------------------------
----------------------------------

Predicate Information (identified by operation id):


   1 - filter("B"."R">0)
   2 - filter(ROWNUM<=23)
   4 - filter(ROWNUM<=23)
  13 - access("ATI"."TARGA"='FNZ8243')
  14 - access("FDC"."ID_SUBCATALOGO"=0 AND
"FDC"."PV_CODE"="ATI"."PV_CODE")
  15 - access("FDC"."PV_CODE"="VPT"."PV_CODE")
  16 - access("VPT"."COD_TAVOLA_GRAFICA"="ATP"."COD_TAVOLA_GRAFICA")
  17 - access("AP"."PART_NUMBER"="ATP"."PART_NUMBER")
       filter(TRIM("AP"."PART_NUMBER") LIKE '1118647')
  18 - access("LSC"."CODICE_LESSICO"="AP"."CODICE_LESSICO" AND 
"LSC"."LANGUAGE_CODE"=1)
  25 - access("ATI"."TARGA"='FNZ8243')
  26 - access("FDC"."ID_SUBCATALOGO"=0 AND
"FDC"."PV_CODE"="ATI"."PV_CODE")
  27 - access("LSC"."DS_LUNGA" LIKE '1118647' AND
"LSC"."LANGUAGE_CODE"=1)
  28 - access("LSC"."CODICE_LESSICO"="AP"."CODICE_LESSICO")
       filter(LNNVL(TRIM("AP"."PART_NUMBER") LIKE '1118647'))
  29 - access("AP"."PART_NUMBER"="ATP"."PART_NUMBER")
  30 - access("FDC"."PV_CODE"="VPT"."PV_CODE" AND 
"VPT"."COD_TAVOLA_GRAFICA"="ATP"."COD_TAVOLA_GRAFICA")
       filter("VPT"."COD_TAVOLA_GRAFICA"="ATP"."COD_TAVOLA_GRAFICA")




PLAN_TABLE_OUTPUT





| Id  | Operation                            |  Name
|
Rows | Bytes | Cost (%CPU)|

|   0 | SELECT STATEMENT                     |
|
23 | 1472 | 2533 (4)|
|*  1 |  VIEW                                |
| 
23 |  1472 |            |
|*  2 |   COUNT STOPKEY                      |
| 
|       |            |
|   3 |    VIEW                              |
| 
199 | 10149 |            |
|*  4 |     SORT UNIQUE STOPKEY              |
|
199 | 24079 | 2532 (4)|
|*  5 |      HASH JOIN                       |
|
199 | 24079 | 2530 (4)|
|* 6 | INDEX FAST FULL SCAN | XIF01LESSICO_PN |
2493 | 62325 | 74 (10)|
|*  7 |       HASH JOIN                      |
|
20168 | 1890K| 2453 (4)|
|   8 |        NESTED LOOPS                  |
|
20168 | 1516K| 2192 (2)|
|   9 |         NESTED LOOPS                 |
|
1070 | 60990 | 27 (4)|
|  10 |          NESTED LOOPS                |
|
4 | 148 | 11 (10)|
| 11 | TABLE ACCESS BY INDEX ROWID| AN_TELAI |
3 |    57 |     5  (20)|
|* 12 |            INDEX RANGE SCAN          | XIF04AN_TELAI
| 
1 |       |     4  (25)|
|* 13 |           INDEX RANGE SCAN           | XIF02FILTRO_DATI_CATALOGO
| 
1 |    18 |     3  (34)|
|* 14 |          INDEX RANGE SCAN            | PK_VP_TAVOLE
| 
254 |  5080 |     5  (20)|
|* 15 |         INDEX RANGE SCAN             | XPKASSOC_TAVOLE_PARTS
| 
19 |   380 |     3  (34)|
|  16 |        INDEX FAST FULL SCAN          | XPKAN_PARTS
|
168K| 3129K| 236 (14)|

Predicate Information (identified by operation id):


   1 - filter("B"."R">0)
   2 - filter(ROWNUM<=23)
   4 - filter(ROWNUM<=23)
   5 - access("LSC"."CODICE_LESSICO"="AP"."CODICE_LESSICO")
       filter("LSC"."DS_LUNGA" LIKE '1118647' OR
TRIM("AP"."PART_NUMBER")
LIKE '1118647')
   6 - filter("LSC"."LANGUAGE_CODE"=1)
   7 - access("AP"."PART_NUMBER"="ATP"."PART_NUMBER")
  12 - access("ATI"."TARGA"='FNZ8243')
  13 - access("FDC"."ID_SUBCATALOGO"=0 AND
"FDC"."PV_CODE"="ATI"."PV_CODE")

  14 - access("FDC"."PV_CODE"="VPT"."PV_CODE")   15 - access("VPT"."COD_TAVOLA_GRAFICA"="ATP"."COD_TAVOLA_GRAFICA")

Regards,
Dimitre

--
http://www.freelists.org/webpage/oracle-l


--
http://www.freelists.org/webpage/oracle-l
Received on Tue May 02 2006 - 09:45:36 CDT

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US