AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi AnyDAC Einstellungen optimieren
Thema durchsuchen
Ansicht
Themen-Optionen

AnyDAC Einstellungen optimieren

Ein Thema von Tod787 · begonnen am 22. Feb 2013 · letzter Beitrag vom 24. Feb 2013
Antwort Antwort
Tod787

Registriert seit: 19. Mai 2008
99 Beiträge
 
#1

AnyDAC Einstellungen optimieren

  Alt 22. Feb 2013, 11:21
Datenbank: MySQL • Version: 5.5 • Zugriff über: AnyDAC
Da ich einen anderen Thread nicht aufblähen möchte stelle ich die Frage nocheinmal hier. Ich benutze AnyDAC eigentlich nur in den Standardeinstellungen im pessimistic Lockmode. Da wir teilweise sehr große Tabellen haben wüsste ich gerne ob es möglichkeiten gibt die Performance zu beschleunigen.

QuickAndDirty meinte im anderen Thread:

Zitat:
Diese sind entscheidend
FetchOptions.LiveWindowFastFirst
UpdateOptions.KeyFields
FetschOptions: FetschOptions.LiveWindow zeigt mir nur wmApproximate und wmStrict zur Auswahl

UpdateOptions: Welcher Felder trage ich hier ein? Den Primärschlüssel der Tabelle?
  Mit Zitat antworten Zitat
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.920 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: AnyDAC Einstellungen optimieren

  Alt 22. Feb 2013, 11:29
Wo genau hast Du denn den Performance-Verlust? Wie Du ja schon festgestellt hast, gibt es reichlich Schrauben, an denen man stellen kann. Eine sinnvolle Vorgehensweise hängt aber von den Bedürfnissen Deiner Anwendung ab.

Wenn die Performance schon beim Öffnen der Query / Table verloren geht, dann werden möglicherweise zu viele Datensätze pauschal abgerufen. Das könntest Du mit FetchMode und RowSetSize steuern.

Pauschal und ohne Rahmenbedingungen gibt es den "goldenen" Schalter nicht, der etwa dem "Turbo-Knopf" bei alten Rechnern entsprechen würde.
Daniel R. Wolf
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
Tod787

Registriert seit: 19. Mai 2008
99 Beiträge
 
#3

AW: AnyDAC Einstellungen optimieren

  Alt 22. Feb 2013, 13:23
Fetchmode habe ich schon auf 50 stehen. Die Tabellen gehen so natürlich schnell auf allerdings ist das bei mir schnell anders wenn ich ein Tabelle.Last aufrufe.

Ich hatte zuvor DBISAM im Einsatz. Hier haben die gleichen Tabellen nur ein Bruchteil der Zeit gebraucht wie mit
AnyDAC und MySQL. Allerdings gab es andere Probleme, welche zur Umstellung führten . Ich hatte einige Formulare mit
Master-Detail-verknüpften Tabellen welche unzumutbar langsam waren. Einzige Lösung war hier die Tabellenkomponenten durch
Queries auszutauschen.

Ich dachte die ganze Zeit, dass es so lange dauert weil MySQL eben die Ganzen Daten über das Netz jagt und AnyDAC da auch nichts ändern kann.


Was genau kann ich denn mit RowSetSize anstellen?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: AnyDAC Einstellungen optimieren

  Alt 22. Feb 2013, 13:26
-Passen die Indizes?
-Einschränken der Feldliste
-Einschränken der Erfebnismenge.
...
Markus Kinzler
  Mit Zitat antworten Zitat
Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
 
Delphi 2010 Professional
 
#5

AW: AnyDAC Einstellungen optimieren

  Alt 22. Feb 2013, 13:31
Ich hatte zuvor DBISAM im Einsatz. Hier haben die gleichen Tabellen nur ein Bruchteil der Zeit gebraucht wie mit
AnyDAC und MySQL.
Bei DbIsam hast du ja auch die Datei selbst geöffnet und dich spezieller Mechanismen bedient, um zum Beispiel direkt zum letzten Record oder Record# 1490 springen zu können.
Solche "Tricks" machen für ein RDBMS selten Sinn. Wenn du mit einem DBMS per SQL redest, dann am besten nicht so: "select * from SomeTable"
Du/ der User will(st) ja sicherlich nicht alle Daten, also filter auf die, die Sinn machen.
Wenn du immer alles anzeigst, hast du nciht nur Performance-Probleme. Alles was du jetzt siehst, könnte in der Zwischenzeit von jmd. geändert worden sein. Je kleiner die Happen, die auf einmal gezeigt werden, umso öfter werden sich neue Häppchen geholt und umso seltener können User veraltete Versionen sehen und anhand von denen falsche Entscheidungen treffen.
Robert Giesecke
I’m a great believer in “Occam’s Razor,” the principle which says:
“If you say something complicated, I’ll slit your throat.”
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.475 Beiträge
 
Delphi 12 Athens
 
#6

AW: AnyDAC Einstellungen optimieren

  Alt 24. Feb 2013, 15:42
Ich dachte die ganze Zeit, dass es so lange dauert weil MySQL eben die Ganzen Daten über das Netz jagt und AnyDAC da auch nichts ändern kann.
Bei einem Last wird das wahrscheinlich auch so sein.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
1.944 Beiträge
 
Delphi 12 Athens
 
#7

AW: AnyDAC Einstellungen optimieren

  Alt 24. Feb 2013, 22:50
QuickAndDirty meinte im anderen Thread:
Zitat:
Diese sind entscheidend
FetchOptions.LiveWindowFastFirst
UpdateOptions.KeyFields
FetschOptions: FetschOptions.LiveWindow zeigt mir nur wmApproximate und wmStrict zur Auswahl
Zitat:
Diese sind entscheidend
FetchOptions.LiveWindowFastFirst
NICHT
FetschOptions.LiveWindow
FetchOptions.LiveWindowFastFirst ist ein Boolean.
Kann sein das er nicht Published ist, du ihn also im Code setzen musst. Hab zu hause nur Lazarus und keine private AnyDAC Lizenz.

FetschOptions.LiveWindow ist noch default nehme ich an.

UpdateOptions: Welcher Felder trage ich hier ein? Den Primärschlüssel der Tabelle?
Die Keyfields baut anyDAC in den Where-Teil des SQL-Querys das das Livewindow holt ein. Sollte also nach Möglichkeit sowas wie ein ID feld vom typ integer/Autoinc sein. Zur not muss man all seine Tabellen um so ein Feld erweitern. Das ist immer noch schneller als seinen kompletten code auf Querys umzustellen.
Andreas
Monads? Wtf are Monads?

Geändert von QuickAndDirty (25. Feb 2013 um 09:32 Uhr)
  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:38 Uhr.
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