Avatar billede porsbol Nybegynder
20. februar 2002 - 22:05 Der er 7 kommentarer

Hvorfor bliver basen (.mdb filen) så uforholdsmæssig stor ?

Dette problem opstod først, da jeg gik fra Access97 til Access2000:
Når jeg importerer en .txt fil på fx 15 mb forøges størrelsen på basefilen til 992mb!
Det er ren luft, for en efterfølgende komprimering nedsætter størrelsen igen til noget fornuftigt (ca 20mb)
Det er ikke kun ved import af store .txt filer.
Import af mindre filer "puster" også basen op til fx 500 mb.
Ligeledes er det ikke kun importering alene, der øger størrelsen:
Hvis importen lægges i en makro og der efterfølgende i makroen også køres nogle forespørgsler, der tilføjer, opretter og sletter, forøges størrelsen meget efterhånden som hvert trin afvikles.
Hvordan kan det være? 

20. februar 2002 - 22:11 #1
Databasen vokser ekstra meget i Access 2000, hvis der er flere samtidige brugere på, når du foretager import eller tilføjelsesforespørgsler m.m.

Prøv evt at overveje at lade hver bruger have deres egen frontend og en fælles backend.

/Thomas
Avatar billede johs_j Novice
20. februar 2002 - 22:23 #2
Du kan prøve at komprimere databasen. Findes i menuen Funktioner / Databasefunktioner
Avatar billede porsbol Nybegynder
20. februar 2002 - 22:31 #3
Thomas
Flere brugere?
Når jeg arbejder med filen er jeg helt alene. Kan det påvirke basen/filen, at der før har været andre inde og arbejde med den?

johs_j
Komprimering hjælper, men det skal jo ikke være noget man skal gøre hver gang man har lavet en import eller forespørgsel.
20. februar 2002 - 23:22 #4
hmm, hvis det kun er dig, som er på, så er det underligt at den vokser SÅ meget!

Det kan muligvis have betydning, hvis alle ikke har været logget af inden du åbnede databasen (dvs hvis .ldb-filen ikke har været slettet) Prøv evt at åbne databasen eksklusivt og se om resultatet er det samme.

Generelt er der ikke så forfærdelig meget at gøre ved Access' vokseværk. Men fra og med Access 2000 kan man jo sætte den til at komprimere hver gang man lukker (Funktioner->Indstillinger->Generelt). Jeg ved ikke om det kan hjælpe en smule?

/Thomas
Avatar billede jesperthomsen Nybegynder
21. februar 2002 - 08:18 #5
Bruger du parametriserede forespørgsler? De får basen til at vokse voldsomt. Jeg havde problemer med en 400 KB base der voksede til ½ giga i løbet af få dage indtil jeg begyndte at åbne parametriserede forespørgsler som unavngivne - det løste det. Den har ikke været komprimeret siden og den bliver brugt heftigt.
Avatar billede porsbol Nybegynder
21. februar 2002 - 09:30 #6
Tak for svarene. Jeg tror dog ikke det er nok til at løse problemet.

Thomas
.ldb filen har været slettet. Det har jeg været meget opmærksom på.
Problemet er der også selvom jeg har komprimeret/repareret filen til min harddisk, som kun jeg har adgang til.  (WIN NT)
Det er jeg blevet nødt til, fordi der ikke er plads nok på de netværksdrev basen skal bruges på (ledig plads svinger mellem 100-400mb).

Jesper
Parametriserede forespørgsler?
Hvis du med det udtryk mener parametre i kriterierne så ja. Jeg har flere forespørgsler hvor der i kriterierne henvises til felter i mine formularer.
Om de åbnes som unavngivne ved jeg ikke. Jeg er ikke helt klar over, hvad det dækker over?
I øvrigt bruger jeg ikke den slags kriterier i forbindelse med de famøse forespørgsler (tabeloprettelses-, tilføjelses-).
De køres i makroer uden tilknytning til formularer.
De indeholder kun simple kriterier

Det kan godt være, at det alligevel udløser problemet, men det er i så fald ikke hele forklaringen, for basen bliver ikke kun MEGET stor, når der er forespørgsler blandet ind i det. Det sker også, når jeg ikke har gjort andet end at importere en .txt fil - også selv om importen køres manuelt uden om makroer. (dog stadig med brug af importspecifikationer)


Baggrund for basen:
Den kører som et isoleret system, hvor jeg af og til laver opdatering af nogle grunddata fra mainframen via .txt filer udtrukket herfra.
1. Først sletter jeg alle de gamle data. (Berører ikke samtlige tabeller i basen)
2. Derefter importerer jeg de nye data.
3. Til sidst bearbejder jeg de nye data med de omtalte forespørgsler, og så er basen klar til brug.
I pkt. 2 og 3 vokser basestørrelsen MEGET for hver import/forespørgsel der køres.



Til sidst:
Kunne man forestille sig, at man skal sætte en eller anden parameter et eller andet sted i egenskaberne for basen.
Det kunne måske også være et eller andet i forbindelse med WIN NT, netværket og Access 2000. (Der var ikke problemer med Access 97, hvor netværk og styresystem var det samme)

Mvh
porsbol
Avatar billede jesperthomsen Nybegynder
21. februar 2002 - 09:41 #7
Parametriserede forespørgsler som jeg bruger dem køres via DAO i stil med

  set qdf = currentdb.querydefs("Query")
  with qdf.parameters
    !P1 = "10"
    !P2 = 1
  end with
  set rs = qdf.openrecordset

Eksemplet her er skrevet direkte i hånden så det kan sikkert ikke afvikles/kompileres.

De får databasen til at vokse fra 8KB pr gang og op alt efter hvor mange parametre du bruger. I forespørgslen (i eksemplet altså "Query ") skal du så have defineret dine parametre med navnende P1 og P2.

Hvis dine forespørgsler kører direkte på forms i stedet, så har jeg ikke oplevet problemet i så grel en grad som du beskriver.

Hvis du har forespørgsler af denne slags kan du undgå bloating (det er i øvrigt søgeordet du skal anvende hvis du søger hos MS eller i nyhedsgrupper; bloat) skal du lave en lille workaround som ser sådan her ud:
  set qdf = currentdb.createquerydef("")
  qdf.sql = currentdb.querydefs("Query").sql

Og så ellers arbejde videre.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester