AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

MyDac Erfahrung

Ein Thema von Edelfix · begonnen am 31. Mär 2025 · letzter Beitrag vom 17. Apr 2025
 
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.291 Beiträge
 
Delphi 12 Athens
 
#28

AW: MyDac Erfahrung

  Alt 17. Apr 2025, 09:14
Das Problem sind nach wie vor die großen Datenmengen. Die Table Komponente kommt damit nicht zu recht.
Mit "FetchAll" true dauert der Open Befehl viel zu lange und mit "FatechAll" false kommen die genannten Fehlermeldungen.
[...]
Das kommt mir aber sehr umständlich vor. Das müsste auch anders gehen.
Das Suchen musst du dem Server überlassen - genau dafür ist er da und optimiert. Sobald du anfängst große Datenmengen vom Server zu holen und dann erst auszuwerten, baust du dir solche Probleme ins Projekt ein.

Wir haben genau die selbe Situation hier gehabt und haben dann schweren Herzens auf Queries umgestellt, die nach Möglichkeit alle Auswertungen auf dem Server ausführen. Am Ende hat es sich aber gelohnt. Der Serverzugriff ist extrem beschleunigt und Probleme durch zu große Ergebnissätze gibt's auch nicht mehr.
Genau so ist es richtig. Die Eingangsfrage beschreibt ja eine Lost Connection. Sowas hatte ich auch mal. Da sind zwei Faktoren zusammen gekommen: Die Konstruktion des Clients führte zu übergroßen Datenabfragen und der Mysql-Server war mit zu kleinen Caches konfiguriert. Denn bevor sie über TCP/IP auf die Reise geschickt werden, müssen die Daten vorher erstmal auf dem Server zusammengestellt werden. Dabei lief ihm ein Puffer über und der Server hat der TCP-Verbindung einfach die Türe zugeschlagen.

Suchen sollte man niemals clientseitig. Das funktioniert eine Weile, wenn man an der Umgebung nichts ändert. Aber dann kommen vllt. neue Arbeitsplätze dazu, die Serverlast steigt und schon sind die alten Probleme wieder da. In den vorherigen Posts wurde schon beschrieben, wie man mit WHERE-Klauseln und Queries arbeitet. Nachdem ich das Prinzip erstmal verstanden hatte, arbeite ich inzwischen ausschließlich mit Queries und gar nicht mehr mit Table-Komponenten. Locate geht auch auf Query-Objekten, manchmal macht das Sinn um in Schleifen kein Datenbank-Pingpong zu bauen. Aber immer nur auf eingegrenzten Datenmengen, nie über eine ganze physische Tabelle.
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden
  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 07:06 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