Performance verbessern
Inhaltsverzeichnis
1 Allgemeines
Dieser Artikel ist noch in Bearbeitung
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 2008 R2 Express" verwenden, beachten Sie die Einschränkungen des "MS SQL Server 2008 R2 Express":
- Es wird nur ein Prozessor bzw. ein Prozessorkern verwendet: Das ist nicht so schlimm, weil die CPU eines SQL-Servers meist "gelangweilt" ist.
- Die Express-Edition nutzt maximal 1 GB Arbeitsspeicher: Das ist schon eine wesentliche Einschränkung! SQL-Server "leben" von RAM-Speicher. Wenn Sie nicht genug davon haben, können Sie keine internen Hashtabellen aufbauen, in denen sie sich immer wiederkehrende Abfragen merken.
- Eine Datenbank darf maximal 10 GB groß sein (in 2008 R1 nur 4 GB): Die wenigsten Kunden werden dieses Limit erreichen.
- Nutzen Sie neuere Hardware, die z.B. SATA benutzt. 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.
- 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.
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.
- Benutzen Sie den Grafikkarten-Treiber des Herstellers! Manchmal sucht Windows bei der Installation einen Microsoft-Treiber aus, der die Grafikkarte u.U. nicht optimal ansteuert.
2.3 Terminal-Server, Citrix und Co.
Wenn Sie das Programm über einen Terminal-Server benutzen:
- Schalten Sie im Benutzerprofil den Farbverlauf aus. Das Übertragen von Farbverläufen erfordert viel, viel mehr Daten als das Übertragen einer einfarbigen Flache!
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 ein/e Benutzer/in an verschiedenen Rechnern an das Programm anmelden kann und hat überall das gewohnte Benutzerprofil, 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! D as 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 jedoch mit Remote Desktop (RDP) 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 RDP-Server, also eigentlich lokal.
- Man kann sich also an einem beliebigen Rechner anmelden, RDP starten und hat seine gewohnten Programm-Einstellungen!
Man hat also eine verbesserte Performance und trotzdem ein zentrale Stelle für die Benutzerprofil-Dateien.