Newsgroup: it.comp.lang.visual-basic
Titolo: Attesa per compattazione DB?

Uso DAO 3.6
Ho un Db Access su un server, quando si fa il CompactDatabase da una delle 4 
postazioni pc, il tempo di attesa è considerevole.
Ho pensato di visualizzare un form, con una progressbar che indica lo stato 
dell'operazione.
Il problema è che, non so quanto dura l'operazione e quindi non posso 
impostare il valore max della progressbar.
Mi date un consiglio su come fare, oppure altra soluzione.
Grazie
Carmelo 

 postazioni pc, il tempo di attesa è considerevole.
Quantifica il "considerevole.
bye

 Quantifica il "considerevole.
E pure i mega del DB aggiungerei :)
-- 
Greg 

 E pure i mega del DB aggiungerei :)
E come risolvono il problema queste info?
L'unica è mettere una progressbar che va avanti e indietro con la scritta 
"attesa...".
Nemmeno Access conosceil tempo di compattazione necessario dato che ogni 
tanto la sua progressbar si inchioda.
Ciao 

 ha scritto nel messaggio 
news:46792ac7$0$37202$4faf...@reader3.news.tin.it...


 ha scritto

in clipper come escamotage avevo fatto una cosa del genere:
la prima volta, clessidra, ti segni quanto tempo ci mette, e finita li'.
dalla seconda volta, puoi usare qualcosa come "tempo previsto: XX".
ciao, a.

 E come risolvono il problema queste info?
Ed anche tu hai ragione :-)
In effetti ci ho pensato dopo aver postato che si sarebbe potuto mettere 
una progressbar che fa avanti e dietro (l'idea l'ho avuta proprio 
vedendo thunderbird mentre scarica la posta).
bye

 Ciao
Beh, io con database di 5 mega faccio compattazione, eliminazione vecchio, 
rename del nuovo, e altre operazioni che non ricordo in circa un secondo.
In questo caso la progress è inutile. E allora sarebbe opportuno avere 
dimensioni e tempi.
Se il db è due mega, magari il problema è altrove. Forse è perchè la 
compattazione avviene in rete, e allora bisognerebbe fare questa operazione 
dalla postazione dove risiede anche il db.
-- 
Greg 

"greg" <gre...@tin.it.invalid> ha scritto

questo e' indubbio.
rispetto a quello che fai tu io per abitudine, invece di eliminarlo, prima 
di compattare copio il vecchio db in *-old.mdb (non si sa mai). pero' su un 
pc recente un db fino a 30-40 mb quasi non te ne accorgi.
ho provato adesso con uno di 13mb, da access, e ci ha messo circa 1-2".
per uno mio in locale di 350mb servono (sul portatile) circa 55".
per uno di 120-150 sul server avevo provato a farlo in rete. ho visto che ci 
metto molto meno (1/5, 1/10) a
- copiarlo in locale
- pack
- ricopiare sul server (new e old...)
ciao, a. 

 dimensioni e tempi.
Bisogna vedere appunto di quant'è il db e se è in locale o no.
Comunque sia se il db è grosso conviene copiarlo in locale, compattarlo e 
ributtarlo su.
Mai provato su db di 300MB? ci vogliono i suoi 5 minuti.
Io trovai anche un db mai compattato di 1900MB (yes, quasi raggiunto il 
limite fisico di 2Gb) e ci sono voluti mi pare una ventina di minuti :)
Ciao 


Non so se avrebbe l'effetto desiderato: la CompactDatabase mi sa tanto che sia
bloccante, quindi l'interfaccia utente resterebbe "frozen".
A meno di non delegare la compattazione ad un altro processo (o thread, ma in
questo le cose si complicano un pelino, con VB6).
Bye
Raf
-----------------------------------------------------
Funk: cooler than the other side of the pillow.

 limite fisico di 2Gb) e ci sono voluti mi pare una ventina di minuti :)
tsk... pivello! :-P
In azienda abbiamo un database che è grosso quasi 12GB (dodicigigabait!) 
sotto Firebird.
Ci credi che una ricerca full-text sulla tabella che da sola pesa 9GB (è 
una tabella contenente solo dati BLOB) ci mette 2 secondi?
(Il server è un semplice P4 dual core 3.0 Ghz con 2GB di RAM e 250GB HD 
del luglio 2006, che funge anche da file server e Web Server di una 
seconda applicazione interna all'azienda).
Io sono rimasto impressionato.

 tabella contenente solo dati BLOB) ci mette 2 secondi?
Per crederci ci credo, visto che anche con altri sistemi come 
Sql-Server o MySql si va su quei numeri lì.
Diciamo che un dbms server ha il vantaggio di poter mettere in cache le 
ricerche più frequenti, gli indici che si crea e che scopre essere più 
efficienti, ecc...
Ciao
Alberto
-- 
Georges Pompidou: Un uomo di stato è un politico che dona se stesso al 
servizio della nazione. Un politico è un uomo di stato che pone la 
nazione al suo servizio.

 per uno mio in locale di 350mb servono (sul portatile) circa 55".
E' rassicurante; vuol dire che i miei db che dopo 4-5 anni sono arrivati a 5 
mega possono andare avanti ancora molti anni senza problemi.
ciao
greg

 Si certo, prima copia, si sa mai.
E soprattutto copia con un progressivo a rotazione...
La storiella della compattazione che fallisce, uno ci riprova e si 
brucia anche la copia buona, è troppo frequente per ignorarla...
Alberto
-- 
Friedrich Nietzsche: Un po' di salute ogni tanto è il miglior rimedio 
per l'ammalato.

 anche la copia buona, è troppo frequente per ignorarla...
infatti. per una cosa abbastanza importante, nelle pianificate ogni ora 
copia il db da un server ad altri due (l'mdb e' piccoletto, 120-150m), anche 
se aperto, ma solo se data-ora sono piu' recenti di quelle dell'ultima 
copia. in caso estremo puo' esserci qualche incongruenza, ma meglio che il 
nulla. e almeno ua volta al giorno che e' chiuso ma piu' recente capita 
sempre.
ciao, a. 

 sotto Firebird.
Sě, ma si parlava di Access ;)
2gb in rete usato come db server da parecchie postazioni che accedevano a 
manetta tutto il giorno l'hai mai visto?
:)
Ciao 

Fabio ha scritto:

No, e spero non mi capiti mai :D

 ha scritto nel messaggio 
news:467a65c1$0$21207$5fc...@news.tiscali.it...

Perchč qual'č il problema?
Carmelo 

 ha scritto nel messaggio 
news:46792f34$0$16038$5fc...@news.tiscali.it...

Allora il Db è sul server di una rete e vi accedono da 4 postazioni, tutti i 
giorni.
La dimensione del Db adesso è di 10 mega.
La compattazione la fa direttamente sul server e il tempo di attesa si 
aggira intorna ai 4 minuti. mentre in locale è di un paio si secondi.
Ciao
Carmelo 

 Perchè qual'è il problema?
La domanda esatta sarebbe "Quali *non* sono i problemi".
Access non è un database vero e proprio... è una sorta di ibrido 
indefinibile. Funziona... per l'amor di Dio... però se devono accedervi 
più di 3 o 4 utenti, e se l'archivio è abbastanza grosso, il consiglio è 
usare un'altro motore (SQL Server Express, Firebird, MySQL, SQLite,...)
bye

 aggira intorna ai 4 minuti. mentre in locale è di un paio si secondi.
4 minuti sono troppi e forse è dovuto al fatto che tutti i 10 mega devono 
andare dal server al client e poi tornare indietro; e pure cosi sarebbero 
troppi lo stesso 4 minuti.
L'unica è compattare in locale, sul server se possibile, oppure sul client 
ma con un trasferimento esplicito mediante un copyfile.
-- 
Greg 

 aggira intorna ai 4 minuti. mentre in locale č di un paio si secondi.
In effetti se la compattazione la fai tramite rete il tempo diventa molto 
maggiore.
Per questo ti dicevo di copiartelo in locale prima di compattare, oppure 
puoi compattare direttamente dal server se sul server ci metti l'utility, 
che perň deve essere lanciata sul server, e non da un PC, altrimenti tanto 
vale.
Ciao 

 aggira intorna ai 4 minuti. mentre in locale è di un paio si secondi.
visto che dal server mal che vada ci metti 5"
5 + 2 + 5 = 9" vs 240" ...
(senza contare che di un pack che viaggia in rete mi fiderei il giusto...)
eventualmente automatizza il tutto, da programma o con le op. pianificate..
ciao, a.

 ha scritto nel messaggio 
news:5dvn9gF...@mid.individual.net...

Scusa ma non ho capito quel  5 + 2 + 5 = 9" vs 240" ...
e poi cos'è un pack?
Carmelo 

 e poi cos'è un pack?
una compattazione.
ciao, a.