|
| Out of memory (Take II) Fra : Michael Vilhelmsen |
Dato : 10-02-03 10:17 |
|
Hej
Jeg hr en lille appl. som tilslutter sig en Firebird database.
I denne appl har jeg lavet en rutine, som henter (i dette tilfælde) 228.000
poster.
Den gennemlæber disse poster og for hve enkelt post laver den en updater
eller insert via en Stored Procedure.
I mit specifikke tilfælde får jeg en Out Of Memory fejl, når den er nået til
ca. 190.000 poster.
I Turbo Pascal 7 kunne man sætte et comiler directiv, som allokerede mere
memory til et program.
Kan man gøre noget tilsvarende i D5 ?
Jeg tror nemlig, at det er fordi min appl. selv løber tør for hukommelse
(selvom jeg egentlig troede at Windows og appl. selv styrede dette).
Jeg har endda prøvet at kører min appl. alene på maskinen (dvs. uden nogle
andre programmer kørende).
Det giver samme fejl.
Dette på trods af, at jeg har 512 Mb fysisk ram i maskinen.
Jeg har prøvet at se min task manager, og på det tidspunkt den får fejlen,
har jeg stadigvæk 98 Mb fysisk RAM fri, og 400 - 500 Mb fri i swapfilen.
Michael
| |
David A. D. Konrad (10-02-2003)
| Kommentar Fra : David A. D. Konrad |
Dato : 10-02-03 11:42 |
|
"Michael Vilhelmsen" <smom22.remove_this_tekst@tdcadsl.dk> skrev i en
meddelelse news:16K1a.73733
(...)
> Jeg har prøvet at se min task manager, og på det tidspunkt den får fejlen,
> har jeg stadigvæk 98 Mb fysisk RAM fri, og 400 - 500 Mb fri i swapfilen.
Dette lyder som en klassisk BDE-flaskehals. Har du prøvet at justere på
BDE'ens opsætning?
SQLQUERYMODE burde være server
SHAREDMEMSIZE bør nok også justeres.
USAGE LMIT bør du vist også se på.
| |
Michael Vilhelmsen (10-02-2003)
| Kommentar Fra : Michael Vilhelmsen |
Dato : 10-02-03 13:46 |
|
Jeg benytter ikke BDE.
Jeg bruger Borlands InterbaseExpress comp. som tilslutter sig databasen
direkte.
Michael
"David A. D. Konrad" <david_konrad@hotmail.com> skrev i en meddelelse
news:b27vk2$rrb$1@sunsite.dk...
> "Michael Vilhelmsen" <smom22.remove_this_tekst@tdcadsl.dk> skrev i en
> meddelelse news:16K1a.73733
>
> (...)
> > Jeg har prøvet at se min task manager, og på det tidspunkt den får
fejlen,
> > har jeg stadigvæk 98 Mb fysisk RAM fri, og 400 - 500 Mb fri i swapfilen.
>
> Dette lyder som en klassisk BDE-flaskehals. Har du prøvet at justere på
> BDE'ens opsætning?
>
> SQLQUERYMODE burde være server
>
> SHAREDMEMSIZE bør nok også justeres.
>
> USAGE LMIT bør du vist også se på.
>
>
>
| |
Thor (11-02-2003)
| Kommentar Fra : Thor |
Dato : 11-02-03 20:51 |
|
Prøv at køre uden Stored Procdure - lav din insert/update direkte
i SQL, - lav CommtRetaining undervejs, hvis det ikke er vigtigt at køre
det hele i een transaktion.
mvh Thomas Riedel, LogiHouse
"Michael Vilhelmsen" <smom22.remove_this_tekst@tdcadsl.dk> wrote in message
news:16K1a.73733$Hl6.7400310@news010.worldonline.dk...
> Hej
>
> Jeg hr en lille appl. som tilslutter sig en Firebird database.
> I denne appl har jeg lavet en rutine, som henter (i dette tilfælde)
228.000
> poster.
> Den gennemlæber disse poster og for hve enkelt post laver den en updater
> eller insert via en Stored Procedure.
>
> I mit specifikke tilfælde får jeg en Out Of Memory fejl, når den er nået
til
> ca. 190.000 poster.
>
> I Turbo Pascal 7 kunne man sætte et comiler directiv, som allokerede mere
> memory til et program.
> Kan man gøre noget tilsvarende i D5 ?
>
> Jeg tror nemlig, at det er fordi min appl. selv løber tør for hukommelse
> (selvom jeg egentlig troede at Windows og appl. selv styrede dette).
>
> Jeg har endda prøvet at kører min appl. alene på maskinen (dvs. uden nogle
> andre programmer kørende).
> Det giver samme fejl.
>
> Dette på trods af, at jeg har 512 Mb fysisk ram i maskinen.
>
> Jeg har prøvet at se min task manager, og på det tidspunkt den får fejlen,
> har jeg stadigvæk 98 Mb fysisk RAM fri, og 400 - 500 Mb fri i swapfilen.
>
> Michael
>
>
>
| |
Michael Vilhelmsen (11-02-2003)
| Kommentar Fra : Michael Vilhelmsen |
Dato : 11-02-03 23:14 |
|
Jeg har faktisk prøvet uden Stored Procedures.
Det gav samme fejl.
Det var derfor jeg gik over til Stored Procedures.
Ud over det steg hastigheden til det dobbelte.
Og det med éen transaktion er lidt nødvendigt.
Michael
"Thor" <thr@image.danmark> skrev i en meddelelse
news:4Fc2a.79423$Hl6.7615684@news010.worldonline.dk...
> Prøv at køre uden Stored Procdure - lav din insert/update direkte
> i SQL, - lav CommtRetaining undervejs, hvis det ikke er vigtigt at køre
> det hele i een transaktion.
>
> mvh Thomas Riedel, LogiHouse
>
> "Michael Vilhelmsen" <smom22.remove_this_tekst@tdcadsl.dk> wrote in
message
> news:16K1a.73733$Hl6.7400310@news010.worldonline.dk...
> > Hej
> >
> > Jeg hr en lille appl. som tilslutter sig en Firebird database.
> > I denne appl har jeg lavet en rutine, som henter (i dette tilfælde)
> 228.000
> > poster.
> > Den gennemlæber disse poster og for hve enkelt post laver den en updater
> > eller insert via en Stored Procedure.
> >
> > I mit specifikke tilfælde får jeg en Out Of Memory fejl, når den er nået
> til
> > ca. 190.000 poster.
> >
> > I Turbo Pascal 7 kunne man sætte et comiler directiv, som allokerede
mere
> > memory til et program.
> > Kan man gøre noget tilsvarende i D5 ?
> >
> > Jeg tror nemlig, at det er fordi min appl. selv løber tør for hukommelse
> > (selvom jeg egentlig troede at Windows og appl. selv styrede dette).
> >
> > Jeg har endda prøvet at kører min appl. alene på maskinen (dvs. uden
nogle
> > andre programmer kørende).
> > Det giver samme fejl.
> >
> > Dette på trods af, at jeg har 512 Mb fysisk ram i maskinen.
> >
> > Jeg har prøvet at se min task manager, og på det tidspunkt den får
fejlen,
> > har jeg stadigvæk 98 Mb fysisk RAM fri, og 400 - 500 Mb fri i swapfilen.
> >
> > Michael
> >
> >
> >
>
>
| |
|
|