AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Speicherbedarf bei Datenbank Query
Thema durchsuchen
Ansicht
Themen-Optionen

Speicherbedarf bei Datenbank Query

Ein Thema von AndyDF · begonnen am 1. Sep 2014 · letzter Beitrag vom 2. Sep 2014
 
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#8

AW: Speicherbedarf bei Datenbank Query

  Alt 2. Sep 2014, 11:29
Da es hier ja um Speicherbedarf und Performance geht kann man zunächst mal generell festhalten, dass Performance und Speicherbedarf sich umgekehrt proportional verhalten und wie immer gibt es Ausnahmen von der Regel.

Betrachten wir einmal den Fall, wo die Daten im Speicher liegen und für jedes Feld soviel Platz reserviert ist, wie dort maximal gespeichert werden kann. Jetzt haben wir sehr viel Platz verbraucht, allerdings sind die Zugriffe wesentlich schneller, da der Speicherbereich für jede Zeile mit einer einfachen Formel berechnet werden kann.
Code:
ZeilenSpeicher = Zeilenlänge * (Zeile-1)
Mit den Feldern geht das fast analog, da man jetzt nur noch die Länge der vorherigen Felder dazuzählen muss.

Liegen die Daten jetzt aber speicheroptimiert vor (die Felder nur so lang wie nötig), dann muss für jede Zeile die aktuelle Zeilenlänge bestimmt werden. Vereinfachen kann man das durch eine Längenangabe vor jeder Zeile, die dann aufaddiert wird. Es bleibt aber dabei, dass der Verwaltungsaufwand steigt und damit die Performance sinkt.

Wenn Änderungen an den Daten erfolgen, dann wird das insgesamt dramatischer, denn einfach so kann man eben nicht etwas im Speicher "dazwischen einfügen". Hier müssen dann ganze Blöcke verschoben werden. Ist der Platz aber schon reserviert, dann kann der einfach dort hineingeschrieben werden.

Einzig bei der Übertragung kommt es dann auf die Größe an. Hier gibt es unterschiedliche Möglichkeiten (Komprimierung, schlankes Format, ...) um die Performance zu erhöhen, wobei genau das bei sehr kleinen Paketen eher kontraproduktiv ist und bei grossen Paketen die Geschwindigkeit erhöht.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
 

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:40 Uhr.
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