-
Ausführung von SQL-Statements sehr langsam
Hallo,
ich bin ziemlich neu beim Thema Java. Jetzt habe ich mir eine kleine Testanwendung gebaut, bei der eine Maske mit verschiedenen Eingabefeldern ausgegeben wird. Bei einigen dieser Felder dürfen nur Werte eingegeben werden, bei denen ein entsprechender Satz in einer Tabelle auf der AS/400 vorhanden sein muss. Beispiel: Die Maske enthält ein Feld "Benutzer". Jetzt soll in diesem Feld nur ein Benutzer eingetragen werden dürfen, der auf der AS/400 in der Tabelle USRPF hinterlegt ist. Wenn jetzt also auf den OK Button geklickt wird, dann wird eine Methode aufgerufen, die die eingegebenen Werte auf Gültigkeit überprüft. Das Problem ist jetzt die grausame Performance, mit dem das Ganze abläuft. Hier mal ein Beispiel, wie ich solch eine Prüfung mache.
PHP-Code:
found = false; select = null; rs = null; try { select = jdbcConnection.createStatement(); rs = select.executeQuery("SELECT COUNT(*) FROM USRLF01 WHERE USR='" + textOwner.getText() + "'"); if (rs.next() && rs.getLong(1) != 0) { found = true; } } catch (SQLException e) { } if (rs != null) { try { rs.close(); } catch (SQLException e1) { } } if (select != null) { try { select.close(); } catch (SQLException e1) { } } if (!found) { setErrorMessage("The value in field 'User' is not valid."); textOwner.setFocus(); return false; }
Von diesen Prüfungen habe ich in der entsprechenden Methode 15 an der Zahl. Wie kann ich das Ganze beschleunigen? Mache ich etwas grundsätzlich falsch?
-
Hallo,
das sollte in dieser Form, wie es ist, im Bereich von Zehntel Sekunden liegen, falls das länger dauert ist zu untersuchen, woran das liegt. Da kommen mehrere Kandidaten in Betracht; z.B.: ungeeignete Hardware, fehlende Zugriffspfade, fehlende PTFs, Ressourcen Engpässe der AS/400. Einstiegspunkt ist da bei mir meist der Database Monitor, um zu ermitteln ob das ganze von der Datenbank her kommt.
An dem Code lässt sich noch verbessern: statt Statement PreparedStatement verwenden. Bei entsprechendem Cachen der PreparedStatements (siehe auch den Thread zu ConnectionPool) macht es das auch schneller, aber Sekunden sind hier nicht zu holen.
mfg
Dieter Bender
 Zitat von BurgerKing
Hallo,
ich bin ziemlich neu beim Thema Java. Jetzt habe ich mir eine kleine Testanwendung gebaut, bei der eine Maske mit verschiedenen Eingabefeldern ausgegeben wird. Bei einigen dieser Felder dürfen nur Werte eingegeben werden, bei denen ein entsprechender Satz in einer Tabelle auf der AS/400 vorhanden sein muss. Beispiel: Die Maske enthält ein Feld "Benutzer". Jetzt soll in diesem Feld nur ein Benutzer eingetragen werden dürfen, der auf der AS/400 in der Tabelle USRPF hinterlegt ist. Wenn jetzt also auf den OK Button geklickt wird, dann wird eine Methode aufgerufen, die die eingegebenen Werte auf Gültigkeit überprüft. Das Problem ist jetzt die grausame Performance, mit dem das Ganze abläuft. Hier mal ein Beispiel, wie ich solch eine Prüfung mache.
PHP-Code:
found = false;
select = null;
rs = null;
try {
select = jdbcConnection.createStatement();
rs = select.executeQuery("SELECT COUNT(*) FROM USRLF01 WHERE USR='" +
textOwner.getText() + "'");
if (rs.next() && rs.getLong(1) != 0) {
found = true;
}
}
catch (SQLException e) {
}
if (rs != null) {
try {
rs.close();
}
catch (SQLException e1) {
}
}
if (select != null) {
try {
select.close();
}
catch (SQLException e1) {
}
}
if (!found) {
setErrorMessage("The value in field 'User' is not valid.");
textOwner.setFocus();
return false;
}
Von diesen Prüfungen habe ich in der entsprechenden Methode 15 an der Zahl. Wie kann ich das Ganze beschleunigen? Mache ich etwas grundsätzlich falsch?
Similar Threads
-
By christian_lettner in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 16-11-06, 10:15
-
By FNeurieser in forum NEWSboard Programmierung
Antworten: 3
Letzter Beitrag: 11-10-06, 14:53
-
By jakarto in forum IBM i Hauptforum
Antworten: 2
Letzter Beitrag: 24-07-06, 13:41
-
By Kaufmann in forum IBM i Hauptforum
Antworten: 11
Letzter Beitrag: 28-06-06, 14:11
-
By loeweadolf in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 01-06-06, 09:43
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks