SQL Server Datenbank

Performance

Bei der Suche nach verlorener Performance, können wir nicht auf gut Glück an der SQL Server Instanz oder an unserer Applikation etwas ändern und hoffen, dass die Applikation danach schneller ist.  Vielmehr

  1. müssen zunächst die Antwortszeiten oder die Anzahl der Lesezugriffe für einzelne Datenbankabfragen gemessen werden;
  2. muss der Flaschenhals identifiziert werden: Datenbank-Server (Memory, Disk, Services), Datenbank (Tabellen-Grössen, Indexe), Terminal-Server (Auslastung), Applikation (Abfrage-Architektur, nicht geschlossene DB-Verbindungen).

Transaction Log File

In einem ersten Schritt ist zu prüfen, ob das Transaction Log File (*_log.ldf) das zehnfache der Anfangsgrösse (ca. 500 bis 800 KB) überschreitet. Beträgt die Grösse also mehr 5 MB, löschen Sie die Datei.

  1. Beenden Sie den gecko SQL Server Dienst (MSSQL$instanz)
  2. Wechseln Sie ins DATA Verzeichnis des SQL-Servers, z.B. C:\Program Files\Microsoft SQL Server\MSSQL12.Instanz\MSSQL\DATA
  3. Erstellen Sie eine Kopie der Transaction Log Datei „datenbank-name_log.ldf“ und löschen Sie diese danach.
  4. Starten Sie den gecko SQL Server Dienst neu. Der SQL Server erstellt automatisch eine neue LOG Datei.

Services

In einem zweiten Schritt sind sämtliche nicht benötigten Services auszuschalten. Hierzu gehören Analysis Services, Reporting Services und Integration Services. Diese Services benötigt die gecko Applikation nicht.

Fragmentation (Indexe)

SQL Server Management Studio:

Um die Fragmentation der Indexe zu prüfen, markieren Sie die gewünschte Datenbank und wählen mit rechter Maustaste den Eintrag Reports|Standard Reports|Index Physical Statistics.

Die nachstehende Tabelle (Quelle: Microsoft) gibt einen groben Überblick über die empfohlenen Massnahmen:

Avg. Fragmentation (%) Massnahme
> 5% and < = 30% ALTER INDEX REORGANIZE
> 30% ALTER INDEX REBUILD WITH (ONLINE = ON)*
gecko Applikation (ab Version 8.2.9.7).

Um die Fragmentation der Indexe zu optimieren, gehen Sie wie folgt vor:

  1. Wählen Sie via Menü Extras|Db Administrator|Wartung den Eintrag Indexe löschen
  2. Im Formular Datenbank Wartung klicken Sie auf Einlesen
  3. Markieren Sie in der Spalte «Löschen» ganz rechts alle Zeilen mit einem Häkchen.
  4. Klicken Sie auf die Schaltfläche Index löschen und schliessen Sie das Formular
  5. Wählen Sie via Menü Extras|Db Administrator|Wartung den Eintrag Indexe reorganisieren

Konfigurationseinstellungen

Passen Sie die Verbindungsparameter in der gecko Konfigurationsdatei (gecko.xml) wie folgt an:

  • Ergänzen Sie den Eintrag Enlist=false;
<system>
<id>pConnect />
<value>Provider=SQLOLEDB.1;Data Source=srv\gecko;Initial Catalog=gecko_xxx;Persist Security Info=False;Enlist=false;</value>
</system>

Benutzereinstellungen

Die Anwender haben folgende Möglichkeiten, um die Anzeige der Dossiers zu beschleunigen:

  • Übersichtslisten nicht gruppieren;
  • Bildsymbole für die Anzeige, ob Dokumente, Fristen oder Notizen vorhanden sind, vermeiden.
Übersichtslisten nicht gruppieren:

Wählen Sie via Menü Extras|Meine Einstellungen. Stellen Sie sicher, dass im Register Allgemein die Option «Übersichtslisten nicht gruppieren» mit einem Häkchen markiert ist. Ergeben sich beim Programmstart Verzögerungen, kann die Option «Geburtstage nicht zeigen» mit einem Häkchen markiert werden.

Bildsymbole für Aufgaben, Notizen und Dokumente nicht zeigen:

Klicken Sie auf das Register Fensterinhalte und prüfen Sie, dass die Option «Übersichtsliste: Zeige Icon, wenn Aufgaben, Notizen, Dokumente vorhanden sind» nicht markiert ist.

Abhängige Dossiers nicht zeigen:

Klicken Sie auf das Register Parameter und prüfen Sie, dass die Option «Formular Geschäftsfall: abhängige Dossier zeigen» nicht markiert ist.

Serverumstellung

Bei einer Serverumstellung empfehlen wir, die Datenbank wie folgt zu übernehmen:

  1. Übernehmen Sie die Daten aus dem Backup (*.bak) in eine temporäre Import-Datenbank.
  2. Erstellen Sie die neue, produktive Datenbank (siehe Abschnitt unten)
  3. Wählen Sie im Knoten der neuen Datenbank gemäss Schritt 2 via rechter Maustaste den Eintrag Tasks|Daten importieren
  4. Als Quell-Datenbank wählen Sie die gemäss Schritt 1 erstellte Import-Datenbank und als Ziel-Datenbank die produktive Datenbank gemäss Schritt 2.
Neue Datenbank:

Wenn Sie eine neue Datenbank erstellen, erfassen Sie in der Spalte „Initial Size (MB)“ die Dateigrösse der aktuellen Datenbank.

Im Abschnitt „Optionen“ können die Standardeinstellungen übernommen werden. Das Recovery Modell (Wiederherstellungsmodell) sollte immer auf Simple/Einfach eingestellt sein.

Ergeben sich Performance Probleme, ändern Sie die Werte gemäss nachstehender Tabelle. Bestehen die Probleme weiter, empfehlen wir Ihnen, wieder die Standardeinstellungen zu verwenden.

Zeile Wert Standard
Auto Create Statistics False True
Auto Update Statistics False True
Seitenüberprüfung (Page Verify) None CHECKSUM oder TORN_PAGE_DETECTION