anoniem Geplaatst: 25 mei 2005 Delen Geplaatst: 25 mei 2005 Ik werk met een redelijk grote database, waar telkens nieuwe data wordt bijgeschreven. Ik ben er veel mee aan het testen. Zodoende komt er veel data dubbel en onnodig in de database. Het valt me op dat als ik de data 'hard' delete vanuit Acces, ik wel lege tabellen heb, maar de database op de harde schijf evenveel ruimte in blijft nemen als voor de delete-actie. (Het gaat om substantiele hoeveelheden. 'Vol' is de database iets van 100mb, 'leeg' zou ik maar iets van 2 mb verwachten, maar het blijft gewoon 100mb) 1. Weet iemand hoe dit komt? 2. Hoe kan ik deze ruimte toch vrij maken? Het is geen groot probleem, want zodra het in productie komt krijgt de database uiteindelijke een omvang die enigzins constant is, maar ik ben wel benieuwd of er iets aan te doen valt. Is eventueel nog mogelijk om dit vanuit een VB-script te doen? ad1) Ik vermoed dat er automatisch ruimte wordt gereserveerd, maar dat wanneer de tabellen worden geleegd, de gereserveerde ruimte niet wordt aangepast. Ben ik warm? Quote Link naar reactie
anoniem Geplaatst: 25 mei 2005 Auteur Delen Geplaatst: 25 mei 2005 open Access (en niet de database waar het om gaat) EXTRA>>database hulpprogramma's>>database comprimeren vervolgens de database selecteren en alle overbodige lucht wordt eruit geperst Quote Link naar reactie
anoniem Geplaatst: 25 mei 2005 Auteur Delen Geplaatst: 25 mei 2005 [quote:b97d060df3="rgm"] 1. Weet iemand hoe dit komt? [/quote:b97d060df3] Ik weet het niet zeker, maar jouw veronderstelling over het reserveren en niet vrijgeven van de ruimte klopt wel ongeveer. [quote:b97d060df3="rgm"] 2. Hoe kan ik deze ruimte toch vrij maken? [/quote:b97d060df3] Tools -> Database Utilities -> Compact and repair... [quote:b97d060df3="rgm"] Is eventueel nog mogelijk om dit vanuit een VB-script te doen? [/quote:b97d060df3] Je kan (vanaf versie 2000) aangeven dat je de database wil "compacten" bij afsluiten: in het Tabblad Algemeen/General van de opties. Quote Link naar reactie
anoniem Geplaatst: 26 mei 2005 Auteur Delen Geplaatst: 26 mei 2005 Bedankt beide! De database is leeg nog maar 252 kb! Quote Link naar reactie
anoniem Geplaatst: 27 mei 2005 Auteur Delen Geplaatst: 27 mei 2005 [quote:b1850d9763="rgm"]Het is geen groot probleem, want zodra het in productie komt krijgt de database uiteindelijke een omvang die enigzins constant is, maar ik ben wel benieuwd of er iets aan te doen valt. Is eventueel nog mogelijk om dit vanuit een VB-script te doen? [/quote:b1850d9763]Denk er aan dat als je updates en inserts doet op je database dat de MDB file zal groeien. In Access 2000 kun je [code:1:b1850d9763]Call DoCmd.RunCommand (acCmdCompactDatabase) [/code:1:b1850d9763] gebruiken in een stukje VBA code. Hou er rekening mee dat dat compacten fout kan gaan, maak een reserve kopie als je dit in een script gaat uitvoeren. Quote Link naar reactie
anoniem Geplaatst: 28 mei 2005 Auteur Delen Geplaatst: 28 mei 2005 [quote:5dbf07dfa0]Denk er aan dat als je updates en inserts doet op je database dat de MDB file zal groeien.[/quote:5dbf07dfa0] Klopt dit? Het viel mij op dat wanneer ik een bepaalde hoeveelheid data ingeladen had, de database een omvang had van bijvoorbeeld 100mb. Na het via acces deleten van de data bleef de omvang van de database 100 mb. Het bijzondere was dat wanneer ik weer nieuwe data ging toevoegen, de database 100mb bleef, totdat het aantal records het aantal van voor de deleteactie ging overschrijden. Pas daarna ging de database weer groeien op de harde schijf. Het is voor mij best een belangrijke vraag omdat ik een database en bijbehorende VB-applicatie aan het ontwikkelen ben. Het is de bedoeling dat beiden in productie blijven met zo min mogelijk beheer. De vraag is: Blijft de grootte van de database min of meer constant? Info over de database: De database is bedoeld om positieverschillen tussen een vermogensrapportagesysteem en de backofficesystemen te analyseren en te archiveren (bijhouden van acties etc). Dagelijks wordt er een lijst met verschillen aangeleverd die verwerkt worden in de database. Deze info blijft een half jaar bewaard, en wordt vervolgens automatisch gedelete (sql = delete * from LIST where date > 6maanden). Mijn theorie is dat de database na zes maanden zijn maximale omvang heeft bereikt. Het totale aantal records zal immers niet groter worden want er wordt vanaf zes maanden nieuwe data toegevoegd, maar ook verwijdert. Heeft een niet nader te noemen bancaire instellign over een aantal jaar een ongelooflijk grote database of valt dit wel mee? (Overigens wordt de database alleen benadert vanuit Visual Basic. Gebruikers hoeven acces niet op te starten.) Quote Link naar reactie
Aanbevolen berichten
Om een reactie te plaatsen, moet je eerst inloggen