Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Datenbankaktuallisierung bei 20 Benutzer (MYSQL 4.1) (https://www.delphipraxis.net/68127-datenbankaktuallisierung-bei-20-benutzer-mysql-4-1-a.html)

Karstadt 25. Apr 2006 07:48

Datenbank: Mysql • Version: 4 • Zugriff über: MYDAC

Datenbankaktuallisierung bei 20 Benutzer (MYSQL 4.1)
 
Hallo.

Habe momentan Resoucrenproblem. Arbeiter mit MDI und bei wichtigen Fenstern habe ich onActive eine Funktion eingebaut, die mir alle Tabelle die sich nicht in bearbeitung / einfügmodus befinden sich aktuallisieren müssen. (Refresh) Nun habe ich an einigen stellen wo ich berechnete Felder und ca 20 DB Komponenten benutzer ein Problem das das ganze ca 5. Secunden (bei wenigen DS) dauert. Wie kann ich diesen Vorgang beschleunigen?


Dank für Ihre Hilfe.

mkinzler 25. Apr 2006 07:51

Re: Datenbankaktuallisierung bei 20 Benutzer (MYSQL 4.1)
 
Benutzt du TTable oder TQuery?

Karstadt 25. Apr 2006 07:57

Re: Datenbankaktuallisierung bei 20 Benutzer (MYSQL 4.1)
 
Tmyquery und in einigen fällen Tmytable. Warum?

mkinzler 25. Apr 2006 08:05

Re: Datenbankaktuallisierung bei 20 Benutzer (MYSQL 4.1)
 
Weil bei Tables die gesamte Datenmengeim Speicher gehalten wird ( Ist vielleicht bei mydac anders)

Karstadt 25. Apr 2006 08:13

Re: Datenbankaktuallisierung bei 20 Benutzer (MYSQL 4.1)
 
ja. die Tmytable besteht auch aus select. Tmytable die ich benutze benötigt aber alle DS. Z.b. in Mitarbeiterverwaltung brauche ich alle Mitarbeiter damit ich alle mitarbeiter in einem DBGRIB anschauen kann und gegebenenfals bearbeiten. sontst arbeite ich immer mit myquery und begrenze die datensätze mit select. Ach ja, ich arbeiter auch mit Masterdatasource.

Angel4585 25. Apr 2006 08:18

Re: Datenbankaktuallisierung bei 20 Benutzer (MYSQL 4.1)
 
ich glaube was mkinzler meinte war, dass du wahrscheinlich nicht alle Felder in dem Grid anzeigen lässt, diese jedoch bei TTAble mit in den Speicher geladen werden, was natürlich auch enorm Zeit kostet. bei TQuery lassen sich die nicht benötigten Felder aussortieren, sodass viel weniger Speicher benutzt wird und das ganze dadurch wesentlich performanter wird.

Karstadt 25. Apr 2006 08:23

Re: Datenbankaktuallisierung bei 20 Benutzer (MYSQL 4.1)
 
Zitat:


ich glaube was mkinzler meinte war, dass du wahrscheinlich nicht alle Felder in dem Grid anzeigen lässt, diese jedoch bei TTAble mit in den Speicher geladen werden, was natürlich auch enorm Zeit kostet. bei TQuery lassen sich die nicht benötigten Felder aussortieren, sodass viel weniger Speicher benutzt wird und das ganze dadurch wesentlich performanter wird.
Wenn ich mit TTable arbeite benötige ich aber alle Felder. Die werden mit daten gefüllt. ich habe also 20 Felder und die Eingabemaske hat auch 20 Eingabefelder. dann kann ich leider nichts weglassen. Wenn ich einfeld weglassen kann kommt ein fehler feld nicht gefunden. Oder habe ich euch falsch verstanden?

Karstadt 25. Apr 2006 08:59

Re: Datenbankaktuallisierung bei 20 Benutzer (MYSQL 4.1)
 
Wie würdet ihr in diesen Fall vorgehen ?

mkinzler 25. Apr 2006 09:13

Re: Datenbankaktuallisierung bei 20 Benutzer (MYSQL 4.1)
 
Hierzuu müßte man die Struktur der DB, die Beziehungen der DB-Kompos ( Master/Detail) und die komplexität der berechneten Felder kennen.

Karstadt 25. Apr 2006 09:59

Re: Datenbankaktuallisierung bei 20 Benutzer (MYSQL 4.1)
 
ich versuche es zu beschreiben:

Tabelle Mitarbeiter hat 20 Felder hat einen berechnetes Feld Arbeitgeber. Die Arbeitgeber ID ist in der Mitarbeiter Tabelle gespeichert und die arbeitgeber information wird ausgerechnet. (Ag_name + Ag_vorname). Außerdem hat die Tabelle Mitarbeiter ein Feld id_fz (fahrzeug) dieses Feld ist ein Masterkey für die Mastersource eigenschaft der Tabelle Fahzeuge... (das war eine sehr grobe beschreibung, oder meinst du was anderes)

300 Mitarbeiter = 300x Arbeitgeber berechnen und in DBGRIB anzeigen. Ich glaube aber nicht das das an diesen berechneten Feldern liegt. Ich habe eimal mit eine Tabelle experemetiert die über 4.000 ds hatte dort habe ich die mehrere Felder zusammengefasst, dauer wenige als eine sekunde.


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:31 Uhr.
Seite 1 von 2  1 2      

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