Autor Beitrag
ub60
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 725
Erhaltene Danke: 119



BeitragVerfasst: Fr 28.08.20 00:50 
Hallo miteinander,

wir haben in der Firma ein MySQL-Datenbankproblem beim Umstieg von Windows 7 auf Windows 10:

Seit vielen Jahren läuft ein (von mir geschriebenes) Programm unter Windows 7 mit Zugriff auf einen MySQL-Server problemlos. Das Programm startet in ca. 1-2 Sekunden.
Nach Umstieg auf Windows 10 startet das Programm erst nach einer Wartezeit von ca. 20 bis 25 Sekunden.
Edit: Das Programm startet auch unter Windows 10 sofort (erst erfolgt eine Passwortabfrage), dann folgt allerdings die lange Wartezeit.
Im laufenden Programm funktionieren einige Datenbankzugriffe sofort, einige brauchen mehr als 10 Sekunden.
Der MySQL-Server ist noch die gleiche Maschine, unter Windows 7 läuft das identische Programm nach wie vor tadellos.

Ein Umstieg auf eine neue Delphi-Version würde ich nur ungern vornehmen, weil das Programm aus ca. 50000 Zeilen Quelltext besteht.

Eventuell hat ja jemand eine Idee, was sich unter W10 geändert hat und wo man eventuell mit der Fehlersuche beginnen könnte.

Zur Eingrenzung des Fehlers noch einige Informationen:
  • Das Programm wurde mit Delphi 7 unter Windows 7 programmiert.
  • Der Datenbankzugriff erfolgt über die ZEOS-Library (6.6.6) sowohl mit TZQuery als auch mit TZTable.
  • Alle Abfragen sind simpel und beanspruchen keine wesentliche Serverzeit.
  • Im Programm wird der Server angepingt (ob er erreichbar ist).
  • Im Programm wird die eigene IP-Adresse bestimmt.

Vielen Dank schon mal!
ub60


Zuletzt bearbeitet von ub60 am Fr 28.08.20 14:37, insgesamt 1-mal bearbeitet
jfheins
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 888
Erhaltene Danke: 149

Win7
VS 2013, VS2015
BeitragVerfasst: Fr 28.08.20 10:06 
Hast du evtl. irgendwo als Hostname localhost verwendet?

Ich hatte mal ein ähnliches Problem (DB Connection string auf localhost) und jeder Zugriff hat 30 sek. gedauert.
Umstellung auf 127.0.0.1 hat das Problem behoben.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 18872
Erhaltene Danke: 1660

W10 x64 (Chrome, Edge)
Delphi 10.4 Ent, Oxygene, C# (VS 2019), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Fr 28.08.20 10:31 
Ja, localhost statt der IP ist ein heißer Tipp, das hatte ich auch bei einem Onlinegame, an dem ich gearbeitet hatte. Mit 127.0.0.1 gingen die Zugriffszeiten deutlich herunter. Das gilt allerdings nicht erst für Windows 10.

Ansonsten bliebe noch der Windows Defender. Der bremst an manchen Stellen massiv. (Auch wenn Tests solche Effekte offenbar bei diversen Antivirenprogrammen deutlich schlechter messen können als man selbst manuell mit einer Stoppuhr... :autsch:)
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4280
Erhaltene Danke: 918

Win10
C#, C++ (VS 2015/17)
BeitragVerfasst: Fr 28.08.20 10:43 
Dies könnte dann ein IPv4 vs. IPv6-Problem sein, denn localhost wird wohl zu der IPv6-Adresse ::1 aufgelöst (teste es einfach mal in der Konsole mit ping localhost).
ub60 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 725
Erhaltene Danke: 119



BeitragVerfasst: Fr 28.08.20 11:14 
user profile iconjfheins hat folgendes geschrieben Zum zitierten Posting springen:
Hast du evtl. irgendwo als Hostname localhost verwendet?

Nein, der Server läuft auf einem eigenen Rechner, den ich mit seiner IP-Adresse anspreche, nicht mit "localhost".
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 18872
Erhaltene Danke: 1660

W10 x64 (Chrome, Edge)
Delphi 10.4 Ent, Oxygene, C# (VS 2019), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Fr 28.08.20 13:33 
Dann bleiben noch der Windows Defender oder auch andere Antivirentools übrig.

Hast du denn einmal geschaut wo die Zeit verloren geht? Zum Beispiel mit Debugmeldungen oder dem Process Monitor? Sprich bist du sicher, dass das Problem der Datenbankzugriff ist?

Hintergrund:
Eventuell ist schlicht die Internetverbindung in der Firma eingeschränkt und der SmartScreen-Filter von Windows 10 (oder etwas ähnliches) läuft jedesmal bis zum Timeout bevor die Anwendung überhaupt gestartet wird...
ub60 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 725
Erhaltene Danke: 119



BeitragVerfasst: Fr 28.08.20 14:35 
user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Dann bleiben noch der Windows Defender oder auch andere Antivirentools übrig.

Hast du denn einmal geschaut wo die Zeit verloren geht? Zum Beispiel mit Debugmeldungen oder dem Process Monitor? Sprich bist du sicher, dass das Problem der Datenbankzugriff ist?

Hintergrund:
Eventuell ist schlicht die Internetverbindung in der Firma eingeschränkt und der SmartScreen-Filter von Windows 10 (oder etwas ähnliches) läuft jedesmal bis zum Timeout bevor die Anwendung überhaupt gestartet wird...

Wo die Zeit verloren geht, weiß ich leider noch nicht. Da werde ich nächste Woche mal ein paar Debug-Routinen dazuschreiben.
Ich vermute trotzdem, dass das Problem an der Datenbankanbindung liegt weil:
  • ich heute ein mit Delphi7 geschriebenes Testprogramm zum Pingen getestet habe, das lief sofort,
  • in Ergänzung zu meinem ersten Post das Programm sofort startet (es wird ein Passwort abgefragt), dann allerdings die lange Wartezeit auftritt.

Wenn es Antiviren-Programme oder der Smartscreen-Filter wären, würde das Programm dann nicht generell verspätet starten?

Ich werde das mit den Antiviren-Prpgrammen auf alle Fälle nächste Woche testen.
Danke an alle, die bisher geantwortet haben!
Weitere Ideen sind willkommen.

ub60
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 18872
Erhaltene Danke: 1660

W10 x64 (Chrome, Edge)
Delphi 10.4 Ent, Oxygene, C# (VS 2019), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Fr 28.08.20 17:32 
user profile iconub60 hat folgendes geschrieben Zum zitierten Posting springen:
Wo die Zeit verloren geht, weiß ich leider noch nicht. Da werde ich nächste Woche mal ein paar Debug-Routinen dazuschreiben.
Bevor du Debugausgaben hinzufügst wäre es doch viel einfacher erst einmal von außen mit dem Process Monitor zu schauen. Oft fällt dabei schon etwas auf ohne dass man großen Aufwand betreiben muss...

Bei einer so langen Wartezeit ist es ja sehr einfach zu schauen was in dieser Zeit passiert ist.