Performance verbessern: Unterschied zwischen den Versionen

Aus GEVITAS
Wechseln zu: Navigation, Suche
(Die Seite wurde neu angelegt: „== Allgemeines == ''In Bearbeitung'' Dieser Artikel beschreibt, mit welchen Maßnahmen man die [http://de.wikipedia.org/wiki/Leistung_(Informatik) Performance…“)
 
 
(12 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
 
== Allgemeines ==
 
== Allgemeines ==
''In Bearbeitung''
 
  
 
Dieser Artikel beschreibt, mit welchen Maßnahmen man die [http://de.wikipedia.org/wiki/Leistung_(Informatik) Performance] des Programms verbessern kann.
 
Dieser Artikel beschreibt, mit welchen Maßnahmen man die [http://de.wikipedia.org/wiki/Leistung_(Informatik) Performance] des Programms verbessern kann.
Zeile 13: Zeile 12:
 
usw.
 
usw.
  
=== Datenbank-Indizes ===
+
=== Server ===
 +
 
 +
Vereinfacht gesagt, kann man die Performance eines Datenbank-Servers verbessern durch diese Maßnahmen:
 +
 
 +
==== Hardware ====
 +
 
 +
* RAM-Speicher (Arbeitsspeicher): Geben Sie dem SQL-Datenbank-Server '''so viel Arbeitsspeicher wie möglich'''!
 +
: SQL-Maschinen bauen sich im Laufe der Zeit sog. interne [http://de.wikipedia.org/wiki/Hashtabelle Hashtabellen] im Arbeitsspeicher auf.
 +
:Hier merken sie sich, welche Abfragen besonders häufig vorkommen und optimieren den Zugriff darauf im Arbeitsspeicher.
 +
 
 +
* Verwenden Sie ein 64-Bit-Betriebssystem, das mehr als 3 GByte Speicher nutzen kann.
 +
 
 +
* Wenn Sie den "MS SQL Server '''Express'''" verwenden, beachten Sie die Einschränkungen der Express-Versionen
 +
: (Max. RAM-Speicher, Prozessor-Kerne usw.)
 +
* Denken Sie über den Einsatz von mySQL© nach, siehe [[Welches_Datenbank-System_verwenden%3F|Welches Datenbank-System verwenden?]].
 +
 
 +
* Der "Flaschenhals" eines Servers ist meist die Festplatte!
 +
: Der Grund liegt darin, dass der SQL-Server sicherstellen muss, dass die gerade gespeicherten Daten auch allen Benutzern sicher '''sofort''' zur Verfügung stehen.
 +
: Also müssen '''neue Daten sofort''' auf die Festplatte. Bei neuen Daten müssen aber meist auch die Indizes aktualisiert werden, was einen weiteren Festplatten-Zugriff notwendig macht.
 +
 
 +
 
 +
==== Datenbank-Indizes ====
 +
 
 +
Ein [http://de.wikipedia.org/wiki/Datenbankindex Datenbank-Index] ist ein Mechanismus einer Datenbank-Maschine, der bestimmte Felder (Spalten) einer Tabelle '''indiziert'''.
  
Ein [http://de.wikipedia.org/wiki/Datenbankindex Datenbank-Index] ist ein Mechanismus einer Datenbank-Maschine, der bestimmte Felder (Spalten) einer Tabelle '''indiziert'''. Dadurch merkt sich der Datenbank-Server in einer speziellen internen Tabelle, welche Werte es für das ausgewählte Feld gibt. Der '''Zugriff''' auf '''bestimmte Werte''' der Tabelle wird dadurch '''wesentlich beschleunigt'''.
+
Dadurch merkt sich der Datenbank-Server in einer speziellen internen Tabelle, welche Werte es für das ausgewählte Feld gibt. Der '''Zugriff''' auf '''bestimmte Werte''' der Tabelle wird dadurch '''wesentlich beschleunigt'''.
  
 
* Vorteil: Das '''Einlesen''' von Daten wird '''signifikant''' beschleunigt.
 
* Vorteil: Das '''Einlesen''' von Daten wird '''signifikant''' beschleunigt.
 
* Nachteil: Das '''Einfügen''' von Daten wird verlangsamt.
 
* Nachteil: Das '''Einfügen''' von Daten wird verlangsamt.
  
Das Anlegen von Indizes einer Datenbank ist eine Wissenschaft für sich!
+
'''Das Anlegen von Indizes einer Datenbank ist eine Wissenschaft für sich!'''
  
 +
Die [[REFLEX]] bzw.  [[GEVAS-Professional]] bringen bei der Neuinstallation eine Datenbank mit, in den eigentlich alle notwendigen Indizes gesetzt sind.
 +
 +
* Der Artikel '''[[Standard-Indizes der REFLEX-Datenbank]]''' beinhaltet Informationen über die empfohlenen oder erweiterten Indizes einer [[REFLEX]]-Datenbank.
 +
 +
* Der Artikel '''[[Standard-Indizes der GEVAS-Professional-Datenbank]]''' beinhaltet Informationen über die empfohlenen oder erweiterten Indizes einer [[GEVAS-Professional]]-Datenbank.
  
=== Server ===
 
  
 
=== Client, Rechner ===
 
=== Client, Rechner ===
 +
 +
Da sich die GEVITAS-Programme laufend den Anforderungen anpassen, steigt auch die Anforderung an die Rechner. Ein paar Tipps dazu:
 +
 +
* Wenn Sie ältere Hardware verwenden, schalten Sie im [[REFLEX: Benutzerprofil|Benutzerprofil]] den Farbverlauf aus.
 +
: Bei älteren Rechnern ist die CPU für das Berechnen von Grafiken zuständig, bei neueren macht das die Grafikkarte.
 +
 +
* Schalten Sie in den Energie-Optionen die Spar-Optionen für das Netzwerk aus.
 +
 +
* Benutzen Sie '''nicht''' die Netzwerk-Anschlüsse von IP-Telefonen für den PC!
 +
 +
 +
=== Terminal-Server, RDC, Citrix und Co. ===
 +
 +
Wenn Sie das Programm über einen Remote-Server benutzen:
 +
 +
* Schalten Sie im [[REFLEX: Benutzerprofil|Benutzerprofil]] den Farbverlauf aus.
 +
: Das Übertragen von Farbverläufen erfordert viel, viel mehr Daten als das Übertragen einer einfarbigen Fläche!
 +
* Je mehr Sessions laufen, desto mehr RAM und CPU-Leistung wird benötigt.
 +
 +
 +
== Speicherort der Benutzerprofil-Dateien ==
 +
 +
=== Hintergrund ===
 +
 +
Eigentlich ist es eine gute Idee, die Benutzerprofil-Dateien auf einem Server-Laufwerk abzulegen.
 +
 +
* Das hat den Vorteil, dass sich Benutzer*innen an verschiedenen Rechnern an das Programm anmelden können und überall die gewohnte Programm-Umgebung vorfinden, also Farben, gewählte Optionen, Einstellungen der Tabellen usw.
 +
 +
* Leider '''kann''' es sein, dass das Speichern der Einstellungen auf einem Server-Laufwerk länger dauert!
 +
: Das führt dazu, dass das Schließen eines Fensters ein paar Sekunden lang dauert, obwohl die eigentliche Datenbank-Abfrage darin schon längst abgeschlossen ist.
 +
 +
;Hinweis
 +
:Technisch gesehen "merkt" sich das Programm beim Schließen eines Fensters alle Einstellungen, die das Fenster betreffen, in der Benutzerprofil-Datei.
 +
:Wenn man also z.B. einen Auftrag erfasst öffnet und schließt man beispielsweise diese Fenster:
 +
:*Status festlegen
 +
:*Kunde suchen/auswählen
 +
:*Wiederholt Artikel suchen/auswählen
 +
:*Unter Umständen mehrmals in die Dispo schauen
 +
:*Liefer-/Abhol-Anschrift festlegen
 +
:*Versandart auswählen
 +
usw.
 +
 +
Jedesmal schreibt das Programm also in die Benutzerprofil-Dateien.
 +
 +
 +
=== Benutzerprofil-Dateien lokal ablegen ===
 +
 +
In der [[INI-Datei]] kann man den Ort der Benutzerprofil-Dateien festlegen.
 +
 +
* Wenn man die Benutzerprofil-Dateien lokal auf dem Rechner ablegt, gewinnt man u.U. enorm an Performance,
 +
: verliert aber den Komfort, dass sich Benutzer/innen an jedem Arbeitsplatz anmelden können
 +
: und ihr gewohntes Aussehen des Programms haben.
 +
 +
* Wenn man mit '''Remote Desktop''' oder einem ähnlichen System arbeitet, ist es '''empfehlenswert, die Benutzerprofil-Dateien lokal abzulegen'''.
 +
;Grund
 +
:Jede*r Benutzer*in arbeitet ja in Wirklichkeit nicht an seinem Arbeitsplatz, sondern auf dem Remote-Server, also eigentlich lokal.
 +
:Man kann sich also an einem beliebigen Rechner anmelden, Remote starten und hat seine gewohnten Programm-Einstellungen!
 +
:Man hat also eine verbesserte Performance und trotzdem ein zentrale Stelle für die Benutzerprofil-Dateien.

Aktuelle Version vom 10. September 2020, 11:00 Uhr

1 Allgemeines

Dieser Artikel beschreibt, mit welchen Maßnahmen man die Performance des Programms verbessern kann.

2 Was ist Performance

Als Performance bezeichnet grob gesagt man die Zeit, die ein Programm benötigt, um eine bestimmte Aufgabe zu lösen, z.B.

  • Wie schnell wird ein bestimmter Auftrag gefunden
  • Wie schnell wird die Verbuchung einer Auftragsposition durchgeführt

usw.

2.1 Server

Vereinfacht gesagt, kann man die Performance eines Datenbank-Servers verbessern durch diese Maßnahmen:

2.1.1 Hardware

  • RAM-Speicher (Arbeitsspeicher): Geben Sie dem SQL-Datenbank-Server so viel Arbeitsspeicher wie möglich!
SQL-Maschinen bauen sich im Laufe der Zeit sog. interne Hashtabellen im Arbeitsspeicher auf.
Hier merken sie sich, welche Abfragen besonders häufig vorkommen und optimieren den Zugriff darauf im Arbeitsspeicher.
  • Verwenden Sie ein 64-Bit-Betriebssystem, das mehr als 3 GByte Speicher nutzen kann.
  • Wenn Sie den "MS SQL Server Express" verwenden, beachten Sie die Einschränkungen der Express-Versionen
(Max. RAM-Speicher, Prozessor-Kerne usw.)
  • Der "Flaschenhals" eines Servers ist meist die Festplatte!
Der Grund liegt darin, dass der SQL-Server sicherstellen muss, dass die gerade gespeicherten Daten auch allen Benutzern sicher sofort zur Verfügung stehen.
Also müssen neue Daten sofort auf die Festplatte. Bei neuen Daten müssen aber meist auch die Indizes aktualisiert werden, was einen weiteren Festplatten-Zugriff notwendig macht.


2.1.2 Datenbank-Indizes

Ein Datenbank-Index ist ein Mechanismus einer Datenbank-Maschine, der bestimmte Felder (Spalten) einer Tabelle indiziert.

Dadurch merkt sich der Datenbank-Server in einer speziellen internen Tabelle, welche Werte es für das ausgewählte Feld gibt. Der Zugriff auf bestimmte Werte der Tabelle wird dadurch wesentlich beschleunigt.

  • Vorteil: Das Einlesen von Daten wird signifikant beschleunigt.
  • Nachteil: Das Einfügen von Daten wird verlangsamt.

Das Anlegen von Indizes einer Datenbank ist eine Wissenschaft für sich!

Die REFLEX bzw. GEVAS-Professional bringen bei der Neuinstallation eine Datenbank mit, in den eigentlich alle notwendigen Indizes gesetzt sind.


2.2 Client, Rechner

Da sich die GEVITAS-Programme laufend den Anforderungen anpassen, steigt auch die Anforderung an die Rechner. Ein paar Tipps dazu:

  • Wenn Sie ältere Hardware verwenden, schalten Sie im Benutzerprofil den Farbverlauf aus.
Bei älteren Rechnern ist die CPU für das Berechnen von Grafiken zuständig, bei neueren macht das die Grafikkarte.
  • Schalten Sie in den Energie-Optionen die Spar-Optionen für das Netzwerk aus.
  • Benutzen Sie nicht die Netzwerk-Anschlüsse von IP-Telefonen für den PC!


2.3 Terminal-Server, RDC, Citrix und Co.

Wenn Sie das Programm über einen Remote-Server benutzen:

Das Übertragen von Farbverläufen erfordert viel, viel mehr Daten als das Übertragen einer einfarbigen Fläche!
  • Je mehr Sessions laufen, desto mehr RAM und CPU-Leistung wird benötigt.


3 Speicherort der Benutzerprofil-Dateien

3.1 Hintergrund

Eigentlich ist es eine gute Idee, die Benutzerprofil-Dateien auf einem Server-Laufwerk abzulegen.

  • Das hat den Vorteil, dass sich Benutzer*innen an verschiedenen Rechnern an das Programm anmelden können und überall die gewohnte Programm-Umgebung vorfinden, also Farben, gewählte Optionen, Einstellungen der Tabellen usw.
  • Leider kann es sein, dass das Speichern der Einstellungen auf einem Server-Laufwerk länger dauert!
Das führt dazu, dass das Schließen eines Fensters ein paar Sekunden lang dauert, obwohl die eigentliche Datenbank-Abfrage darin schon längst abgeschlossen ist.
Hinweis
Technisch gesehen "merkt" sich das Programm beim Schließen eines Fensters alle Einstellungen, die das Fenster betreffen, in der Benutzerprofil-Datei.
Wenn man also z.B. einen Auftrag erfasst öffnet und schließt man beispielsweise diese Fenster:
  • Status festlegen
  • Kunde suchen/auswählen
  • Wiederholt Artikel suchen/auswählen
  • Unter Umständen mehrmals in die Dispo schauen
  • Liefer-/Abhol-Anschrift festlegen
  • Versandart auswählen

usw.

Jedesmal schreibt das Programm also in die Benutzerprofil-Dateien.


3.2 Benutzerprofil-Dateien lokal ablegen

In der INI-Datei kann man den Ort der Benutzerprofil-Dateien festlegen.

  • Wenn man die Benutzerprofil-Dateien lokal auf dem Rechner ablegt, gewinnt man u.U. enorm an Performance,
verliert aber den Komfort, dass sich Benutzer/innen an jedem Arbeitsplatz anmelden können
und ihr gewohntes Aussehen des Programms haben.
  • Wenn man mit Remote Desktop oder einem ähnlichen System arbeitet, ist es empfehlenswert, die Benutzerprofil-Dateien lokal abzulegen.
Grund
Jede*r Benutzer*in arbeitet ja in Wirklichkeit nicht an seinem Arbeitsplatz, sondern auf dem Remote-Server, also eigentlich lokal.
Man kann sich also an einem beliebigen Rechner anmelden, Remote starten und hat seine gewohnten Programm-Einstellungen!
Man hat also eine verbesserte Performance und trotzdem ein zentrale Stelle für die Benutzerprofil-Dateien.