Newsgroup: it.comp.lang.visual-basic
Titolo: Prestazioni con ADO

Ciao a tutti,
sto scrivendo un'applicazione con VB6 per la quale devo
riuscire ad ottenere le migliori prestazioni possibili.
Principalmente si tratta di leggere tabelle su database
SQL SERVER e di scrivere dei file di testo.
Non è molto che uso ADO quindi non ne conosco ancora le
caratteristiche per farlo funzionare il più veloce
possibile.
Quali valori mi consigliate per i parametri di apertura del recordset "CursorType" e "LockType".
La connessione al db che faccio è la seguente:
go_ConnGuru.ConnectionString = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=" & gs_DBUser & ";Password=" & gs_DBPassword & ";Initial Catalog=Guru;Data Source=" & gs_NameServer & ";Connect Timeout=100"
go_ConnGuru.CursorLocation = adUseServer
go_ConnGuru.Mode = adModeReadWrite
go_ConnGuru.Open
Può essere ottimizzata ???
I database non devono essere mai aggiornati ma solamente
letti, quindi immagino che sia meglio usere nella
connessione "adModeRead" piuttosto che "adModeReadWrite".
Infine volevo sapere se qualcuno mi sa spiegare il perchè
di questo errore; aprendo un recordset in questo modo:
Stringa SQL:
SELECT A.CODCONTRATTO,
       SUM(A.CONFERIMENTI_PRELIEVI_LIRE) + SUM(A.CONFERIMENTI_PRELIEVI_TITOLI) as TOTALE,
       B.GIACENZA_MEDIA
FROM GPM_PERFORMANCE A, GPM_PERFORMANCE_DAY B
WHERE A.DATA_ANALISI >= 20000101
  AND A.CODCONTRATTO = B.CODCONTRATTO
GROUP BY A.CODCONTRATTO, B.CODCONTRATTO, B.GIACENZA_MEDIA
ORDER BY A.CODCONTRATTO, B.CODCONTRATTO
Open Recordset:
- Così funziona tutto correttamente
  lo_Rs.Open stringaSQL, go_ConnGuru, adOpenForwardOnly, adLockBatchOptimistic
- Così ho un errore "Timeout expired", devo semplicemente aumentare il TimeOut della connessione o sbaglio qualcosa ???
  lo_Rs.Open stringaSQL, go_ConnGuru, adOpenForwardOnly, adLockBatchOptimistic
- Così ho un errore "Errors occurred" codice -
2147217887
  lo_Rs.Open stringaSQL, go_ConnGuru, adOpenDynamic, adLockBatchOptimistic
In conclusione volevo avere consigli su come ottenere le migliori prestazioni nella lettura di tabelle con ADO e SQL SERVER.
Spero di essere stato abbastanza preciso, fornendo tutte le indicazioni necessarie per spiegare il mio problema.
Grazie in anticipo Stefano.
_________________________________________________________________________
la tua email gratuita e per sempre su 
http://www.freemail.it
 (anche POP3)
-- 
Posted from 
qma...@hermes.evo.it
 [194.184.29.10] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG





Ciao, Stefano 


 


Hai fornito queste informazioni, forse sbagliando a 
fare copia-incolla


 


- Così funziona tutto correttamente
  
lo_Rs.Open stringaSQL, go_ConnGuru, adOpenForwardOnly, 
adLockBatchOptimistic
- Così ho un errore "Timeout expired", devo 
semplicemente aumentare il TimeOut della connessione o sbaglio qualcosa 
???
  lo_Rs.Open stringaSQL, go_ConnGuru, adOpenForwardOnly, 
adLockBatchOptimistic


Le due istruzioni sono identiche.


 


Per il momento ti possodire che, visto che non 
effettui aggiornamenti sul recordset, che tral'altro utilizza un 
cursore


adOpenForwardOnly, potresti, per un miglioramento 
delle prestazioni, sostituire adLockBatchOptimistic con 
adLockReadOnly.


 


Ciao, Vito


 


 



 Ciao, Stefano
 Hai fornito queste informazioni, forse sbagliando a fare copia-incolla
 - Cosě funziona tutto correttamente
   lo_Rs.Open stringaSQL, go_ConnGuru, adOpenForwardOnly,
 adLockBatchOptimistic
 - Cosě ho un errore "Timeout expired", devo semplicemente aumentare il
 TimeOut della connessione o sbaglio qualcosa ???
   lo_Rs.Open stringaSQL, go_ConnGuru, adOpenForwardOnly,
 adLockBatchOptimistic
 Le due istruzioni sono identiche.
 Per il momento ti possodire che, visto che non effettui aggiornamenti sul
 recordset, che tral'altro utilizza un cursore
 adOpenForwardOnly, potresti, per un miglioramento delle prestazioni,
 sostituire adLockBatchOptimistic con adLockReadOnly.
 Ciao, Vito
-- 
Posted from 
smtp2.libero.it
 [193.70.192.52] 


Ti ho mandato due volte il post perchè la prima volta mi è ritornnato
indietro.
ciao, Vito
-- 
Posted from 
smtp3.libero.it
 [193.70.192.53] 


E si, ho proprio sbagliato a fare il copia incolla; qui sotto riporto l'istruzione corretta:
- Cosě ho un errore "Timeout expired", devo semplicemente aumentare il
 TimeOut della connessione o sbaglio qualcosa ???
   lo_Rs.Open stringaSQL, go_ConnGuru, adOpenForwardOnly,
 adLockReadOnly
...anche a me sembrava logico usare adLockReadOnly perň mi
da appunto l'errore "Timeout expired", devo solo aumentare
il parametro Connect Timeout della connessione, o il
problema č dovuto ad altro ???
Grazie Stefano.
_________________________________________________________________________
la tua email gratuita e per sempre su 
http://www.freemail.it
 (anche POP3)
-- 
Posted from 
qma...@hermes.evo.it
 [194.184.29.10] 
