Zeitliche Optimierung - andere Strategie?

Status
Nicht offen für weitere Antworten.

le_manchot

Mitglied
Hallo,

mein Programm fragt regelmäßig Daten aus einer MySQL Datenbank ab. Bei jeder Abfrage verzögert das Programm enorm.

Nun ist es so, dass ich eine Klasse Verbindung habe, die
- das Laden des Treibers,
- den Verbindungsaufbau
- Abfragen und Updates
- und das Beenden der Verbindung übernimmt.

Da in den Datenbanken nur wenige Datensätze sind, passiert die Verzögerung nicht durch das query. Viel mehr vermute ich, dass das Problem beim Laden des Treibers und im Verbindungsaufbau besteht.

Die o.g. vier Schritte werden vor jeder Abfrage ausgeführt, d.h. vor jeder Abfrage wird der Treiber neu geladen und die Verbindung aufgebaut.

Gehe ich möglicherweise strategisch völlig falsch an die Sache ran? Ist es ratsam, bereits in der Klasse mit der main-Methode den Treiber zu laden und eine offene Verbindung zu halten, derer sich die Funktionen anderer Objekte dann bedienen?

Dank und Gruß
 

kama

Top Contributor
Hallo,
le_manchot hat gesagt.:
Hallo,

mein Programm fragt regelmäßig Daten aus einer MySQL Datenbank ab. Bei jeder Abfrage verzögert das Programm enorm.
Hier wäre meine Erste Frage: Was heißt "enorm" im Vergleich zu was?


le_manchot hat gesagt.:
Nun ist es so, dass ich eine Klasse Verbindung habe, die
- das Laden des Treibers,
- den Verbindungsaufbau
- Abfragen und Updates
- und das Beenden der Verbindung übernimmt.

Da in den Datenbanken nur wenige Datensätze sind, passiert die Verzögerung nicht durch das query. Viel mehr vermute ich, dass das Problem beim Laden des Treibers und im Verbindungsaufbau besteht.
Hm. Du hast also einen Class-Loader geschrieben, der die Klassen für die Verbindung jedesmal macht...Weiterhin steht hier "vermute"....
Messen ist hier das einzige was etwas bringt....

le_manchot hat gesagt.:
Die o.g. vier Schritte werden vor jeder Abfrage ausgeführt, d.h. vor jeder Abfrage wird der Treiber neu geladen und die Verbindung aufgebaut.
Woher weißt Du das ?

MfG
Karl Heinz Marbaise
 

le_manchot

Mitglied
kama hat gesagt.:
Hier wäre meine Erste Frage: Was heißt "enorm" im Vergleich zu was?

Ich befülle eine JTable-Komponente mit Daten aus der Datenbank. Es dauert etwa zwei Sekunden, bis der Treiber geladen ist und eine Abfrage beginnt.
Mit "enorm" meine ich die Verzögerung im Vergleich zu einem zweidimensionalen Array gleicher Größe.

Vielleicht ist eine Datenbank aber auch einfach nicht die passende Quelle, um eine JTable damit zu füllen. Jedenfalls ist die Verzögerung so stark, dass man mit dem Scrollbalken nicht ordentlich arbeiten kann.
Möglicherweise hat jemand mal etwas ähnliches getestet? Ansonsten muss ich wohl mal im swing-Unterforum fragen.

kama hat gesagt.:
le_manchot hat gesagt.:
Die o.g. vier Schritte werden vor jeder Abfrage ausgeführt, d.h. vor jeder Abfrage wird der Treiber neu geladen und die Verbindung aufgebaut.
Woher weißt Du das ?
Ich lasse für jeden erfolgreich zu Ende gebrachten Schritt eine Meldung in der Konsole ausgeben.
 

le_manchot

Mitglied
kama hat gesagt.:
Hier wäre meine Erste Frage: Was heißt "enorm" im Vergleich zu was?

Ich befülle eine JTable-Komponente mit Daten aus der Datenbank. Es dauert etwa zwei Sekunden, bis der Treiber geladen ist und eine Abfrage beginnt.
Mit "enorm" meine ich die Verzögerung im Vergleich zu einem zweidimensionalen Array gleicher Größe.

Vielleicht ist eine Datenbank aber auch einfach nicht die passende Quelle, um eine JTable damit zu füllen. Jedenfalls ist die Verzögerung so stark, dass man mit dem Scrollbalken nicht ordentlich arbeiten kann.
Möglicherweise hat jemand mal etwas ähnliches getestet? Ansonsten muss ich wohl mal im swing-Unterforum fragen.

kama hat gesagt.:
le_manchot hat gesagt.:
Die o.g. vier Schritte werden vor jeder Abfrage ausgeführt, d.h. vor jeder Abfrage wird der Treiber neu geladen und die Verbindung aufgebaut.
Woher weißt Du das ?
Ich lasse für jeden erfolgreich zu Ende gebrachten Schritt eine Meldung in der Konsole ausgeben.

Vielen Dank.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
OnDemand SQL Query Optimierung Datenbankprogrammierung 28
J Optimierung von Querys/ ausgegebene Tabelle mit in neue Anfrage einbinden Datenbankprogrammierung 2
Airwolf89 Optimierung meiner Datenbankklasse Datenbankprogrammierung 3
S ResultSet als Parameter an andere Klasse übergeben Datenbankprogrammierung 3
B Wie kopieren ich eine Spalte von einer Tabelle in eine andere Tabelle SQLite durch java code? Datenbankprogrammierung 26
B Datenmodell für Regeln + Bedingungen & Referenz auf andere Tabelle Datenbankprogrammierung 12
Dimax Hadoop : 2 SimpleNode cluster (eins mit windows und der andere mit opensuse) zu einem zusammenfügen. Datenbankprogrammierung 15
L Oracle Daten von einem Server zum andere kopieren Datenbankprogrammierung 24
X MySQL In MySQL Funktionen erstellen, wenn Zelle leer dann andere Zelle ändern? Datenbankprogrammierung 9
P MongoDB vs. andere DBs Datenbankprogrammierung 0
G SQLite Daten aus SQLite DB in andere SQLite DB importieren Datenbankprogrammierung 4
J Java DB Zugriff auf Access (Migration auf andere DB) Datenbankprogrammierung 8
N resultset aus andere klasse übergeben Datenbankprogrammierung 3
M Tabelle von einer Datenbank in eine Andere Datenbankprogrammierung 4
M Zugriff für andere sperren Datenbankprogrammierung 11
A Andere Möglichkeit als JDBC Treiber für den Datenbankzugriff Datenbankprogrammierung 3
S von einer DB auf eine andere Zugreifen. Datenbankprogrammierung 2
thE_29 getBytes() - russland/bulgarien -- andere Codecs Probleme Datenbankprogrammierung 8

Ähnliche Java Themen

Neue Themen


Oben