AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Denkanstoß MemTable/Cachetable FireDac
Thema durchsuchen
Ansicht
Themen-Optionen

Denkanstoß MemTable/Cachetable FireDac

Ein Thema von Eppos · begonnen am 1. Okt 2020 · letzter Beitrag vom 2. Okt 2020
Antwort Antwort
Delphi.Narium

Registriert seit: 27. Nov 2017
2.587 Beiträge
 
Delphi 7 Professional
 
#1

AW: Denkanstoß MemTable/Cachetable FireDac

  Alt 2. Okt 2020, 09:58
Wenn ein Prüfprogramm, dann muss kein User "endloslange" warten und kann nicht meckern.

Wäre es denn schlimm, wenn aus den 10 mal pro Sekunde ein 9,5 mal pro Sekunde wird und aus den ca. 5 Minuten ein ca. 5 Minuten und 3 Sekunden?

Probier' doch einfach erstmal aus, ob es nicht sinnvoller ist, die Daten konkret bei Bedarf per SQL abzufragen. Wenn bei FireBird eine Abfrage (mit sehr ähnlicher Wherebedingung) sehr oft hintereinander genutzt wird, ist das "Zeugs" eh noch im Cache, im Speicher und (nach meiner Erfahrung) affig schnell.

Es wäre also erstmal zu prüfen, ob das, was Du vorhast, aus Performanzgründen überhaupt erforderlich ist. Wenn Du Pech hast, dauert die MemoryTable und der Einleseaufwand, oder das Setzen und Nutzen der Filter insgesamt länger, als die (vermuteten) 3000 Abfragen (10 * pro Sekunde * 60 Sekunden pro Minute * 5 Minuten).

@haentschman

Du weißt, dass er vorhatte alle Daten in den Arbeitsspeicher (eine MemoryTable zu laden). Und jetzt sag mir nicht, dass die dann nicht im Arbeitsspeicher liegen. Wir tauschen also hier gerade Arbeitsspeicher gegen Arbeitsspeicher?
Hast Du dafür jetzt eine sinnvolle Begründung, warum die Daten in 'ner Memorytable, 'nem TDirectory im Arbeitsspeicher sinnvoll sein könnten, in 'ner Query aber nicht?

Und ich schrieb: Sinnvoll bei ein paar 100 Sätzen. Also: Wenig. Bei 10000den oder gar Millionen ist es natürlich absoluter Humbug mit Filtern zu arbeiten. Dann ist aber auch ein Locate völlig daneben und 'ne Memorytable und ein TDirectory ebenso.

Ein Problem bei vielen Programmieren ist leider, dass sie die Leistungsfähigkeit von modernen Datenbanksystemen gnadenlos unterschätzen und deshalb mit viel Aufwand im Programm das nachbauen, was sie von der Datenbank selbst mit 'nem einfachen select mal eben performant geliefert bekommt.

Geändert von Delphi.Narium ( 2. Okt 2020 um 09:59 Uhr) Grund: Schreibfehler
  Mit Zitat antworten Zitat
Eppos

Registriert seit: 7. Aug 2006
Ort: Heilbronn
524 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Denkanstoß MemTable/Cachetable FireDac

  Alt 2. Okt 2020, 10:04
Also grundsätzlich wird bisher immer ein SQL mit der entsprechenden Where-Bedingungn abgesetzt. Dies funktioniert auch schnell, aber der Mitarbeiter muss warten, also er startet das Prüfprogramm.
Und die ständige Abfrage dauert immer ca. 30 ms. Dies ist nicht die einzige Tabelle die Daten beinhaltet, die zur Prüfung notwendig sind.

In der besagten Tabelle sind nur 10-50 Datensätze enthalten, diese in den Speichern zu nehmen und über den Filter einzugrenzen sehe ich als Peformanceverbesserung an.
In einer weiteren Tabelle benfalls nur 10-20.
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.587 Beiträge
 
Delphi 7 Professional
 
#3

AW: Denkanstoß MemTable/Cachetable FireDac

  Alt 2. Okt 2020, 10:09
Also jetzt haben wir mal eine Mengenangabe.

Bei so kleinen Mengen ist ein Filter sinnvoll.

Und wenn Du davon ein paar Tabellen hast, sehe ich keinen Grund, warum Du das nicht so machen solltest.
  Mit Zitat antworten Zitat
Eppos

Registriert seit: 7. Aug 2006
Ort: Heilbronn
524 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Denkanstoß MemTable/Cachetable FireDac

  Alt 2. Okt 2020, 10:31
Perfekt, dickes Danke schön!
  Mit Zitat antworten Zitat
Antwort Antwort


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 03:50 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