Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Vergleich Clientdatasets (https://www.delphipraxis.net/211659-vergleich-clientdatasets.html)

Frickler 20. Okt 2022 08:22

AW: Vergleich Clientdatasets
 
Zitat:

Zitat von ventiseis (Beitrag 1513509)
PS: Tabellenaufbau beim Beispiel:

BOOLEAN: 4 Feld(er)
DATE: 6 Feld(er)
FMTBCD(5,2): 1 Feld(er)
INTEGER: 10 Feld(er)
MEMO: 1 Feld(er)
STRING(1): 1 Feld(er)
STRING(10): 14 Feld(er)
STRING(100): 8 Feld(er)
STRING(12): 1 Feld(er)
STRING(20): 2 Feld(er)
STRING(26): 1 Feld(er)
STRING(30): 2 Feld(er)
STRING(34): 1 Feld(er)
STRING(35): 2 Feld(er)
STRING(50): 4 Feld(er)
STRING(5000): 3 Feld(er)
TIMESTAMP: 3 Feld(er)

Was ist, wenn Du STRING(5000) durch BLOB Felder ersetzt?

ventiseis 20. Okt 2022 09:01

AW: Vergleich Clientdatasets
 
Zitat:

Zitat von Papaschlumpf73 (Beitrag 1513512)
LogChanges := false;

Gerade probiert, wirkt sich sehr positiv aus. Dankeschön!

ventiseis 20. Okt 2022 09:18

AW: Vergleich Clientdatasets
 
Zitat:

Zitat von Frickler (Beitrag 1513513)
Was ist, wenn Du STRING(5000) durch BLOB Felder ersetzt?

Sehr schön.

Wirkt sich auch sehr positiv aus. Könnte da etwas mit den Sonderzeichen kaputt gehen? Eigentlich ist es ja nicht der richtige Datentyp.
Andererseits müsste BLOB die Bytes nehmen und zurückliefern, wie sie sind...

Delphi.Narium 20. Okt 2022 09:49

AW: Vergleich Clientdatasets
 
Du hast doch schon ein Memo-Feld, was wohl bedeutet: Beliebig viel Text.

String(5000) ist auch beliebig Text, nur halt maximal 5000 Zeichen, also eher eine Teilmenge von Memo.

Daher einfach mal (versuchsweise) die String(5000) nicht in Blob, sondern in Memo ändern.

Dann hast Du in allen "größeren" Stringfeldern die gleichen Zeichensatzprobleme, wie beim bisherigen Memo. Gab es da schonmal Zeichensatzprobleme?

himitsu 20. Okt 2022 10:13

AW: Vergleich Clientdatasets
 
Zitat:

Nur 32bit, ohne das 4GB-Flag.
Wenn du eh nur 2 GB hast und Diese sind auch noch fragmentiert, dann ist es schwer einen zusammenhängenden Speicherblock zu bekommen ... erfahrungsgemäßs kannst durchschnittlich maximal mit 700-900 MB rechnen.
Wenn ASLR aktiv ist, wird es noch schlimmer.

Großer String durch TextBlob (MEMO) ginge schon.
Wenn CDS WdieStrings als Unicode und nicht als UTF-8 oder sonstwie speichert speichert dann sind immernoch über es 20KByte pro Record.

Hast du wirklich viele 10.000de Records?
Und ja, wenn das Log aus ist, spart es auch noch bissl was.

ventiseis 20. Okt 2022 11:50

AW: Vergleich Clientdatasets
 
Nach ein paar Tests mit dem Beispielprogramm werde ich es so machen: Memofelder verwenden und LogChanges auf false setzen.

Vielen Dank für die Hilfe :-D!


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:46 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz