Newsgroup: it.comp.lang.delphi
Titolo: [OT] SQL primo accesso al db lentissimo

Ciao a tutti,
  piccolo problema di prestazioni ....
Dopo aver acceso il pc ed aver avviato il programma, la prima interrogazione 
al db con
 
select Tabella1.*, Tabella2,* from Tabella1 Inner Join Tabella2 on 
(Tabella1.Codice=Tabella2.Codice and Tabella2.Qta>=0)
 
impiega circa 1 munto (db da 4 milioni di record, alla fine della query puo' 
restituire sia niente che qualche decina di record), tutte le altre 
interrogazioni (con la stessa query) sono pressoche' istantanee.
 
Qualche idea su come velocizzare il primo accesso ??
 
Grazie
 
Ciao
 
Daniele 
 


dopo quanto tempo dall'avvio del computer viene eseguito il primo 
accesso e che db usi?
 
-- 
Oggi c'e' una grande battaglia di idee,
ma alla fine non ci saranno ne vinti,
ne vincitori, ne idee! S. Benni da Elianto.

 e che db usi?
 
Oggi la procedura e' stata avviata dopo 2 ore che il programma e' stato 
lanciato e dopo 4 ore che il pc e' stato acceso.
Va detto che il programma si collega al db SOLO con quella procedura.
Forse e' un problema di caricamento di qualcosa..... non so .....
 
Continuo a provare ...
 
Grazie
 
Ciao
 
Daniele 
 

 Va detto che il programma si collega al db
 
che db? in locale o remoto?


 che db? in locale o remoto?
 
Il DB e' un db di terze parti installato su server ed e' firebird 2.5.
Il mio programma e' installato su un pc in rete (il mio) e si connette 
tramite firedac (delphi seattle).
 
Oggi ho lanciato la procedura ed e' stata velocissima, l'unica variazione 
rispetto agli altri giorni e' che ieri non ho spento il pc.
 
Non so se centri qualcosa ....
 
Grazie
 
Ciao
 
Daniele 
 


secondo me si, non puoi fare un test con un console tipo che abbia un 
tool per analizzare le prestazioni delle query?


 le prestazioni delle query?
Ci lavorero' sopra.
Non ho idea di quali siano i tool per ottimizzare le query, puo' andar bene 
flySpeed SQL Query?
 
Grazie
 
Ciao
 
Daniele 
 


io, 10 anni fa circa, usavo il plan di flamerobin, comunque anche io 
credo che il tuo problema sia il caricamento di una risorsa esterna al 
programma.


Ciao,
  sto usando DBeaver e, ho installato, FlySpeed SQL (credo che il primo sia 
di molto superiore al secondo ....)
In entrambi la query e' pressoche' immediata (450 millisecondi su un db di 
piu' di 4 milioni di record), esattamente come la mia applicazione DOPO il 
primo caricamento.
C'e' qualcosa che non va nella procedura .... continuo a cercare ....
 
Grazie
 
Ciao
 
Daniele
 
PS: Oggi cosa usi ?? ancora su db sql o sei passato ai non sql ?? 
 

 PS: Oggi cosa usi ?? ancora su db sql o sei passato ai non sql ??
 
non lavoro più nel settore, tengo aggiornate 2 installazioni di un 
gestionale di magazzino che usa ado per accedere a ms sql server e lo
gestico con micrososft managment studio.
Mi diletto poi di tanto in tanto con lazarus e sqlite.



Io in questi casi vado a vedere se gli indici sono a posto
nel tuo caso andrei a verificare l'esistenza di un indice
su tabella1.codice e tabella2.codice.
Ho sempre usato Mysql, non so come si comporta firebird
ma forse crea indici automaticamente e quando ci mette molto
è perchè li sta creando.
 
Eugenio.
 

 PS: Oggi cosa usi ?? ancora su db sql o sei passato ai non sql ??
che senso ha la tua domanda?
i db no-sql non sono stati creati per sostituire quelli relazionali.
 
-- 
Morde

 i db no-sql non sono stati creati per sostituire quelli relazionali.
 
Anche perché spesso pubblicizzano capacità che con un db relazionale fai
tranquillamente
 
Enrico