Freigeben über


Optimieren von Anwendungen in einer Mehrbenutzerumgebung

Werden Anwendungen für eine Mehrbenutzerumgebung erstellt, ist Leistung besonders wichtig, da sich Ineffizienz dort vervielfältigt. Außerdem müssen beim Zugriff durch mehrere Benutzer Aspekte nebenwirkender Umstände und der Netzwerkzugriff beachtet werden.

Zur Behandlung dieser Aspekte stehen Ihnen folgende Möglichkeiten zu Verfügung:

  • Anpassen des Intervalls für Sperrversuche.
  • Effizienter Einsatz der Transaktionsverarbeitung.

Außerdem könnten Ihnen die Vorschläge zum Umgang mit auf einem Remoteserver gespeicherten Daten nutzen. Weitere Informationen finden Sie unter Optimieren des Zugriffs auf Remotedaten.

Anpassen des Intervalls für Sperrversuche

Sie können Visual FoxPro veranlassen, eine Sperrung nach einer kurzen Pause erneut zu versuchen, wenn die Anwendung erfolglos versucht, einen Datensatz oder eine Tabelle zu sperren. Jeder Sperrversuch verursacht jedoch Netzwerkverkehr. Ist das Netzwerk bereits stark belastet, führen wiederholte Sperrversuche zu zusätzlicher Belastung und somit zu einer allgemeinen Verlangsamung für alle Benutzer.

Um dieser Situation zu begegnen, können Sie das zwischen zwei Sperrversuchen abzuwartende Intervall anpassen. Wenn Sie ein größeres Intervall verwenden (und dadurch in einer Zeiteinheit weniger Sperrversuche absetzen), wird der Netzwerkverkehr reduziert und die Leistung verbessert.

So passen Sie das Intervall für Sperrversuche an

  • Rufen Sie die Funktion SYS(3051) auf und übergeben dieser das zwischen zwei Sperrversuchen abzuwartende Intervall in Millisekunden als Parameter.

Effizienter Einsatz der Transaktionsverarbeitung

Bei Verwendung der Transaktionsverarbeitung müssen Sie die Transaktionen so entwerfen, dass diese möglichst geringe Auswirkungen auf andere Benutzer haben. Alle in einer Transaktion gesetzten Sperren bleiben aktiv, bis die Transaktion abgeschlossen oder zurückgesetzt wurde. Selbst wenn Sie explizit UNLOCK aufrufen, bleiben die Sperren bis zum Aufruf von END TRANSACTION oder ROLLBACK aktiv.

Des weiteren sperrt Visual FoxPro den Tabellenvorspann, wenn Sie einer Tabelle Datensätze hinzufügen. Der Vorspann bleibt während der gesamten Transaktion gesperrt, so dass andere Benutzer keine Datensätze hinzufügen können.

Um die Auswirkungen von Transaktionen so gering wie möglich zu halten, sollten Beginn und Ende einer Transaktion möglichst nahe bei der tatsächlichen Aktualisierung der Daten stattfinden; eine ideale Transaktion besteht nur aus Anweisungen zur Aktualisierung von Daten.

Wenn Sie in einem Formular vorgenommene Aktualisierungen um Transaktionen erweitern, sollten Sie nicht so vorgehen, dass die Transaktion begonnen, das Formular ausgeführt und erst beim Schließen des Formulars die Transaktion abgeschlossen wird. Stattdessen sollten Sie die Anweisungen für die Transaktionsverarbeitung beispielsweise in den Ereigniscode für die Schaltfläche Speichern aufnehmen.

* Save method from the cmdSave command button
BEGIN TRANSACTION
UPDATE PRODUCTS SET reorder_amt = 0 WHERE discontinued = .T.
END TRANSACTION

Siehe auch

Optimierung von ActiveX-Steuerelementen | Optimieren des Zugriffs auf Remotedaten | Optimieren von Anwendungen | Optimieren des Systems | Optimierung internationaler Anwendungen