Statement STAGE 1

fabio scatolini

Statement STAGE 1

Ciao a tutti,

avrei una domanda da fare:

Ho una istruzione sql, invocata tramite DRDA, dinamica che è la seguente :

"select contrattod0_.ID as ID207_0_, contrattod0_.TMS_INS as TMS2_207_0_,

CD_STA_POL as CD24_207_0_, contrattod0_.TP_PTF as TP20_207_0_ from

CONTRATTO_DATI_GEN contrattod0_ where contrattod0_.ID=? for read only with ur "

Dalla trace di MAIN VIEW, vedo che l'istruzione è stata tradotta come :

BMC SOFTWARE --------------   DETAIL TRACE ENTRY    -----------PERFORMANCE MGMT

 SERV ==> DTRAC            INPUT   10:34:45  INTVL=> 3  LOG=> N  TGT==> DBNP    

 PARM ==> ANN,SEQ=208,LEVEL=2                         ROW 1 OF 33 SCROLL=> CSR 

 EXPAND:  EXPLAIN, RxD2 EXPLAIN                                                

 START: 17:45:42 AUTH: BPDS000  PLAN: DISTSERV CORR: db2jcc_appli CONN: SERVER 

 ===============================================================================

     EVENT        AT     ELAPSED     CPU   DETAIL                              

 -------------- -------- -------- -------- -------------------------------------

 FETCH       1    11.235    41 us    41 us *RC( 100) C=SQL_CURLN2 D/X   PS(   5)

 ===============================================================================

 CURSOR:     SQL_CURLN200C1                                                    

 LOCATION:   ITAGAN00DBNP                                                      

 COLLECTION: NULLID                                                            

 PACKAGE:    SYSLN200                                                          

 FETCH SENSITIVITY: UNSPECIFIED         FETCH ORIENTATION: NEXT                

 QUERY COMMAND ID: 000000007596BE3C     QUERY INSTANCE ID: 0000000000000000    

                                      INDEX SEQ-DATA                           

                                   -------- --------                           

 ROWS PROCESSED ALL TYPES                 1        1                           

 ROWS PROCESSED CORRECT TYPE              0        1                           

 ROWS QUALIFIED BY DM (STAGE 1)           1        0                           

 ROWS QUALIFIED BY RDS (STAGE 2)          1        0                           

 ROWS INSERTED                            0        0                           

 ROWS UPDATED                             0        0                            

 ROWS DELETED                             0        0                           

 PAGES SCANNED                            4        1                           

 REFERENTIAL INTEGRITY PROCESSING:                                              

  PAGES SCANNED                           0        0                           

  ROWS DELETED/SET NULL                   0        0                           

 LOB - PAGES SCANNED                      0        0                           

     - PAGES UPDATED                      0        0                                     

                                                              

QUELLO CHE NON RIESCO A CAPIERE E' COME MAI VENGONO QUALIFICATE RIGHE DI STAGE 2, QUANDO L'ISTRUZIONE

CONTIENE NELLA CLAUSOLA WHERE SOLAMENTE "where contrattod0_.ID=?".

Vi ringrazio anticipatamente.

                 

 

Adrian Collett

Statement STAGE 1
(in response to fabio scatolini)
Ciao Fabio,

se non sbaglio, quel campo è il QW0018RQ e corrisponde al numero di righe qualificate DOPO l'applicazione di eventuali predicati di STAGE-2.
Quindi, se non ci sono predicati di Stage-2 il valore è uguale al valore nel QW0018DQ - numero di righe qualificate DOPO l'applicazione di eventuali predicati di STAGE-1.

Ciao,
Adrian


Il 30/10/2013 10:43, fabio scatolini ha scritto:

Ciao a tutti,
avrei una domanda da fare:
Ho una istruzione sql, invocata tramite DRDA, dinamica che è la seguente :
"select contrattod0_.ID as ID207_0_, contrattod0_.TMS_INS as TMS2_207_0_,
CD_STA_POL as CD24_207_0_, contrattod0_.TP_PTF as TP20_207_0_ from
CONTRATTO_DATI_GEN contrattod0_ where contrattod0_.ID=? for read only with ur "
Dalla trace di MAIN VIEW, vedo che l'istruzione è stata tradotta come :
BMC SOFTWARE --------------   DETAIL TRACE ENTRY    -----------PERFORMANCE MGMT
 SERV ==> DTRAC            INPUT   10:34:45  INTVL=> 3  LOG=> N  TGT==> DBNP    
 PARM ==> ANN,SEQ=208,LEVEL=2                         ROW 1 OF 33 SCROLL=> CSR 
 EXPAND:  EXPLAIN, RxD2 EXPLAIN                                                
 START: 17:45:42 AUTH: BPDS000  PLAN: DISTSERV CORR: db2jcc_appli CONN: SERVER 
 ===============================================================================
     EVENT        AT     ELAPSED     CPU   DETAIL                              
 -------------- -------- -------- -------- -------------------------------------
 FETCH       1    11.235    41 us    41 us *RC( 100) C=SQL_CURLN2 D/X   PS(   5)
 ===============================================================================
 CURSOR:     SQL_CURLN200C1                                                    
 LOCATION:   ITAGAN00DBNP                                                      
 COLLECTION: NULLID                                                            
 PACKAGE:    SYSLN200                                                          
 FETCH SENSITIVITY: UNSPECIFIED         FETCH ORIENTATION: NEXT                
 QUERY COMMAND ID: 000000007596BE3C     QUERY INSTANCE ID: 0000000000000000    
                                      INDEX SEQ-DATA                           
                                   -------- --------                           
 ROWS PROCESSED ALL TYPES                 1        1                           
 ROWS PROCESSED CORRECT TYPE              0        1                           
 ROWS QUALIFIED BY DM (STAGE 1)           1        0                           
 ROWS QUALIFIED BY RDS (STAGE 2)          1        0                           
 ROWS INSERTED                            0        0                           
 ROWS UPDATED                             0        0                            
 ROWS DELETED                             0        0                           
 PAGES SCANNED                            4        1                           
 REFERENTIAL INTEGRITY PROCESSING:                                              
  PAGES SCANNED                           0        0                           
  ROWS DELETED/SET NULL                   0        0                           
 LOB - PAGES SCANNED                      0        0                           
     - PAGES UPDATED                      0        0                                     
                                                              
QUELLO CHE NON RIESCO A CAPIERE E' COME MAI VENGONO QUALIFICATE RIGHE DI STAGE 2, QUANDO L'ISTRUZIONE
CONTIENE NELLA CLAUSOLA WHERE SOLAMENTE "where contrattod0_.ID=?".
Vi ringrazio anticipatamente.
                 

Site Links: View post online   View mailing list online   Start new thread via email   Unsubscribe from this mailing list   Manage your subscription  
** ** ** Attend the 2014 North America IDUG DB2 Tech Conference ** ** **
--> --> Phoenix, Arizona 12 - 16 May 2014 <-- <--
http://www.idug.org/p/cm/ld/fid=314

Use of this email content is governed by the terms of service at:
http://www.idug.org/p/cm/ld/fid=2

fabio scatolini

RE: Statement STAGE 1
(in response to Adrian Collett)

Ciao Adrian, intanto grazie, però se io eseguo la stessa istruzione tramite DSNTEP2 e traccio la stessa sempre in MAINVIEW, nelle righe qualificate di STAGE 2 trovo 0, e non 1 come quando è lanciata via DRDA.

Ci sono forse dei parametri da settare nella configurazione di WEBSphere?

Grazie ancora

Angelo Sironi

R: Statement STAGE 1
(in response to fabio scatolini)
Ciao Fabio,

stai interpretando il prospetto fornito da BMC in modo
“fuorviato” (forse a causa del modo stesso in cui il prodotto presenta i
dati…).

Il prodotto ti sta dicendo che il DB2, dopo aver applicato gli eventuali
predicati di Stage 1, ti sta restituendo una riga. Lo stesso succede dopo
aver applicato gli eventuali predicati di Stage 2. Siccome non c’è
differenza tra quanto succede dopo l’applicazione dei predicati di tipo
Stage 1 e dopo quelli di tipo Stage 2, ne consegue che (1) non ci sono
predicati di Stage 2; oppure (2) i predicati di Stage 2 sono sempre
verificati. Nel tuo caso è vera l’ipotesi (1).



Se non fosse così (nell’ipotesi che la tabella contenga più di una riga…!),
non avresti avuto come risultato una sola riga in corrisposndenza a ROWS
QUALIFIED BY DM (STAGE 1).



Ciao,
Angelo



Da: fabio scatolini [mailto:[login to unmask email]
Inviato: mercoledì 30 ottobre 2013 10.43
A: [login to unmask email]
Oggetto: [DB2UGITALY] - Statement STAGE 1



Ciao a tutti,

avrei una domanda da fare:

Ho una istruzione sql, invocata tramite DRDA, dinamica che è la seguente :

"select contrattod0_.ID as ID207_0_, contrattod0_.TMS_INS as TMS2_207_0_,

CD_STA_POL as CD24_207_0_, contrattod0_.TP_PTF as TP20_207_0_ from

CONTRATTO_DATI_GEN contrattod0_ where contrattod0_.ID=? for read only with
ur "

Dalla trace di MAIN VIEW, vedo che l'istruzione è stata tradotta come :

BMC SOFTWARE -------------- DETAIL TRACE ENTRY -----------PERFORMANCE
MGMT

SERV ==> DTRAC INPUT 10:34:45 INTVL=> 3 LOG=> N TGT==> DBNP


PARM ==> ANN,SEQ=208,LEVEL=2 ROW 1 OF 33 SCROLL=>
CSR

EXPAND: EXPLAIN, RxD2 EXPLAIN


START: 17:45:42 AUTH: BPDS000 PLAN: DISTSERV CORR: db2jcc_appli CONN:
SERVER


============================================================================
===

EVENT AT ELAPSED CPU DETAIL


-------------- -------- -------- --------
-------------------------------------

FETCH 1 11.235 41 us 41 us *RC( 100) C=SQL_CURLN2 D/X PS(
5)


============================================================================
===

CURSOR: SQL_CURLN200C1


LOCATION: ITAGAN00DBNP


COLLECTION: NULLID


PACKAGE: SYSLN200


FETCH SENSITIVITY: UNSPECIFIED FETCH ORIENTATION: NEXT


QUERY COMMAND ID: 000000007596BE3C QUERY INSTANCE ID: 0000000000000000


INDEX SEQ-DATA


-------- --------


ROWS PROCESSED ALL TYPES 1 1


ROWS PROCESSED CORRECT TYPE 0 1


ROWS QUALIFIED BY DM (STAGE 1) 1 0


ROWS QUALIFIED BY RDS (STAGE 2) 1 0


ROWS INSERTED 0 0


ROWS UPDATED 0 0


ROWS DELETED 0 0


PAGES SCANNED 4 1


REFERENTIAL INTEGRITY PROCESSING:


PAGES SCANNED 0 0


ROWS DELETED/SET NULL 0 0


LOB - PAGES SCANNED 0 0


- PAGES UPDATED 0 0




QUELLO CHE NON RIESCO A CAPIERE E' COME MAI VENGONO QUALIFICATE RIGHE DI
STAGE 2, QUANDO L'ISTRUZIONE

CONTIENE NELLA CLAUSOLA WHERE SOLAMENTE "where contrattod0_.ID=?".

Vi ringrazio anticipatamente.







-----End Original Message-----

Angelo Sironi

R: Statement STAGE 1
(in response to fabio scatolini)
Fabio,

un paio di domande: Quante righe contiene la tabella? Quante
righe restituisce la query (una o zero?)?

Ciao,
Angelo





Da: fabio scatolini [mailto:[login to unmask email]
Inviato: mercoledì 30 ottobre 2013 11.11
A: [login to unmask email]
Oggetto: [DB2UGITALY] - RE: Statement STAGE 1



Ciao Adrian, intanto grazie, però se io eseguo la stessa istruzione tramite
DSNTEP2 e traccio la stessa sempre in MAINVIEW, nelle righe qualificate di
STAGE 2 trovo 0, e non 1 come quando è lanciata via DRDA.

Ci sono forse dei parametri da settare nella configurazione di WEBSphere?

Grazie ancora



-----End Original Message-----

fabio scatolini

RE: R: Statement STAGE 1
(in response to Angelo Sironi)

Ciao Angelo,

intanto grazie, la tabella contiene più di 20 ML di record, la ricerca estrae solamente un record, poichè il campo è indice univoco, ed è stato generato da una sequence.

Come ho già scritto ad Adrian, se faccio la stessa query e la lancio con DSNTEP2, la trace di Mainview indica che non ci sono righe referenziate da RDS STAGE2, per questo chiedevo se devo settare qualche valore su WebSphere.

 

Grazie ancora; Fabio

Angelo Sironi

R: R: Statement STAGE 1
(in response to fabio scatolini)
Ciao Fabio,

l’interpretazione corretta, a mio avviso, non è “righe
referenziate da RDS STAGE2”, ma “righe che hanno superato i predicati di
Stage 2 e di Stage 1 (questi ultimi avvengono prima di quelli di Stage 2)”.
Ritengo che ll valore corrispondente possa essere ancora diverso dal numero
delle righe restituite al chiamante, per effetto, ad esempio, di
aggregazioni (GROUP BY).



Mi stupisce che con DSNTEP2 Mainview fornisca il valore 0 in corrispondenza
alla frase ROWS QUALIFIED BY RDS (STAGE 2). In tal caso, mi aspetterei che
non venga restituita nessuna riga….



On credo che il problema riguardi Websphere. Potrebbe essere un “problema”
DB2 o BMC.



Ciao,
Angelo



Da: fabio scatolini [mailto:[login to unmask email]
Inviato: mercoledì 30 ottobre 2013 11.28
A: [login to unmask email]
Oggetto: [DB2UGITALY] - RE: R: Statement STAGE 1



Ciao Angelo,

intanto grazie, la tabella contiene più di 20 ML di record, la ricerca
estrae solamente un record, poichè il campo è indice univoco, ed è stato
generato da una sequence.

Come ho già scritto ad Adrian, se faccio la stessa query e la lancio con
DSNTEP2, la trace di Mainview indica che non ci sono righe referenziate da
RDS STAGE2, per questo chiedevo se devo settare qualche valore su WebSphere.



Grazie ancora; Fabio



-----End Original Message-----

fabio scatolini

RE: R: R: Statement STAGE 1
(in response to Angelo Sironi)

Angelo,

ho appena lanciato un DSNTEP2 e la query ha restituito un record.

La trace di MAINVIEW riportata di seguito, non indica nessuna riga processata dal RDS.

LOCATION:   ITAGAN00DBNP                                           
COLLECTION: DSNTEP2                                                
PACKAGE:    DSNàEP2L                                               
                                     INDEX SEQ-DATA                
                                  -------- --------                
ROWS PROCESSED ALL TYPES                 4        4                
ROWS PROCESSED CORRECT TYPE              0        4                
ROWS QUALIFIED BY DM (STAGE 1)           4        0                
ROWS QUALIFIED BY RDS (STAGE 2)          0        0                
ROWS INSERTED                            0        0                
ROWS UPDATED                             0        0                
ROWS DELETED                             0        0                
PAGES SCANNED                            3        3                
REFERENTIAL INTEGRITY PROCESSING:                                  
 PAGES SCANNED                           0        0                
 ROWS DELETED/SET NULL                   0        0                
LOB - PAGES SCANNED                      0        0                
    - PAGES UPDATED                      0        0                
ROWS SKIPPED - INCOMPATIBLE LOCK                                   

Ho notato che quando alloca il package del DSNTEP2 riporta questi valori per l'Encoding scheme 

ENCODING SCHEME: EBCDIC 
ENCODING CCSID: 500, mentre il lancio dinamico riporta

ENCODING SCHEME: EBCDIC 
ENCODING CCSID: 0

Potrebbe essere un problema di trascodifica del dato?

 

grazie ancora    
                        
        

fabio scatolini

RE: R: R: Statement STAGE 1
(in response to Angelo Sironi)

Angelo,

ho appena lanciato un DSNTEP2 e la query ha restituito un record.

La trace di MAINVIEW riportata di seguito, non indica nessuna riga processata dal RDS.

LOCATION:   ITAGAN00DBNP                                           
COLLECTION: DSNTEP2                                                
PACKAGE:    DSNàEP2L                                               
                                     INDEX SEQ-DATA                
                                  -------- --------                
ROWS PROCESSED ALL TYPES                 4        4                
ROWS PROCESSED CORRECT TYPE              0        4                
ROWS QUALIFIED BY DM (STAGE 1)           4        0                
ROWS QUALIFIED BY RDS (STAGE 2)          0        0                
ROWS INSERTED                            0        0                
ROWS UPDATED                             0        0                
ROWS DELETED                             0        0                
PAGES SCANNED                            3        3                
REFERENTIAL INTEGRITY PROCESSING:                                  
 PAGES SCANNED                           0        0                
 ROWS DELETED/SET NULL                   0        0                
LOB - PAGES SCANNED                      0        0                
    - PAGES UPDATED                      0        0                
ROWS SKIPPED - INCOMPATIBLE LOCK                                   

Ho notato che quando alloca il package del DSNTEP2 riporta questi valori per l'Encoding scheme 

ENCODING SCHEME: EBCDIC 
ENCODING CCSID: 500, mentre il lancio dinamico riporta

ENCODING SCHEME: EBCDIC 
ENCODING CCSID: 0

Potrebbe essere un problema di trascodifica del dato?

 

grazie ancora    
                        
        

Angelo Sironi

R: R: R: Statement STAGE 1
(in response to fabio scatolini)
Fabio,

mi sembrano dati scorretti rispetto al fatto che comunque ti
venga restituita una riga. Mi è capitato di trovare qualche marginale
incongruenza nei dati forniti dalla trace DB2 letta da programmi da me
sviluppati, ma non ricordo un’incongruenza di questo tipo.



Prova qualche altro test con ad es. una predicato di BETWEEN sulla colonna
ID e ad es. con lo stesso BETWEEN e un predicato di STAGE2 in aggiunta. Per
vedere cosa restituisce Mainview.



In bocca al lupo…!

Ciao,
Angelo



Da: fabio scatolini [mailto:[login to unmask email]
Inviato: mercoledì 30 ottobre 2013 11.52
A: [login to unmask email]
Oggetto: [DB2UGITALY] - RE: R: R: Statement STAGE 1



Angelo,

ho appena lanciato un DSNTEP2 e la query ha restituito un record.

La trace di MAINVIEW riportata di seguito, non indica nessuna riga
processata dal RDS.

LOCATION: ITAGAN00DBNP
COLLECTION: DSNTEP2
PACKAGE: DSNàEP2L
INDEX SEQ-DATA
-------- --------
ROWS PROCESSED ALL TYPES 4 4
ROWS PROCESSED CORRECT TYPE 0 4
ROWS QUALIFIED BY DM (STAGE 1) 4 0
ROWS QUALIFIED BY RDS (STAGE 2) 0 0
ROWS INSERTED 0 0
ROWS UPDATED 0 0
ROWS DELETED 0 0
PAGES SCANNED 3 3
REFERENTIAL INTEGRITY PROCESSING:
PAGES SCANNED 0 0
ROWS DELETED/SET NULL 0 0
LOB - PAGES SCANNED 0 0
- PAGES UPDATED 0 0
ROWS SKIPPED - INCOMPATIBLE LOCK

Ho notato che quando alloca il package del DSNTEP2 riporta questi valori per
l'Encoding scheme

ENCODING SCHEME: EBCDIC
ENCODING CCSID: 500, mentre il lancio dinamico riporta

ENCODING SCHEME: EBCDIC
ENCODING CCSID: 0

Potrebbe essere un problema di trascodifica del dato?



grazie ancora





-----End Original Message-----

Adrian Collett

R: R: Statement STAGE 1
(in response to fabio scatolini)
Ciao Fabio,

l'unica cosa che mi viene in mente e che l'accesso da websphere utilizza un parameter marker e quindi il DB2 ha già fatto la prepare e quindi i dati del scan sono esclusivamente riferiti all'index e TS applicativo.
Il DSNTEP2 invece, utilizza i literals e quindi probabilmente il DB2 deve ri-calcolare la strategia di accesso e quindi deve accedere al catalogo.
Potrebbe essere che quello che stai vedendo sono gli scan riferiti alla fase di calcolo della strategia di accesso, e quindi agli accessi al catalogo e non alla fase di FETCH vero e quindi gli accessi ai dati veri.

Riesci a fare un PRINT dei dati di Trace usando il programma DZTBPRNT con le opzioni DTRAC=YES, POPUP=ALL ?

Facci sapere!!

Ciao
Adrian




Il 30/10/2013 11:52, fabio scatolini ha scritto:

Angelo,
ho appena lanciato un DSNTEP2 e la query ha restituito un record.
La trace di MAINVIEW riportata di seguito, non indica nessuna riga processata dal RDS.
LOCATION:   ITAGAN00DBNP                                           
COLLECTION: DSNTEP2                                                
PACKAGE:    DSNàEP2L                                               
                                     INDEX SEQ-DATA                
                                  -------- --------                
ROWS PROCESSED ALL TYPES                 4        4                
ROWS PROCESSED CORRECT TYPE              0        4                
ROWS QUALIFIED BY DM (STAGE 1)           4        0                
ROWS QUALIFIED BY RDS (STAGE 2)          0        0                
ROWS INSERTED                            0        0                
ROWS UPDATED                             0        0                
ROWS DELETED                             0        0                
PAGES SCANNED                            3        3                
REFERENTIAL INTEGRITY PROCESSING:                                  
 PAGES SCANNED                           0        0                
 ROWS DELETED/SET NULL                   0        0                
LOB - PAGES SCANNED                      0        0                
    - PAGES UPDATED                      0        0                
ROWS SKIPPED - INCOMPATIBLE LOCK                                   
Ho notato che quando alloca il package del DSNTEP2 riporta questi valori per l'Encoding scheme 
ENCODING SCHEME: EBCDIC 
ENCODING CCSID: 500, mentre il lancio dinamico riporta
ENCODING SCHEME: EBCDIC 
ENCODING CCSID: 0
Potrebbe essere un problema di trascodifica del dato?

grazie ancora    
                        
        
Site Links: View post online   View mailing list online   Start new thread via email   Unsubscribe from this mailing list   Manage your subscription  
** ** ** Attend the 2014 North America IDUG DB2 Tech Conference ** ** **
--> --> Phoenix, Arizona 12 - 16 May 2014 <-- <--
http://www.idug.org/p/cm/ld/fid=314

Use of this email content is governed by the terms of service at:
http://www.idug.org/p/cm/ld/fid=2

fabio scatolini

RE: R: R: Statement STAGE 1
(in response to Adrian Collett)

Ciao Adrian,

quello che ho segnalato, è l'effettivo lavoro che viene eseguito per rintracciare i dati, poichè in un'altra videata, ho i consumi del db2 per il parse dell'istruzione e per l'explain dei dati.

Adesso vedo se riesco a lanciare il programma che citi tu.

Grazie ti faccio sapere