mardi 28 avril 2015

MySQL Datenbank an manchen PCs langsam

Hallo,
ich habe ein Programm das viele Daten in einer Datenbank aktualisiert.
Jetzt habe ich das Problem das auf manchen Systemen die Daten Zeitverzögert abgearbeitet werden. Sogar auf manchen schwächeren Systemen läuft das ganze ohne Probleme. Ich habe jetzt den Fall das ein Notebook (Core i7) die Daten verzögert abarbeitet, aber eine virtuelle Maschine die auf dem Notebook läuft, einwandfrei funktioniert. Das ganze stellt mich vor ein unlösbares Problem. Folgende Updates verursachen das Problem...
Java Code:

  1.  
  2. public void setTransQuality(String transponder, int quality, long time) throws SQLException {
  3. Double ergebnis = new Double("0.0");
  4. if (quality >= 128) {
  5. ergebnis = (Double.parseDouble(quality + "") - 256) / 2 - 72;
  6. } else {
  7. ergebnis = (Double.parseDouble(quality + "") / 2) - 72;
  8. }
  9. try {
  10. Statement stmt = con.createStatement();
  11. String sql = "UPDATE transponder set signalst=" + ergebnis + ",online = 1,lastresponse=" + time + " where transp_bez='" + transponder + "';";
  12. stmt.execute(sql);
  13. LOG.debug(sql);
  14. stmt.close();
  15. } catch (Exception e) {
  16. LOG.error(e.getMessage());
  17. e.printStackTrace();
  18. }
  19. }
  20.  
  21. public void setAntTransQuality(int antenne, String transponder, int quality) throws SQLException {
  22. Double ergebnis = new Double("0.0");
  23. if (quality >= 128) {
  24. ergebnis = (Double.parseDouble(quality + "") - 256) / 2 - 72;
  25. } else {
  26. ergebnis = (Double.parseDouble(quality + "") / 2) - 72;
  27. }
  28. try {
  29. Statement stmt = con.createStatement();
  30. String sql = "SELECT id from transponder_qualities where ant_id=" + antenne + " and transp_id='" + transponder + "'";
  31. ResultSet rs = stmt.executeQuery(sql);
  32. if (rs.next()) {
  33. Statement stmt2 = con.createStatement();
  34. sql = "UPDATE transponder_qualities set signalst=" + ergebnis + " where ant_id=" + antenne + " and transp_id='" + transponder + "'";
  35. stmt2.execute(sql);
  36. stmt2.close();
  37. } else {
  38. Statement stmt3 = con.createStatement();
  39. sql = "INSERT INTO transponder_qualities (ant_id,transp_id,signalst) VALUES (" + antenne + ",'" + transponder + "'," + ergebnis + ")";
  40. stmt3.execute(sql);
  41. stmt3.close();
  42. }
  43. rs.close();
  44. LOG.debug(sql);
  45. stmt.close();
  46. } catch (Exception e) {
  47. LOG.error(e.getMessage());
  48. e.printStackTrace();
  49. }
  50. }

Vielen Dank schon mal im voraus für euer Bemühen.


MySQL Datenbank an manchen PCs langsam

0 commentaires:

Enregistrer un commentaire