Avatar billede cj20 Nybegynder
21. marts 2003 - 15:32 Der er 20 kommentarer

Langsom indlæsning af underformular

Hej
Jeg vedligeholder dagligt en netværks baseret Accessdatabase, problemet er nu at denne er blevet utrolig langsom - størrelsen er 19MB,
Funktionen af databasen:
Når databasen åbnes kommer en startmenu, med flere kommandoknapper, ved tryk på en af disse kommer en popup "Indtast varenr.", herefter åbnes en underformular, indeholdende en del billeder (mine billedmapper fylder efterhånden ca. 500MB) og tekst - det tager ca. 2 min. at åbne denne som fylder 2 sider, hvorefter den skal udskrives.
Databasen indeholder:
22 sammenkædede tabeller, 20 ikke-sammenkædede tabeller, 21 forespørgsler og 19 formularer, er den ved at vokse sig for stor?
Jeg har prøvet at lave en ny database hvor jeg har importeret alle tabeller osv. det har hjulpet på størrelsen, men ikke på hastigheden,
hvad er der galt??????
21. marts 2003 - 15:37 #1
hvilket format ligger billederne i?

Det er garanteret her problemet ligger gemt. Access arbejder ikke så effektivt med billeder.

Hvis billederne ikke ligger i .bmp-format vil access vist selv 'omdanne' dem til dette format i hukommelsen. Det tager tid og systemresourcer.

Omvendt fylder .bmp-filer mere end f.eks. .jpg eller .gif
Avatar billede cj20 Nybegynder
21. marts 2003 - 15:48 #2
Alle billederne ligger i .jpg-format ca. 2600 billeder, de vil sikkert fylde en del mere i .bmp-format? Kan det ikke have noget at gøre med alle de sammenkædede tabeller?
Avatar billede cj20 Nybegynder
21. marts 2003 - 15:56 #3
Ups jeg kom til at indsætte et svar istedet for en kommentar, beklager!!!
Avatar billede terry Ekspert
21. marts 2003 - 16:23 #4
cj20>I very much doubt that the joined tables are ALL used in the one form. One way to see if it is the joined tables is to comment out thecode which loads the picture.
Something else I noticed in your question!
"herefter åbnes en underformular"
Do you open the sub form AFTER "Indtast varenr." ? Does the sub from get close and then opened for each picture? This will also take a little time. It would be faster just to change the picture source.
Avatar billede terry Ekspert
21. marts 2003 - 16:24 #5
make sure you tables are index too
Avatar billede terry Ekspert
21. marts 2003 - 16:24 #6
.
Avatar billede mugs Novice
21. marts 2003 - 16:28 #7
Jeg tror ikke, at det hat noget at gøre med hverken størrelsen eller sammenkædning.

Som thomasjepsen er inde på, vil jeg prøve at se på billederne. Hvordan ligger de? Ligger de inde i selve db, vil db blive stor og langsom. Hvis det er tilfældet, så læg billederne i en speciel mappe, og henvis til dem ved en tekststreng.
Avatar billede terry Ekspert
21. marts 2003 - 16:31 #8
mugs>I think they are already in a folder, (mine billedmapper fylder efterhånden ca. 500MB)
Avatar billede mugs Novice
21. marts 2003 - 16:38 #9
terry > yes, I guess You are right.
Avatar billede juks Novice
23. marts 2003 - 22:20 #10
hej
----
det tager ca. 2 min. at åbne denne som fylder 2 sider, hvorefter den skal udskrives.
----
er det en rapport
prøv at fjerne det flueben der hedder "udfør autokorrektur af navn"  inde under Funktion -> indstillinger
Avatar billede cj20 Nybegynder
24. marts 2003 - 08:36 #11
Hej alle
Tak for de mange svar i løbet af weekenden. Efter indtastning af varenr. i popup'en, åbnes en formular på 2 sider, den indeholder typisk 4-6 billeder som indlæses ved hjælp af en tekststreng fra Windows mapper. Formularen henter hovedparten af oplysningerne fra forespørgsler, det er ved indlæsningen det tager meget lang tid. Selve formularen udprintes, det er ikke en rapport. Jeg har lige skrevet SQL-sætningen for formularen, det kunne måske være her?

SELECT [fsp Prod kort_Oplysninger].NKNR, [fsp Prod kort_Oplysninger].*, [fsp Glider_Beskrivelser].*, [tbl Gev_slange].[GEV SLANGE], [tbl Kontrolpunkter].*, [fsp HB_Beskrivelser 1-5].*, [fsp HB_Beskrivelser 6-10].*, [fsp HB_Beskrivelser 11-15].*, [fsp HB_Beskrivelser 16-20].*, [fsp HB_Beskrivelser 21-25].*, [fsp BT_Beskrivelser].*, [fsp Diverse dele].*
FROM ([fsp Diverse dele] INNER JOIN (([fsp HB_Beskrivelser 16-20] INNER JOIN ([fsp HB_Beskrivelser 1-5] INNER JOIN ([fsp HB_Beskrivelser 11-15] INNER JOIN ([fsp HB_Beskrivelser 6-10] INNER JOIN ((([fsp Prod kort_Oplysninger] INNER JOIN [fsp Glider_Beskrivelser] ON [fsp Prod kort_Oplysninger].NKNR = [fsp Glider_Beskrivelser].[NK NR]) INNER JOIN [tbl Gev_slange] ON [fsp Prod kort_Oplysninger].NKNR = [tbl Gev_slange].[NK NR]) INNER JOIN [tbl Kontrolpunkter] ON [fsp Prod kort_Oplysninger].NKNR = [tbl Kontrolpunkter].NKNR) ON [fsp HB_Beskrivelser 6-10].[NK NR] = [fsp Prod kort_Oplysninger].NKNR) ON [fsp HB_Beskrivelser 11-15].[NK NR] = [fsp Prod kort_Oplysninger].NKNR) ON [fsp HB_Beskrivelser 1-5].[NK NR] = [fsp Prod kort_Oplysninger].NKNR) ON [fsp HB_Beskrivelser 16-20].[NK NR] = [fsp Prod kort_Oplysninger].NKNR) INNER JOIN [fsp HB_Beskrivelser 21-25] ON [fsp Prod kort_Oplysninger].NKNR = [fsp HB_Beskrivelser 21-25].[NK NR]) ON [fsp Diverse dele].[NK NR] = [fsp Prod kort_Oplysninger].NKNR) INNER JOIN [fsp BT_Beskrivelser] ON [fsp Prod kort_Oplysninger].NKNR = [fsp BT_Beskrivelser].[NK NR]
WHERE ((([fsp Prod kort_Oplysninger].NKNR) Like [ Tast nu NK nr]));
Avatar billede terry Ekspert
24. marts 2003 - 08:49 #12
In a SQL such as this with many JOINS then it is going to take some time and its hard to say how long. Make sur  that the fields you are JOINing on are indexed, also those on the WHERE and its also a good idea to select only the fields you need NOT *
Avatar billede cj20 Nybegynder
24. marts 2003 - 09:08 #13
terry >
Mange af tabellerne har jeg tænkt på at samle i én "supertabel" indeholdende så mange oplysninger som muligt, derefter lade formularen hente oplysninger direkte fra tabellen, kan det hjælpe på hastigheden, eller bliver tabellen for stor? Hvad er maks størrelsen for en tabel med linier/kolonner?
Avatar billede cj20 Nybegynder
24. marts 2003 - 09:56 #14
thomasjepsen >
Findes der programmer som kan ændre billedformatet fra .jpg til .bmp på en række billeder? På en måde så man slipper for at åbne hvert enkelt billede for så at bruge "gem som"?
Avatar billede terry Ekspert
24. marts 2003 - 10:16 #15
how long does the query take compared to the form?

I would wait with converting your pictures until you know what the problem is.
Avatar billede cj20 Nybegynder
24. marts 2003 - 10:36 #16
terry >
Formularen bruger flere forespørgsler til indhentning af oplysninger, det tager ca. 2 min. at indlæse oplysningerne, som så danner formuleren indeholdende de aktuelle oplysninger, udfra det indtastede varenr. For nogen tid siden tog det kun et øjeblik at indlæse formularen (ca. 10 sek.), der er ikke lavet nogen større ændringer i databasen, kun tilføjet nye poster i tabellerne.
Avatar billede terry Ekspert
24. marts 2003 - 16:11 #17
if you run the query how long does that take to display the result? This will give you an idea if it is something else on the form OR if it is the query.
Avatar billede cj20 Nybegynder
26. marts 2003 - 08:45 #18
terry >
Efter flere forsøg har jeg fundet ud af at det er mine forspørgsler det er galt med, det tager meget lang tid at få vist resultatet, har du nogen forslag til optimering af disse - nogen specielle ting jeg skal lægge mærke til?
Jeg har prøvet at lave en kopi af databasen på min harddisk, uden sammenkædede tabeller, når den ikke er på netværket, kører den perfekt!
Avatar billede terry Ekspert
26. marts 2003 - 14:26 #19
Make sure that the fields which you are JOINing on are indexed. and also the fields in the WHERE claus are indexed too. SELECT only the fields which you need NOT * (every field)
There seems to be many JOINs are yoy 100% sure they are necessary?
Avatar billede terry Ekspert
09. april 2003 - 19:47 #20
and?
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