AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi mySQL Funktion Performance
Thema durchsuchen
Ansicht
Themen-Optionen

mySQL Funktion Performance

Ein Thema von EarlyBird · begonnen am 25. Jul 2015 · letzter Beitrag vom 27. Jul 2015
Antwort Antwort
EarlyBird

Registriert seit: 29. Mär 2007
235 Beiträge
 
#1

mySQL Funktion Performance

  Alt 25. Jul 2015, 14:18
Datenbank: MySQL • Version: 5.6 • Zugriff über: egal
Hallo
Ich habe ein Problem mit einer MySQL Funktion.
Ich habe zwei Tabellen mit einer Master Detail Beziehung.
Die Funktion summiert Werte aus der Detailtabelle.
In einer View gebe ich die Daten der Mastertabelle mit den summierten Werten der Detailtabelle aus.
In der View werden ca 500 Datensätze ausgegeben.
Das ganze dauert auf meinem entwicklungs PC unter 0,5sec
Auf einem anderen system mit 100% identischem Datenbank Schema dauert diese Abfrage mindestens 15sekunden.
Die Anzahl der Datensätze ist auch auf beiden Systemen gleich.
Es ist die gleiche MySQL Version auf beiden Systemen
Die Hardware ist in etwa identisch.

Gibt es servervariabelen die eine solche Performancebremse auslösen?
Wie kann ich den Fehler am besten eingrenzen?
Bin für jeden Tipp dankbar
Gruß EarlyBird
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

AW: mySQL Funktion Performance

  Alt 25. Jul 2015, 14:21
Schließt das selbe Schema auch die selben Indizes ein?
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.210 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: mySQL Funktion Performance

  Alt 25. Jul 2015, 15:07
Ist nur diese Abfrage langsame oder auch ander Abfragen?
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#4

AW: mySQL Funktion Performance

  Alt 25. Jul 2015, 16:02
1. Prüfen ob tatsächlich alles so identisch ist, oder ob man nur dachte, es sei identisch
betrifft besonders Indizes (auch zuviel/andere Indizierung kann sowas auslösen), Datenvolumen der Detailtabelle, Füllgrad
2. Falls 1. tatsächlich so ist, DB Konfiguration prüfen, insbesondere Buffergröße und Beständigkeit)
Entwicklersysteme haben geringere Anforderungen als das Produktivsystem (Multiuser / Last)
Kann sein, dass der Unterschied daher rührt, dass im ersten Fall Group/Agg im Speicher durchgeführt wird, im 2. Fall auf Platte, mangels (verfügbarer, nicht unbedingt definierter)RAM Ressourcen.
Konkret kann ich da aber bei mySQL keine Parameter benennen.
Gruß, Jo
  Mit Zitat antworten Zitat
EarlyBird

Registriert seit: 29. Mär 2007
235 Beiträge
 
#5

AW: mySQL Funktion Performance

  Alt 25. Jul 2015, 18:38
Hallo
Danke für Eure Antworten.

Die Schemen sind tatsächlich 100% identisch.
Auch die Indizes.
Abfragen funktionieren normal schnell.
Nur wenn ich die Funktion in einer Abfrage einfüge wird es so extrem langsam.

Multiuser/Last kann ich eigentlich auch Ausschließen da das Problem auch dann auftritt wenn ich allein darauf zugreife.
Das Datenvolumen und der Füllgrad sind kann ich auch ausschließen (Maximal 5000 Datensätze in der Detailtabelle)

... Buffergröße und Beständigkeit)
Kann sein, dass der Unterschied daher rührt, dass im ersten Fall Group/Agg im Speicher durchgeführt wird, im 2. Fall auf Platte, mangels (verfügbarer, nicht unbedingt definierter)RAM Ressourcen.
Konkret kann ich da aber bei mySQL keine Parameter benennen.
Das könnte ich mir durchaus vorstellen.
Kann ich das irgendwie prüfen?

noch mal Danke für Eure Hilfe
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#6

AW: mySQL Funktion Performance

  Alt 26. Jul 2015, 13:37
Die Schemen sind tatsächlich 100% identisch.
Auch die Indizes.
Wie hast Du das überprüft?

Abfragen funktionieren normal schnell.
Nur wenn ich die Funktion in einer Abfrage einfüge wird es so extrem langsam.
Was soll das nun bedeuten? "Die Funktionen"?
Du hast oben von einer Group/Agg Abfrage geschrieben, die auf einem System langsamer als auf dem anderen System läuft.
Wie lautet das Statement?

... Buffergröße und Beständigkeit)
Kann sein, dass der Unterschied daher rührt, dass im ersten Fall Group/Agg im Speicher durchgeführt wird, im 2. Fall auf Platte, mangels (verfügbarer, nicht unbedingt definierter)RAM Ressourcen.
Konkret kann ich da aber bei mySQL keine Parameter benennen.
Das könnte ich mir durchaus vorstellen.
Kann ich das irgendwie prüfen?
Probier mal
>show variables;
https://dev.mysql.com/doc/refman/5.0...variables.html
und vergleiche die Ergebnisse, auch mit verschiedenen scopes. Ich hab keine Adminkenntnisse von mysql.
Gruß, Jo
  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 21:27 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 by Thomas Breitkreuz