Re: easuring sql performance (elapsed time and scalability) by number of logical reads

  • From: "Radoulov, Dimitre" <cichomitiko@xxxxxxxxx>
  • To: "Bernard Polarski" <bpolarsk@xxxxxxxxx>
  • Date: Tue, 2 May 2006 15:00:29 +0200

Well, we all see the hash join in the fisrt query while the second one is doing the nested loop and here is your time.

  3309       HASH JOIN  (cr=1523 r=0 w=0 time=223005 us)

what about the memory allocate to the hash join is too small and the hash join is pushed to disk?

No, the hash join is in memory:


14:59:08 SQL> r
1 select *
2 from (select a. *, rownum r
3 from (select distinct atp.part_number as codice,
4 lsc.ds_lunga as descr,
5 '' as TIPOOPT,
6 '' as b
7 from filtro_dati_catalogo fdc,
8 an_telai ati,
9 vp_tavole vpt,
10 assoc_tavole_parts atp,
11 an_parts ap,
12 lessico_pn lsc
13 where fdc.id_subcatalogo in (0) and ati.targa = 'FNZ8243' and
14 lsc.language_code = 1 and
15 fdc.pv_code = ati.pv_code and
16 fdc.pv_code = vpt.pv_code and
17 vpt.cod_tavola_grafica =
18 atp.cod_tavola_grafica and
19 ap.part_number = atp.part_number and
20 lsc.codice_lessico = ap.codice_lessico and
21 (lsc.ds_lunga like '1118647' or
22 Trim(ap.part_number) like '1118647')
23 order by codice asc) a
24 where rownum <= 23) b
25* where r > 0


Elapsed: 00:00:00.83

Statistics
----------------------------------------------------------
         0  recursive calls
         0  db block gets
      1725  consistent gets
         0  physical reads
         0  redo size
       758  bytes sent via SQL*Net to client
       656  bytes received via SQL*Net from client
         2  SQL*Net roundtrips to/from client
         1  sorts (memory)
         0  sorts (disk)
         1  rows processed

14:59:09 SQL> select *
14:59:15 2 from (select a. *, rownum r
14:59:15 3 from (select /*+ USE_NL(lsc ap) */ distinct atp.part_number as codice,
14:59:15 4 lsc.ds_lunga as descr,
14:59:15 5 '' as TIPOOPT,
14:59:15 6 '' as b
14:59:15 7 from filtro_dati_catalogo fdc,
14:59:15 8 an_telai ati,
14:59:15 9 vp_tavole vpt,
14:59:15 10 assoc_tavole_parts atp,
14:59:15 11 an_parts ap,
14:59:15 12 lessico_pn lsc
14:59:15 13 where fdc.id_subcatalogo in (0) and ati.targa = 'FNZ8243' and
14:59:15 14 lsc.language_code = 1 and
14:59:15 15 fdc.pv_code = ati.pv_code and
14:59:15 16 fdc.pv_code = vpt.pv_code and
14:59:15 17 vpt.cod_tavola_grafica =
14:59:15 18 atp.cod_tavola_grafica and
14:59:15 19 ap.part_number = atp.part_number and
14:59:15 20 lsc.codice_lessico = ap.codice_lessico and
14:59:15 21 (lsc.ds_lunga like '1118647' or
14:59:15 22 Trim(ap.part_number) like '1118647')
14:59:15 23 order by codice asc) a
14:59:15 24 where rownum <= 23) b
14:59:15 25 where r > 0;


Elapsed: 00:00:00.66

Statistics
----------------------------------------------------------
         0  recursive calls
         0  db block gets
      7559  consistent gets
         0  physical reads
         0  redo size
       758  bytes sent via SQL*Net to client
       656  bytes received via SQL*Net from client
         2  SQL*Net roundtrips to/from client
         1  sorts (memory)
         0  sorts (disk)
         1  rows processed


Dimitre


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


Other related posts:

  • » Re: easuring sql performance (elapsed time and scalability) by number of logical reads