Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > it.comp.lang.visual-basic > #19644 > unrolled thread
| Started by | "Sauro" <vicchi@crsscala.it> |
|---|---|
| First post | 2019-10-07 13:50 +0200 |
| Last post | 2019-11-27 15:57 +0100 |
| Articles | 17 — 4 participants |
Back to article view | Back to it.comp.lang.visual-basic
vb6 -Dao differenza tra xp e successivi "Sauro" <vicchi@crsscala.it> - 2019-10-07 13:50 +0200
Re: vb6 -Dao differenza tra xp e successivi RobertoA <amorosik@tiscalinet.it> - 2019-10-07 14:59 +0200
Re: vb6 -Dao differenza tra xp e successivi "Sauro" <vicchi@crsscala.it> - 2019-10-08 18:57 +0200
Re: vb6 -Dao differenza tra xp e successivi "Sauro" <vicchi@crsscala.it> - 2019-10-09 09:39 +0200
Re: vb6 -Dao differenza tra xp e successivi "Sauro" <vicchi@crsscala.it> - 2019-10-09 09:57 +0200
Re: vb6 -Dao differenza tra xp e successivi RobertoA <amorosik@tiscalinet.it> - 2019-10-09 15:27 +0200
Re: vb6 -Dao differenza tra xp e successivi Greg <greg@alicie.com> - 2019-10-12 15:01 +0200
Re: vb6 -Dao differenza tra xp e successivi "Sauro" <vicchi@crsscala.it> - 2019-10-12 15:23 +0200
Re:vb6 -Dao differenza tra xp e successivi Paperino <non_te@lo.dico.invalid> - 2019-10-12 15:49 +0200
Re: Re:vb6 -Dao differenza tra xp e successivi "Sauro" <vicchi@crsscala.it> - 2019-10-14 15:58 +0200
Re: Re:vb6 -Dao differenza tra xp e successivi "Sauro" <vicchi@crsscala.it> - 2019-11-21 18:26 +0100
Re: vb6 -Dao differenza tra xp e successivi Greg <greg@alicie.com> - 2019-11-21 21:35 +0100
Re: vb6 -Dao differenza tra xp e successivi "Sauro" <vicchi@crsscala.it> - 2019-11-23 10:04 +0100
Re: vb6 -Dao differenza tra xp e successivi "Sauro" <vicchi@crsscala.it> - 2019-11-23 17:13 +0100
Re: vb6 -Dao differenza tra xp e successivi "Sauro" <vicchi@crsscala.it> - 2019-11-25 16:46 +0100
Re: vb6 -Dao differenza tra xp e successivi Greg <greg@alicie.com> - 2019-11-25 22:25 +0100
Re: vb6 -Dao differenza tra xp e successivi "Sauro" <vicchi@crsscala.it> - 2019-11-27 15:57 +0100
| From | "Sauro" <vicchi@crsscala.it> |
|---|---|
| Date | 2019-10-07 13:50 +0200 |
| Subject | vb6 -Dao differenza tra xp e successivi |
| Message-ID | <qnf8qp$1p1c$1@gioia.aioe.org> |
Saluti a tutti Immaginiamo un'azienda con un server e 6 PC in rete. Alcuni PC hanno ancora XP mentre altri dei windows più recenti. Tutti i PC hanno uno stesso software gestionale in vb6. Questo software ha tra le altre funzioni ha una sierie di procedure che operano come di seguito: - eseguono una ricerca SQL - un loop riempie una stringa con i dati letti dai record trovati - mostra a video la suddetta stringa. La maggior parte di queste procedure impiega tempi analoghi su tutti i PC. Una di queste procedure (almeno una accertata) impiega max 1 secondo a mostrare la stringa se il PC ha xp. Impiega invece almeno un paio di minuti se eseguita sui PC che hanno windows più recente (tra l'altro con PC più potenti). Commenti ? Grazie e saluti. Sauro
[toc] | [next] | [standalone]
| From | RobertoA <amorosik@tiscalinet.it> |
|---|---|
| Date | 2019-10-07 14:59 +0200 |
| Message-ID | <qnfbvq$8k2$1@gioia.aioe.org> |
| In reply to | #19644 |
Il 07/10/2019 13:50, Sauro ha scritto: > Saluti a tutti > > Immaginiamo un'azienda con un server e 6 PC in rete. > > Alcuni PC hanno ancora XP mentre altri dei windows più recenti. > > Tutti i PC hanno uno stesso software gestionale in vb6. > Questo software ha tra le altre funzioni ha una sierie di procedure > che operano come di seguito: > - eseguono una ricerca SQL > - un loop riempie una stringa con i dati letti dai record trovati > - mostra a video la suddetta stringa. > > La maggior parte di queste procedure impiega tempi analoghi > su tutti i PC. > > Una di queste procedure (almeno una accertata) impiega max > 1 secondo a mostrare la stringa se il PC ha xp. > Impiega invece almeno un paio di minuti se eseguita sui PC > che hanno windows più recente (tra l'altro con PC più potenti). > > Commenti ? > > Grazie e saluti. > Sauro > I vari pc, come accedono ai dati posti fisicamente sul db server? Per iniziare da qualche parte, hai provato a capire se sia la ricerca sql, oppure il riempimento stringa, oppure la visualizzazione il problema (loggando i tempi ad esempio su file di testo) ?
[toc] | [prev] | [next] | [standalone]
| From | "Sauro" <vicchi@crsscala.it> |
|---|---|
| Date | 2019-10-08 18:57 +0200 |
| Message-ID | <qnif5d$mlr$1@gioia.aioe.org> |
| In reply to | #19645 |
"RobertoA" ha scritto nel messaggio [CUT] > I vari pc, come accedono ai dati posti fisicamente sul db server? Public PublicDB As Database Public PercorsoDB as String PercorsoDB = "P:\Produco.MDB" 'P è una cartella del ServerSet PublicDB = OpenDatabase(PercorsoDB) > Per iniziare da qualche parte, hai provato a capire se sia la ricerca sql, > oppure il riempimento stringa, oppure la visualizzazione il problema > (loggando i tempi ad esempio su file di testo) ? Purtroppo posso fare queste prove solo dal cliente; vedrò nei prossimi giorni. Ho già fatto in parte quello che tu suggerisci ma non ho separato il tempo tra la ricerca e il riempimento stringa, che comunque, nell'insieme, è il punto critico. Ciao Roberto e grazie. Sauro
[toc] | [prev] | [next] | [standalone]
| From | "Sauro" <vicchi@crsscala.it> |
|---|---|
| Date | 2019-10-09 09:39 +0200 |
| Message-ID | <qnk2s6$1ufn$1@gioia.aioe.org> |
| In reply to | #19646 |
E' la Select che si mangia tutto il tempo
[toc] | [prev] | [next] | [standalone]
| From | "Sauro" <vicchi@crsscala.it> |
|---|---|
| Date | 2019-10-09 09:57 +0200 |
| Message-ID | <qnk3sp$3jn$1@gioia.aioe.org> |
| In reply to | #19646 |
Non avevo mai notato che aggiungere o togliere un campo nell'istruzione ORDER BY può incidere moltissimo sui tempi di esecuzione. Non c'entra col problema ma mi sembra giusto segnalare questa cosa.
[toc] | [prev] | [next] | [standalone]
| From | RobertoA <amorosik@tiscalinet.it> |
|---|---|
| Date | 2019-10-09 15:27 +0200 |
| Message-ID | <qnkmb6$q8l$2@gioia.aioe.org> |
| In reply to | #19649 |
Il 09/10/2019 09:57, Sauro ha scritto: > Non avevo mai notato che aggiungere o togliere > un campo nell'istruzione ORDER BY può incidere > moltissimo sui tempi di esecuzione. > > Non c'entra col problema ma mi sembra giusto > segnalare questa cosa. > > Se tenti l'ordinamento per un campo NON indicizzato, hai voglia ad attendere
[toc] | [prev] | [next] | [standalone]
| From | Greg <greg@alicie.com> |
|---|---|
| Date | 2019-10-12 15:01 +0200 |
| Message-ID | <qnsirk$16b$1@solani.org> |
| In reply to | #19644 |
Il 07/10/19 13:50:50 Sauro ha scritto: > Commenti ? > > Grazie e saluti. > Sauro Io non vedo problemi o spiegazioni, ma spesso questi problemi si sono risolti cosi: cancella la select salva e chiudi il progetto, riapri riscrivi la select , ricompila. -- Greg
[toc] | [prev] | [next] | [standalone]
| From | "Sauro" <vicchi@crsscala.it> |
|---|---|
| Date | 2019-10-12 15:23 +0200 |
| Message-ID | <qnsk4j$run$1@gioia.aioe.org> |
| In reply to | #19653 |
"Greg" ha scritto nel messaggio > Il 07/10/19 13:50:50 Sauro ha scritto: > >> Commenti ? >> >> Grazie e saluti. >> Sauro > > Io non vedo problemi o spiegazioni, ma spesso questi problemi si sono > risolti cosi: > cancella la select salva e chiudi il progetto, riapri riscrivi la select , > ricompila. > > -- > Greg Lo stesso eseguibile gira su XP ed impiega un secondo per eseguire una certa funzione. Lo stesso Identico eseguibile impiega oltre due minuti per eseguire la medesima funzione su Win10. Tu no, ma io il problema ce lo vedo. Comunque, anche se non capisco, seguirò il tuo consiglio. Non sarebbe la prima volta che un problema si risolva senza che io abbia capito perchè. Ciao Greg e grazie.
[toc] | [prev] | [next] | [standalone]
| From | Paperino <non_te@lo.dico.invalid> |
|---|---|
| Date | 2019-10-12 15:49 +0200 |
| Message-ID | <qnslli$12lp$1@gioia.aioe.org> |
| In reply to | #19644 |
"Sauro" ha scritto: > Saluti a tutti > Immaginiamo un'azienda con un server e 6 PC in rete. > Alcuni PC hanno ancora XP mentre altri dei windows più recenti. > Tutti i PC hanno uno stesso software gestionale in vb6. > Questo software ha tra le altre funzioni ha una sierie di procedure [CUT] > Una di queste procedure (almeno una accertata) impiega max > 1 secondo a mostrare la stringa se il PC ha xp. > Impiega invece almeno un paio di minuti se eseguita sui PC > che hanno windows più recente (tra l'altro con PC più potenti). Prima prova: disabilita l'antivirus sul client W10. Seconda: dalle impostazioni della scheda di rete disabilita IPv6. Terza: elimina tutte le stampanti dal client e ferma il servizio Spooler (no, non sono rincoglionito. Non più del solito, almeno credo O:-) ). Altro: verifica accuratamente i DNS locali del client. Ultima risorsa, solo per "Vere Rogne®": crea un eseguibile minimale, che faccia solo la richiesta SQL, seguilo con ProcMon di SysInternals (è roba MS, comunque) e vedi passo passo cosa succede. 3 a 1 che il rallentamento è sulla rete, non locale. Bye, G. ----Android NewsGroup Reader---- http://usenet.sinaapp.com/
[toc] | [prev] | [next] | [standalone]
| From | "Sauro" <vicchi@crsscala.it> |
|---|---|
| Date | 2019-10-14 15:58 +0200 |
| Message-ID | <qo1uv0$10rs$1@gioia.aioe.org> |
| In reply to | #19655 |
"Paperino" ha scritto nel messaggio > [CUT] > Prima prova: disabilita l'antivirus sul client W10. > Seconda: dalle impostazioni della scheda di rete disabilita IPv6. > Terza: elimina tutte le stampanti dal client e ferma il servizio > Spooler (no, non sono rincoglionito. Non più del solito, almeno > credo O:-) ). > > Altro: verifica accuratamente i DNS locali del client. > > Ultima risorsa, solo per "Vere Rogne®": crea un eseguibile > minimale, che faccia solo la richiesta SQL, seguilo con ProcMon > di SysInternals (è roba MS, comunque) e vedi passo passo > cosa succede. 3 a 1 che il rallentamento è sulla rete, non locale. > > Bye, G. Però, ce n'è da fare! Grazie mille G. Saluti Sauro
[toc] | [prev] | [next] | [standalone]
| From | "Sauro" <vicchi@crsscala.it> |
|---|---|
| Date | 2019-11-21 18:26 +0100 |
| Message-ID | <qr6hbs$sjp$1@gioia.aioe.org> |
| In reply to | #19655 |
"Paperino" ha scritto nel messaggio
> [CUT]
> Prima prova: disabilita l'antivirus sul client W10.
> Seconda: dalle impostazioni della scheda di rete disabilita IPv6.
> Terza: elimina tutte le stampanti dal client e ferma il servizio
> Spooler (no, non sono rincoglionito. Non più del solito, almeno
> credo O:-) ).
>
> Altro: verifica accuratamente i DNS locali del client.
>
> Ultima risorsa, solo per "Vere Rogne®": crea un eseguibile
> minimale, che faccia solo la richiesta SQL, seguilo con ProcMon
> di SysInternals (è roba MS, comunque) e vedi passo passo
> cosa succede. 3 a 1 che il rallentamento è sulla rete, non locale.
Ho fatto le prove suggerite, esclusa l'ultima, senza risultato.
Mettendo dei segnali in vari punti ho potuto accertare che l'istruzione
che richiede lungo tempo di esecuzione è la seguente;
Set xRS = PublicDB.OpenRecordset("SELECT TOP 1 DATAEFF FROM RILEV WHERE DIP
= '" & v_DIP & "'" & _
" AND DATAEFF >=#1/1/2000# ORDER BY DATAEFF DESC")
Dove DIP è un campo chiave e DATAEFF è il giorno di esecuzione
di una lavorazione.
v_DIP è una variabile stringa dove memorizzare il codice del dipendente.
Questa istruzione serve solo per memorizzare l'ultimo giorno in cui
il dipendente ha lavorato.
Ho aggiunto TOP 1 in un secondo momento sperando di poter velocizzare
l'operazione ma non è servito.
Copiando il database in locale il problema scompare.
Se qualcuno vuole aggiungere qualcosa ....
Saluti
Sauro
[toc] | [prev] | [next] | [standalone]
| From | Greg <greg@alicie.com> |
|---|---|
| Date | 2019-11-21 21:35 +0100 |
| Message-ID | <qr6sdq$b94$1@solani.org> |
| In reply to | #19670 |
Il 21/11/19 18:26:22 Sauro ha scritto:
> Set xRS = PublicDB.OpenRecordset("SELECT TOP 1 DATAEFF FROM RILEV WHERE DIP = '" & v_DIP & "'" & _
> " AND DATAEFF >=#1/1/2000# ORDER BY DATAEFF DESC")
Anche se non è una risposta, ma se lo scopo è trovare l'ultimo giorno di lavoro di UN SOLO dipendente, non basterebbe
un semplice MAX DATAEFF?
--
Greg
[toc] | [prev] | [next] | [standalone]
| From | "Sauro" <vicchi@crsscala.it> |
|---|---|
| Date | 2019-11-23 10:04 +0100 |
| Message-ID | <qrasm8$cnq$1@gioia.aioe.org> |
| In reply to | #19671 |
"Greg" ha scritto:
>
>> Set xRS = PublicDB.OpenRecordset("SELECT TOP 1 DATAEFF FROM RILEV WHERE
>> DIP = '" & v_DIP & "'" & _
>> " AND DATAEFF >=#1/1/2000# ORDER BY DATAEFF DESC")
>
>
> Anche se non è una risposta, ma se lo scopo è trovare l'ultimo giorno di
> lavoro di UN SOLO dipendente, non basterebbe un semplice MAX DATAEFF?
>
> --
> Greg
Non sapevo dell'esistenza dell'espressione MAX all'interno di una SELECT.
Proverò.
Ciao Greg
Sauro
[toc] | [prev] | [next] | [standalone]
| From | "Sauro" <vicchi@crsscala.it> |
|---|---|
| Date | 2019-11-23 17:13 +0100 |
| Message-ID | <qrblqe$1veu$1@gioia.aioe.org> |
| In reply to | #19671 |
Set xRS = PublicDB.OpenRecordset("SELECT MAX(DATAEFF) FROM RILEV WHERE DIP =
'" & v_DIP & "'")
Ok, funziona.
Proverò i tempi di esecuzione.
Grazie Greg e saluti.
[toc] | [prev] | [next] | [standalone]
| From | "Sauro" <vicchi@crsscala.it> |
|---|---|
| Date | 2019-11-25 16:46 +0100 |
| Message-ID | <qrgt02$1f56$1@gioia.aioe.org> |
| In reply to | #19671 |
Le prove fatte dal cliente hanno dato risultato positivo e i tempi sono rientrati sotto i 2 secondi. Il problema specifico è quindi risolto. Resta comunque da capire perchè la select iniziale impiegasse tanto tempo. Saluti a tutti Sauro
[toc] | [prev] | [next] | [standalone]
| From | Greg <greg@alicie.com> |
|---|---|
| Date | 2019-11-25 22:25 +0100 |
| Message-ID | <qrhgso$klj$1@solani.org> |
| In reply to | #19675 |
Il 25/11/19 16:46:11 Sauro ha scritto: > Le prove fatte dal cliente hanno dato risultato positivo > e i tempi sono rientrati sotto i 2 secondi. la risposta deve essere immediata dovendo restituire un solo record. Tuttavi la funziona Max deve processare tutti i records. di quanti records stiamo parlando, del dipendente oggetto della query ma anche di tutti. Due secondi in rete dovresti avere circa mezzo milione di record. E' cosi? Potresti migliorare aprendo il database o almeno il recordset in sola lettura. Il recordset con la funziona Max di mezzo dovrebbe andare in aumatico in sola lettura, ma esplicitarlo e sempre meglio > Il problema specifico è quindi risolto. > > Resta comunque da capire perchè la select iniziale > impiegasse tanto tempo. La select iniziale ti calcolava l'ultimo giorno di TUTTI i dipendenti, per poi buttare via tutto e tenere solo quello della Where -- Greg
[toc] | [prev] | [next] | [standalone]
| From | "Sauro" <vicchi@crsscala.it> |
|---|---|
| Date | 2019-11-27 15:57 +0100 |
| Message-ID | <qrm2t2$18de$1@gioia.aioe.org> |
| In reply to | #19676 |
[cut] > La select iniziale ti calcolava l'ultimo giorno di TUTTI i dipendenti, > per poi buttare via tutto e tenere solo quello della Where > > -- > Greg Ma sei sicuro? Eppure il dipendente è specidficato nella where e, tra l'altro, è una chiave. Quando ho detto meno di 2 secondi intendevo che si trattava di un tempo ragionevole che non posso misurare con precisione. Ciao Greg e grazie ancora.
[toc] | [prev] | [standalone]
Back to top | Article view | it.comp.lang.visual-basic
csiph-web