Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > it.comp.lang.visual-basic > #19829 > unrolled thread

Istruzioni SQL con VB6 e MDB con DAO

Started by"Sauro" <vicchi@crsscala.it>
First post2020-10-01 08:52 +0200
Last post2020-10-03 09:22 +0200
Articles 3 — 2 participants

Back to article view | Back to it.comp.lang.visual-basic


Contents

  Istruzioni SQL con VB6 e MDB con DAO "Sauro" <vicchi@crsscala.it> - 2020-10-01 08:52 +0200
    Re: Istruzioni SQL con VB6 e MDB con DAO "Freccia (VegetaSSj)" <NIENTESPAMfreccia_vegetassj@hotmail.invalid> - 2020-10-02 21:57 +0200
      Re: Istruzioni SQL con VB6 e MDB con DAO "Sauro" <vicchi@crsscala.it> - 2020-10-03 09:22 +0200

#19829 — Istruzioni SQL con VB6 e MDB con DAO

From"Sauro" <vicchi@crsscala.it>
Date2020-10-01 08:52 +0200
SubjectIstruzioni SQL con VB6 e MDB con DAO
Message-ID<rl3ubj$1h10$1@gioia.aioe.org>
Ho una tabella "Rilevamenti" che contiene tutte le lavorazioni
effettuate dai dipendenti da parecchi anni.
Tra gli altri la tabella contiene i sequanti campi:
Dip        campo stringa   codice dipendente    è un campo indicizzato
Comm   campo stringa   numero commessa   è un campo indicizzato
DataEff  campo data      data della lavorazione

Sono presenti 400 mila record con un massimo di 50 mila record
per un singolo dipendente.
La funzione incriminata è quella che mi deve far vedere le lavorazioni
di un dipendente per l'ultimo mese.
Ho quindi spezzato la ricerca in due fasi.
La prima per trovare la data dell'ultima registrazione per il dipendente
scelto e la seconda per trovare effettivamente le lavorazioni dell'ultimo
mese.
Tutto è andato bene fino a qualche giorno fà con tempi di esecuzione
accettabili (qualche secondo) poi improvvisamente, solo per i
dipendenti con molti record, si è arrivati a superare il minuto.
Sto tuttora facendo delle prove ed ho verificato che è la prima ricerca
(quella per trovare la data) che impiega tanto tempo.

Prima l'istruzione era:
StringaSQL="SELECT DataEff FROM Rilevamenti WHERE Dip='CodDip' ORDER BY 
DataEff DESC"
ListaRec=PublicDB.OpenRecordSet(StringaSQL)
UltimaData=ListaRec.Fields(0)

Adesso andrò a provare le seguenti due prove:
StringaSQL="SELECT TOP 1 DataEff FROM Rilevamenti WHERE Dip='CodDip' ORDER 
BY DataEff DESC"
StringaSQL="SELECT Max(DataEff) FROM Rilevamenti WHERE Dip='CodDip'"

Secondo voi quale sarà la più veloce?
C'è poi una terza istruzione ancora più veloce?
Io mi stò concentrando sull'istruzione SQL ma forse il problema è
da qualche altra parte?

Grazie a tutti
Saluti
Sauro 

[toc] | [next] | [standalone]


#19832

From"Freccia (VegetaSSj)" <NIENTESPAMfreccia_vegetassj@hotmail.invalid>
Date2020-10-02 21:57 +0200
Message-ID<1c734j84ci0x9$.gx5ld1htqw7x$.dlg@40tude.net>
In reply to#19829
Su "it.comp.lang.visual-basic",  ==Sauro=> ha scritto: 

> Adesso andrò a provare le seguenti due prove:
> StringaSQL="SELECT TOP 1 DataEff FROM Rilevamenti WHERE Dip='CodDip' ORDER 
> BY DataEff DESC"
> StringaSQL="SELECT Max(DataEff) FROM Rilevamenti WHERE Dip='CodDip'"
> 
> Secondo voi quale sarà la più veloce?
> C'è poi una terza istruzione ancora più veloce?
> Io mi stò concentrando sull'istruzione SQL ma forse il problema è
> da qualche altra parte?

Premesso che access è tutto fuorchè prevedibile, devi prelevare le
rilevazioni del mese solare, e dell'ultimo mese in cui il dipendente ha
rilevamenti, perchè altrimenti trovo inutile cercarsi la data prima.
Ad ogni modo il TOP 1 dovrebbe essere più veloce, prova ad indicizzare
la data anche.


-- 
Freccia@Bulldozer63 :D

[toc] | [prev] | [next] | [standalone]


#19834

From"Sauro" <vicchi@crsscala.it>
Date2020-10-03 09:22 +0200
Message-ID<rl98r9$1nsj$1@gioia.aioe.org>
In reply to#19832
Ciao Freccia e grazie per la tua risposta.

> Premesso che access è tutto fuorchè prevedibile, devi prelevare le
> rilevazioni del mese solare, e dell'ultimo mese in cui il dipendente ha
> rilevamenti, perchè altrimenti trovo inutile cercarsi la data prima.

Per cercare le rilevazioni dell'ultimo mese devo prima capire di quale
mese si tratta. 

[toc] | [prev] | [standalone]


Back to top | Article view | it.comp.lang.visual-basic


csiph-web