Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > it.comp.lang.visual-basic > #19489 > unrolled thread
| Started by | Gulp® <gulp@hotmail.it> |
|---|---|
| First post | 2019-01-02 11:58 +0100 |
| Last post | 2019-05-03 18:06 +0200 |
| Articles | 9 — 4 participants |
Back to article view | Back to it.comp.lang.visual-basic
database access Gulp® <gulp@hotmail.it> - 2019-01-02 11:58 +0100
Re: database access Greg <greg@alicie.com> - 2019-01-02 15:47 +0100
Re: database access Franz_aRTiglio <franzgol@N0SPAMtin.it> - 2019-01-02 16:07 +0100
Re: database access Gulp® <gulp@hotmail.it> - 2019-01-02 19:22 +0100
Re: database access Franz_aRTiglio <franzgol@N0SPAMtin.it> - 2019-01-02 20:47 +0100
Re: database access Greg <greg@alicie.com> - 2019-01-03 10:44 +0100
Re: database access Franz_aRTiglio <franzgol@N0SPAMtin.it> - 2019-01-03 16:23 +0100
Re: database access Greg <greg@alicie.com> - 2019-01-03 17:51 +0100
Re: database access Giacobino da Tradate <jacopinodatradate@gmail.com> - 2019-05-03 18:06 +0200
| From | Gulp® <gulp@hotmail.it> |
|---|---|
| Date | 2019-01-02 11:58 +0100 |
| Subject | database access |
| Message-ID | <q0i5h7$1sq1$1@gioia.aioe.org> |
Qualcuno sa se in VB6 la compattazione del database che si fa con CompactDatabase su un file mdb è la stessa operata da Access ? Il file dopo la compattazione risulta chiaramente più leggero, ma come viene alleggerito cosa viene eliminato? -- Gulp® -- "Partimque figuras retulit antiquas, partim nova monstra creavit." (La Metamorfosi - Ovidio)
[toc] | [next] | [standalone]
| From | Greg <greg@alicie.com> |
|---|---|
| Date | 2019-01-02 15:47 +0100 |
| Message-ID | <q0iit9$mnr$1@solani.org> |
| In reply to | #19489 |
Il 02/01/19 11:58:50 Gulp® ha scritto: > Qualcuno sa se in VB6 la compattazione del database che si fa con CompactDatabase su un file mdb è la stessa operata > da Access ? Anche da VB6 che io sappia è sempre il motore Jet a occuparsi della compattazione Tuttavia, se sul non ci fossero installate le realtive librerie si potrebbe usare questa utility di MS: https://support.microsoft.com/it-it/help/295334/jet-compact-utility-is-available-in-download-center > Il file dopo la compattazione risulta chiaramente più leggero, ma come viene alleggerito cosa viene eliminato? Credo che i campi vengano ridotti alla effettiva dimensione utilizzata: in un campo txt di 50 caratteri che contiene "Milano" dopo la compattazione sarà un campo che occupa lo spazio necessario a memorizzare 6 caratteri invece di 50 -- Greg
[toc] | [prev] | [next] | [standalone]
| From | Franz_aRTiglio <franzgol@N0SPAMtin.it> |
|---|---|
| Date | 2019-01-02 16:07 +0100 |
| Message-ID | <q0ik0i$1vdj$1@gioia.aioe.org> |
| In reply to | #19489 |
Sembra che Gulp® abbia detto : > Qualcuno sa se in VB6 la compattazione del database che si fa con > CompactDatabase su un file mdb è la stessa operata da Access ? > > Il file dopo la compattazione risulta chiaramente più leggero, ma come viene > alleggerito cosa viene eliminato? i record marcati come "cancellato". In pratica un database e' come un libro che ad ogni nuovo record viene aggiunta una pagina, per velocità (poi dipende anche dal motore del database) quando cancelli/elimini/modifichi** un record anzichè spostare tutta la mole di dati la "pagina" viene marcata come "cancellata"; quando compatti in pratica viene creato un secondo database e tutti i record non marchiati come "cancellato" vengono copiati nel nuovo. **Alcuni database ad altissima velocità NON modificano un record esistente ma "cancellano" il vecchio e ne creano uno nuovo con i dati modificati. es: se hai un "libro" con 10.000 pagine e cancelli pagina 4 anzichè spostare "indietro" 9996 pagine semplicemente pagina 4 viene marchiata come "cancellata", altrimenti il database diventerebbe lentissimo ad ogni modifica/cancellazione.
[toc] | [prev] | [next] | [standalone]
| From | Gulp® <gulp@hotmail.it> |
|---|---|
| Date | 2019-01-02 19:22 +0100 |
| Message-ID | <q0ivgc$1lcm$1@gioia.aioe.org> |
| In reply to | #19491 |
Il 02/01/19 16:07, Franz_aRTiglio ha scritto: > es: se hai un "libro" con 10.000 pagine e cancelli pagina 4 anzichè > spostare "indietro" 9996 pagine semplicemente pagina 4 viene > marchiata come "cancellata", altrimenti il database diventerebbe > lentissimo ad ogni modifica/cancellazione. Ora è chiaro, grazie. Compactdatabase "di VB6" secondo te utilizza lo stesso algoritmo della compattazione presente in Access 97? -- Gulp® -- "Partimque figuras retulit antiquas, partim nova monstra creavit." (La Metamorfosi - Ovidio)
[toc] | [prev] | [next] | [standalone]
| From | Franz_aRTiglio <franzgol@N0SPAMtin.it> |
|---|---|
| Date | 2019-01-02 20:47 +0100 |
| Message-ID | <q0j4ec$cdq$1@gioia.aioe.org> |
| In reply to | #19492 |
Gulp® ha detto questo mercoledì : > Il 02/01/19 16:07, Franz_aRTiglio ha scritto: > >> es: se hai un "libro" con 10.000 pagine e cancelli pagina 4 anzichè >> spostare "indietro" 9996 pagine semplicemente pagina 4 viene >> marchiata come "cancellata", altrimenti il database diventerebbe >> lentissimo ad ogni modifica/cancellazione. > > Ora è chiaro, grazie. > Compactdatabase "di VB6" secondo te utilizza lo stesso algoritmo della > compattazione presente in Access 97? non lo so per certo ma non mi stupirei di scoprirlo, in fondo VB6 e access 97 sono contemporanei e il metodo e' (era) universalmente adottato, probabilmente grazie alla virtualizzazione integrata nei processori multicore moderni ci saranno algoritmi diversi/piu performanti, ma credo che vb6 sia "fermo" ai vecchi metodi :D
[toc] | [prev] | [next] | [standalone]
| From | Greg <greg@alicie.com> |
|---|---|
| Date | 2019-01-03 10:44 +0100 |
| Message-ID | <q0klhv$46h$1@solani.org> |
| In reply to | #19491 |
Il 02/01/19 16:07:12 Franz_aRTiglio ha scritto: > Sembra che Gulp® abbia detto : >> Qualcuno sa se in VB6 la compattazione del database che si fa con CompactDatabase su un file mdb è la stessa >> operata da Access ? >> >> Il file dopo la compattazione risulta chiaramente più leggero, ma come viene alleggerito cosa viene eliminato? > > i record marcati come "cancellato". Ma anche il preciso ridimensionamento dei campi, come in una matrice diamica recupera moto spazio. Infatti in database di nessuna cancellazione e nessuna maddica (solo insert) si ha un grande alleggerimento dopo il Compact Buon Anno a tutti :) -- Greg
[toc] | [prev] | [next] | [standalone]
| From | Franz_aRTiglio <franzgol@N0SPAMtin.it> |
|---|---|
| Date | 2019-01-03 16:23 +0100 |
| Message-ID | <q0l9bd$1p37$1@gioia.aioe.org> |
| In reply to | #19495 |
Greg ha pensato forte : >> i record marcati come "cancellato". > > Ma anche il preciso ridimensionamento dei campi, come in una matrice diamica > recupera moto spazio. > Infatti in database di nessuna cancellazione e nessuna maddica (solo insert) > si ha un grande alleggerimento dopo il Compact guarda, non sono così esperto di database da poter confermare o smentire quanto sopra con presunzione di correttezza, ma da che ne so io i database ad alta velocità hanno una dimensione record fissa proprio per non dover frullare tabelle d'indice alla ricerca del record successivo a quello in esame; per inciso se il DB ha record a dimensione fissa basta una moltiplicazione (o una addizione ricursiva) per trovare il record successivo senza dover passare byte per byte alla ricerca del marker di inizio/fine record o dover leggere un'indice... Giusto per soddisfare la mia curiosità: hai qualche esempio di DB che usa record dinamici ?
[toc] | [prev] | [next] | [standalone]
| From | Greg <greg@alicie.com> |
|---|---|
| Date | 2019-01-03 17:51 +0100 |
| Message-ID | <q0lej1$njt$1@solani.org> |
| In reply to | #19496 |
Il 03/01/19 16:23:40 Franz_aRTiglio ha scritto: > Giusto per soddisfare la mia curiosità: hai qualche esempio di DB che > usa record dinamici ? Access, non ho altre esperienze, solo un poco di sqlexpress ma non l'ho mai usato veramente. Per provare fai un database vuoto di access, metti una tabella e 4-5 record e guarda la dimensione. Ricontrolla dopo compattazione e vedrai che la dimensione è diminuita. Una volta avevo letto un articolo di un esperto sul Visual Basic Journal, se non ricordo male, dove si diceva che lo spazio veniva recuperato riducendo il campo alla dimensione effettiva del dato contenuto -- Greg
[toc] | [prev] | [next] | [standalone]
| From | Giacobino da Tradate <jacopinodatradate@gmail.com> |
|---|---|
| Date | 2019-05-03 18:06 +0200 |
| Message-ID | <qahovm$8lr$1@gioia.aioe.org> |
| In reply to | #19489 |
Il 02/01/2019 11:58, Gulp® ha scritto: > Qualcuno sa se in VB6 la compattazione del database che si fa con > CompactDatabase su un file mdb è la stessa operata da Access ? se il motore di database e' l ostesso si' > Il file dopo la compattazione risulta chiaramente più leggero, ma come > viene alleggerito cosa viene eliminato? Che io sappia la cancellazione di un record viene fatta virtualmente, flaggando il record vecchio come "cancellato", ma non lo rimuove fisicamente. La compattazione crea una nuova copia del database, in cui si copiano solo i record attivi. -- la cricca dei giacobini (C) M.G. --- Questa e-mail è stata controllata per individuare virus con Avast antivirus. https://www.avast.com/antivirus
[toc] | [prev] | [standalone]
Back to top | Article view | it.comp.lang.visual-basic
csiph-web