Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi DB Aktion nach bestimmter Zeit sehr langsam. (https://www.delphipraxis.net/158398-db-aktion-nach-bestimmter-zeit-sehr-langsam.html)

Jackie1983 16. Feb 2011 07:29

Datenbank: Oracle • Version: 7 • Zugriff über: DOA

DB Aktion nach bestimmter Zeit sehr langsam.
 
Hi,

habe ein kleines Problem bei uns im Programm. Wenn ich das Programm starte sind noch nicht alle Datenbanken, DataSet, geöffnet. Wenn ich eine bestimmte Aktion ausführe, werden alle Datenbanken bei uns im Programm geöffnet.

Bei uns und auch bei den Kunden ist das erneute ausführen der Aktion oben kein Problem. Sofort sehen wir die gewünschte Form.

Nur bei einigen Kunden tut sich dann nichts. Nach 10-20 Sekunden geht es weiter und man bekommt die Form zusehen.
Haben mit dem Oracle Monitor geschaut oben eventuell eine SQL Anweisung hängt, ist nicht der Fall. Mit einem Profiler konnten wir auch nichts sehen, das gleiche mit Windows Botschaften.

Nach einigen malen probieren haben wir ein DataSet geschlossen und dann nochmal die Aktion ausgeführt, siehe da es geht wieder schnell.

Wir können uns aber nicht erklären warum es dann aufeinmal wieder so schnell geht wenn wir eine Datenbank schließen.

Hat von euch eventuell noch jemand ne idee wie ich genau die Ursache rausbekommen? Wir vermuten das eventuell eine DB Komponente sich neu zeichnen muss und die das System ausbremmst.

gruß

himitsu 16. Feb 2011 09:14

AW: DB Aktion nach bestimmter Zeit sehr langsam.
 
Wie sieht es mit dem Arbeitsspeicher aus?

Es kann auch gut sein, daß entsprechende Speicherbereiche in der Zwischenzeit ausgelagert wurden, und bis die nun alle wieder geladen sind, kann es schon einige Zeit dauern.

jobo 16. Feb 2011 09:16

AW: DB Aktion nach bestimmter Zeit sehr langsam.
 
Das Problem ist leider sehr allgemein beschrieben.

Welche Mengengerüste in den Tabellen/Select Ergebnisse?
Welche Nutzerzahlen? 5, 50, 500?
Welche Profile? Oracle Trace?
Welche Windows Botschaften?
DOA von Allroundautomation? Die haben auch einen guten Support/Forum.
Welche Oracle Client Version?
Evtl. mehrere, verschiedene Oracle Client Versionen / Oracle Homes, speziell bei den Problem PC?
(Es gibt hunderte Oracle Produkte, nicht nur die DB)

Kannst Du es auf ein Client-Problem eingrenzen? Du solltest jedenfalls Tests durchführen, die eine Eingrenzung erlauben.
Gilt es für einzelne Clients am gleichen Server, andere laufen ordentlich?

shmia 16. Feb 2011 10:25

AW: DB Aktion nach bestimmter Zeit sehr langsam.
 
Wieviele Datenbanken sind es denn?
Oder meinst du in Wirklichkeit Abfragen mit SELECT...?

Um das Problem einzugrenzen, könntest du auch versuchen, innerhalb deiner Anwendung
die Dauer der Abfragen zu protokollieren.
Beim Zugriff über ADO gibt es in der Connection über die Event OnWillExcute und OnExecuteComplete die Möglichkeit die Abfrage mitzulesen.
In meiner Anwendung wird z.B. jede Abfrage, die länger als 2 Sekunden dauert in eine Logdatei geschrieben.
Vielleicht geht das auch bei deinen Komponenten.

Jackie1983 16. Feb 2011 12:45

AW: DB Aktion nach bestimmter Zeit sehr langsam.
 
Zitat:

Zitat von himitsu (Beitrag 1082083)
Wie sieht es mit dem Arbeitsspeicher aus?

Das sind alles schnelle rechner mit min 2gb ram.

Zitat:

Zitat von jobo (Beitrag 1082084)
Welche Mengengerüste in den Tabellen/Select Ergebnisse?

Unterschiedlich, bei zwei kunden haben wir das problem, bei einer kleinen und großen umgebung.

Zitat:

Zitat von jobo (Beitrag 1082084)
Welche Nutzerzahlen? 5, 50, 500?

5 - 50. Es muss aber keiner an der db arbeiten. Das Problem hatten wir auch schon bei keiner server last.

Zitat:

Zitat von jobo (Beitrag 1082084)
Welche Profile? Oracle Trace?
Welche Windows Botschaften?

Per OracleMonitor, dort sieht man das in der Zeit keine SQL Aktion durchgeführt wird. Anschließend dachten wir das eventuell beim zeichnen der Komponenten ein hänger ist und deswegen haben wir die windows Botschaften aufgezeichnet.

Zitat:

Zitat von jobo (Beitrag 1082084)
Welche Oracle Client Version?
Evtl. mehrere, verschiedene Oracle Client Versionen / Oracle Homes, speziell bei den Problem PC?

Version 7. Nein nur der DB Client.



Zitat:

Zitat von jobo (Beitrag 1082084)
Kannst Du es auf ein Client-Problem eingrenzen? Du solltest jedenfalls Tests durchführen, die eine Eingrenzung erlauben.
Gilt es für einzelne Clients am gleichen Server, andere laufen ordentlich?

Ist nur an einem Rechner so, sonst nirgend wo. In der großen Umgebung ist es auf allen Computern. Die haben aber eine 11g DB schnelle Rechner / Server und ein schnelles Netzwerk.

Zitat:

Zitat von shmia (Beitrag 1082104)
Wieviele Datenbanken sind es denn?
Oder meinst du in Wirklichkeit Abfragen mit SELECT...?

Meinte Tabellen. Sind so an die 150 Tabellen.

Zitat:

Zitat von shmia (Beitrag 1082104)
...innerhalb deiner Anwendung
die Dauer der Abfragen zu protokollieren.
Beim Zugriff über ADO gibt es in der Connection über die Event OnWillExcute und OnExecuteComplete die Möglichkeit die Abfrage mitzulesen.

Das sehen wir ja im Oracle Monitor dort sehen wir ja das keine SQL Aktion ausgeführt wird.

jobo 16. Feb 2011 13:00

AW: DB Aktion nach bestimmter Zeit sehr langsam.
 
Also das Problem gibt es in einer 7er Umgebung an einem Rechner und in einer 11er Umgebung an allen Rechnern?

Wenn Ihr nachweisbar keine SQL Aktivitäten habt, könnte es ein Netzwerkproblem sein. Wenn bspw. TNSNAMES mit Servernamen verwendet wird und die Namensauflösung hakt (Gründe dafür wären unterschiedliche etc/host Einträge oder lokale/firmenweite DNS Server Angaben, die fehlerhaft / temporär nicht verfügbar sind.

Wie auch immer, wenn das Performance Problem reproduzierbar ist, müsste in diesem Moment auch ein Ping oder TraceRT oder TNSPing auf den Oracle Server fehlschlagen.
Ist aber schon sehr unwahrscheinlich, weil bestimmt auch andere Netzteilnehmer damit zu kämpfen hätten.

Virenscanneraktivitäten?

Jackie1983 16. Feb 2011 13:36

AW: DB Aktion nach bestimmter Zeit sehr langsam.
 
Hmmmm. Glauben nicht das es am Netzwerk liegt. Weil sonst hätten die anderen ja auch Probleme.
Wenn wir dann aber ein bestimmtes DataSet schließen, vor der Aktion die so lange dauert, geht diese Aktion wieder schnell.

Wir vermuten aber das es nicht am DataSet liegt sondern noch etwas dahinter steckt nur weis ich nicht wie ich daran kommen könnte.

Bummi 16. Feb 2011 13:37

AW: DB Aktion nach bestimmter Zeit sehr langsam.
 
ich habe keine Ahnung von Oracle, gibt es da Serverseitige Cursors, können da noch Transaktionen offen sein?

jobo 16. Feb 2011 14:01

AW: DB Aktion nach bestimmter Zeit sehr langsam.
 
Ein offenes Dataset dürfte eigentlich keine Schwierigkeiten machen. Nicht mal ein laufendes Update.

Wenn man explizit Sperren setzt wär es was anderes, aber das wäre ja dann bekannt.

Ich kenn die DOA Komponenten aber nicht.
Wenn man schön brav "read commited " arbeitet, sollte alles in Ordnung sein.

Hier und an vielen anderen Stellen gibt's Rat zu dem Thema Sperren finden.


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:57 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz