Ausgangssituation
- Der Programmstart von ADVOKAT dauert sehr lange.
- Das Öffnen der Module Aktenverwaltung oder Dokumentverwaltung dauert sehr lange.
- Die Verwendung des Suchassistenten und der dynamischen Suche dauert sehr lange.
- Die Erstellung und/oder das Öffnen von Dokumenten (Beispiel: Word-Dokumente) über ADVOKAT dauert sehr lange.
- Bei Verwendung der Dokumentvorschau in ADVOKAT erscheint das Fenster "Kopieren von ..." und ADVOKAT reagiert nicht.
Ursache
Es gibt mehrere mögliche Ursachen, es können auch mehrere gleichzeitig zutreffen:
- Der Datenbankserver und/oder SharePointserver sind veraltet, es fehlen Windows Updates.
- Der Datenbankserver und/oder SharePointserver sind zu stark ausgelastet.
- Die Microsoft SQL Instanzen für ADVOKAT und/oder Microsoft SharePoint am Datenbankserver sind hinsichtlich CPU und RAM zu streng limitiert.
- Die Anwender nutzen ADVOKAT auf einem externen Gerät welches per VPN-Tunnel in das Domänennetzwerk eingebunden ist.
- Die Anpassungen laut Kapitel Dienst WebClient, Gruppenrichtlinien und Antivirensoftware wurden nicht umgesetzt.
Lösung
- Prüfen Sie ob ADVOKAT mit Microsoft SharePoint verwendet wird. Mehr Informationen dazu finden Sie im Kapitel ADVOKAT mit Microsoft SharePoint.
Bei der Verwendung von ADVOKAT ohne Microsoft SharePoint wechseln Sie zum Kapitel ADVOKAT Performanceprobleme. - Beschränken sich die Performanceprobleme auf das Öffnen von Akten, so versuchen Sie das Kapitel Öffnen von Modulen beschleunigen umzusetzen, bevor Sie mit Schritt 3 fortfahren.
- Navigieren Sie zum ADVOKAT Backend unter "...\ADVOKAT\Daten" und öffnen Sie die Konfigurationsdatei "Advokat.ini" mit einem Texteditor.
- Prüfen Sie ob unterhalb der Zeile [Benutzer Default] folgenden Konfigurationsschalter vorhanden ist: CheckWebClient=1
- Ist dieser vorhanden so entfernen Sie diesen vollständig, ist dieser nicht vorhanden wechseln Sie zu Schritt 4.
- Stellen Sie am Datenbank- und SharePointserver sicher, dass alle verfügbaren Windows Updates für Microsoft SQL und Microsoft SharePoint eingespielt sind.
Dies gilt insbesondere, wenn Microsoft SharePoint 2013 im Einsatz ist. Eine Übersicht der Windows Updates finden Sie hier. - Stellen Sie am SharePointserver sicher, dass in der SharePoint Zentraladministration im Bereich "Upgrade und Migration" > "Datenbankstatus überprüfen" alle Datenbanken aktuell sind.
- Dies erkennen Sie am Eintrag "Es ist keine Aktion erforderlich" in der Spalte "Status". Wird dort angezeigt, dass ein Upgrade erforderlich ist, so muss dies unbedingt durchgeführt werden.
- Mehr Informationen dazu finden Sie im Microsoft Artikel hier.
- Stellen Sie am Datenbankserver und SharePointserver jeweils sicher, dass die CPU-, RAM- und Datenträgerauslastung nicht konstant höher als 80% sind.
- Es müssen genügend freie Ressourcen für Betriebssystem, Microsoft SQL Server und Microsoft SharePoint zur Verfügung stehen.
- Für den SharePointserver gilt: Ist die Auslastung zu hoch, können Sie versuchen, die Konfiguration der Volltextsuche laut Kapitel Volltextsuche konfigurieren anzupassen.
- Es sollte der Zeitintervall der inkrementellen Durchforstung von alle 6 Stunden auf alle 12 Stunden täglich gesetzt werden.
- Es sollte der Zeitintervall der inkrementellen Durchforstung von alle 6 Stunden auf alle 12 Stunden täglich gesetzt werden.
- Stellen Sie sicher, dass ADVOKAT am Datenbankserver die Komponente Remote Blob Store (RBS) nicht in Verwendung ist.
Werden Daten aus der Inhaltsdatenbank "WSS_Content" per RBS ausgelagert, dann kommt es beim Öffnen/Erstellen/Bearbeiten von Dokumenten zu Performanceproblemen. - Stellen Sie sicher, dass ADVOKAT nicht auf externen Geräten außerhalb des Domänennetzwerks per VPN-Tunnel verwendet wird.
- Wir raten von dem Betrieb auf externen Geräten per VPN-Tunnel ab, die Performance leidet zu stark darunter. Bei Verwendung von Microsoft SharePoint potenzieren sich solche Performanceprobleme.
- Stattdessen ist ADVOKAT auf Arbeitsstationen oder Terminalservern innerhalb des Domänennetzwerks zu verwenden, siehe Kapitel Hinweise.
- Sicherstellen, dass ADVOKAT und Microsoft Office Outlook auf allen Arbeitsplätzen geschlossen sind.
- ADVOKAT Frontend auf einer Arbeitsstation oder Terminalserver starten.
- Am Startbildschirm von ADVOKAT "STRG + SHIFT + Doppelklick linke Maustaste" drücken.
- Option "Advokat Programmstart sperren" aktivieren
- Im Fenster "Optional zusätzlicher Text für die Meldung" einen Informationstext eingeben, Beispiel: ADVOKAT Update von 12:00 bis 12:15 Uhr.
Auf allen anderen Geräten kann ADVOKAT nun nicht mehr gestartet werden.
Alle Benutzer, welche sich zu diesem Zeitpunkt noch im Programm befinden werden nach einer Wartefrist von 5 Minuten getrennt.
- Passen Sie die Konfiguration am Datenbankserver per Microsoft SQL Management Studio für die relevante Microsoft SQL Instanz an:
- Servereigenschaften > Arbeitsspeicher
- Mindestmenge an Serverarbeitsspeicher (in MB): Dieser Wert ist zu erhöhen, etappenweise um 2048 MB.
- Maximaler Serverarbeitsspeicher (in MB): Dieser Wert ist zu erhöhen, etappenweise um 2048 MB, maximal 80% des verfügbaren Arbeitsspeichers.
- Beachten Sie, dass dieser Schritt einen Neustart der Microsoft SQL-Instanz bzw. des Microsoft SQL Server benötigt und damit nicht im laufenden Betrieb möglich ist.
- Servereigenschaften > Arbeitsspeicher
- Dieser Schritt ist nur relevant, wenn die SQL-Datenbanken von ADVOKAT mit Microsoft SQL Server 2016 oder neuer betrieben werden. Bei Microsoft SQL Server 2012 und 2014 überspringen Sie diesen Schritt.
Befolgen Sie Punkt 1 bis 2 laut Kapitel Microsoft SQL Datenbanken einsehen und setzen anschließend wie folgt fort:- Nach dem erfolgreichen Verbindungsaufbau werden in der linken Spalte "Objekt-Explorer" beim Unterpunkt "Datenbanken" alle verfügbaren Datenbanken angezeigt.
Es ist bei jeder Datenbank mit Bezeichnung "ADVOKAT_..." per Rechtsklick > "Optionen" aufzurufen. - Im Fenster "Datenbankeneigenschaften - ADVOKAT_..." wählen Sie links die Seite "Optionen" aus. Bei den Optionen prüfen Sie den Inhalt des Feldes "Kompatibilitätsgrad".
- Bei Microsoft SQL Server 2016: Es muss "SQL Server 2016 (130)" angezeigt werden. Ist ein älterer Kompatibilitätsgrad angegeben, dann ändern Sie diesen auf "SQL Server 2016 (130)".
- Bei Microsoft SQL Server 2017 oder neuer: Es muss "SQL Server 2017 (140)" angezeigt werden. Ist ein älterer Kompatibilitätsgrad angegeben, dann ändern Sie diesen auf "SQL Server 2017 (140)".
- Wiederholen Sie Schritt B für jede Datenbank mit Bezeichnung "ADVOKAT_...".
- Beachten Sie, dass anschließend ein Neustart der Microsoft SQL-Instanz bzw. des Microsoft SQL Server benötigt wird und damit nicht im laufenden Betrieb möglich ist.
Führen Sie folgende zwei SQL-Befehl für die Datenbanken mit folgender Bezeichnung aus: ADVOKAT_DATEN, ADVOKAT_TABELLEN
Falls die Datenbanken bei Ihnen nicht exakt diese Bezeichnung haben, dann ist im Skript die Bezeichnung in Zeile 6 anzupassenDECLARE @Table NVARCHAR(255) DECLARE @cmd NVARCHAR(1000) -- Hier den richtigen Namen der Datenbank eingeben SET @cmd = 'DECLARE TableCursor CURSOR READ_ONLY FOR SELECT ''['' + table_catalog + ''].['' + table_schema + ''].['' + table_name + '']'' as tableName FROM [Advokat_DATEN].INFORMATION_SCHEMA.TABLES WHERE table_type = ''BASE TABLE''' -- create table cursor EXEC (@cmd) OPEN TableCursor FETCH NEXT FROM TableCursor INTO @Table WHILE @@FETCH_STATUS = 0 BEGIN BEGIN TRY SET @cmd = 'ALTER INDEX ALL ON ' + @Table + ' REORGANIZE' PRINT @cmd -- uncomment if you want to see commands EXEC (@cmd) END TRY BEGIN CATCH PRINT '---' PRINT @cmd PRINT ERROR_MESSAGE() PRINT '---' END CATCH FETCH NEXT FROM TableCursor INTO @Table END CLOSE TableCursor DEALLOCATE TableCursor
DECLARE @Table NVARCHAR(255) DECLARE @cmd NVARCHAR(1000) -- Hier den richtigen Namen der Datenbank eingeben SET @cmd = 'DECLARE TableCursor CURSOR READ_ONLY FOR SELECT ''['' + table_catalog + ''].['' + table_schema + ''].['' + table_name + '']'' as tableName FROM [Advokat_TABELLEN].INFORMATION_SCHEMA.TABLES WHERE table_type = ''BASE TABLE''' -- create table cursor EXEC (@cmd) OPEN TableCursor FETCH NEXT FROM TableCursor INTO @Table WHILE @@FETCH_STATUS = 0 BEGIN BEGIN TRY SET @cmd = 'ALTER INDEX ALL ON ' + @Table + ' REORGANIZE' PRINT @cmd -- uncomment if you want to see commands EXEC (@cmd) END TRY BEGIN CATCH PRINT '---' PRINT @cmd PRINT ERROR_MESSAGE() PRINT '---' END CATCH FETCH NEXT FROM TableCursor INTO @Table END CLOSE TableCursor DEALLOCATE TableCursor
- Nach dem erfolgreichen Verbindungsaufbau werden in der linken Spalte "Objekt-Explorer" beim Unterpunkt "Datenbanken" alle verfügbaren Datenbanken angezeigt.
- Sperre des Programmstarts aufheben, starten Sie ADVOKAT am gleichen Gerät wie bei Schritt 9, es erscheint folgende Meldung, welche Sie mit "Ja" bestätigen:
Soll die Sperre für die anderen Benutzer wieder aufgehoben werden? - Navigieren Sie zum ADVOKAT Backend unter "...\ADVOKAT\Daten" und öffnen Sie die Konfigurationsdatei "Advokat.ini" mit einem Texteditor.
- Fügen Sie in einer neuen leeren Zeile unterhalb von [Benutzer Default] folgenden Konfigurationsschalter ein: PerfLog=1
- Durch die Aktivierung des Schalters werden alle Vorgänge in ADVOKAT hinsichtlich Performance protokolliert. Die Protokolle befinden sich im Backend unter "...\ADVOKAT\Daten\Log".
- Lassen Sie den Konfigurationsschalter für 24 bis 48 Stunden aktiviert, anschließend ist dieser wieder zu entfernen.
- Eine permanente Protokollierung würde zu sehr großen Protokollen im Ordner "Log" führen und kann sich auch negativ auf die Performance auswirken.
- Stellen Sie sicher, dass alle Anpassungen laut Kapitel Dienst WebClient, Gruppenrichtlinien und Antivirensoftware vollständig und lückenlos umgesetzt wurden.
- Stellen Sie sicher, dass am File-, Datenbank- und SharePointserver die verwendete Lösung zur Sicherung der Daten und/oder eine Serverreplikation diese Geräte nicht zu stark auslastet.
Im Zweifelsfall sind Datensicherung und Replikation zeitlich so abzuändern, dass diese außerhalb der Arbeitszeiten der Anwender erfolgen. - Prüfen Sie ob es Optimierungspotenzial laut den Best-Practice-Vorgaben in diesem Microsoft Artikel gibt.
- Hauptaugenmerk sollte dabei auf die Punkte im Absatz "Konfigurieren spezieller SQL Server-Einstellungen vor dem Bereitstellen von SharePoint Server" liegen.
- Hinsichtlich Punkt "Aufgrund potenzieller Leistungsprobleme bei der Verwaltung mehrerer SQL Instanzen wird empfohlen, eine einzelne Instanz von SQL Server pro bereitgestellten Datenbankserver zu verwenden.":
Die Anzahl der SQL-Instanzen am Datenbankserver muss einer oder zwei Instanzen entsprechen, jedoch keinesfalls mehr.
Bei Verwendung mehrerer SQL-Instanzen ist zu gewährleisten, dass die für ADVOKAT und SharePoint irrelevanten Instanzen der relevanten Instanz keine Ressourcen entziehen. - Hinsichtlich Konfiguration der TempDB-Datenbank(en) laut Absatz "Auslegung des Speichers für maximalen Durchsatz und optimale Verwaltbarkeit":
Diese Optimierung sorgt nur bei großen Umgebungen (50+ Arbeitsplätze oder 200 GB bis 4 TB Datenvolumen (mehr als 400.000 Dokumente)), siehe Kapitel Voraussetzungen für eine Verbesserung.
Bei kleineren Umgebungen sind Verbesserungen im messbaren Bereich, aber für die Anwender nicht spürbar. Weitere Optimierungen für TempDB-Datenbanken finden Sie in diesem Microsoft Artikel. - Hinsichtlich Größe der Inhaltsdatenbanken laut Absatz "Auslegung des Speichers für maximalen Durchsatz und optimale Verwaltbarkeit":
Microsoft empfiehlt eine maximale Größe von 200 GB pro Inhaltsdatenbank für eine optimale Performance.
Erfahrungsgemäß ist die bessere Performance aufgrund kleiner Inhaltsdatenbanken zwar messbar, aber für die ADVOKAT Anwender oft nicht spürbar.
Unsere Untersuchungen haben gezeigt, dass die spürbare Performance gleich ist, egal ob im Hintergrund eine Inhaltsdatenbank mit 200 GB, 400 GB oder 1TB verwendet wird.
Die Aufspaltung von einer großen auf mehrere kleine Inhaltsdatenbanken wie im Kapitel Microsoft SharePoint Dokumentbibliothek aufteilen beschrieben ist empfehlenswert, garantiert aber keine bessere Performance. - Weitere Optimierungsmaßnahmen sind in folgenden Microsoft Artikel beschrieben. Diese sind aber nur schwer bis gar nicht umzusetzen, da dafür grundlegende Änderungen an Hard- und Software erforderlich wären.
Erfahrungsgemäß lassen sich diese Änderungen nicht ohne hohen Zeit- und Kostenaufwand umsetzen. Es gibt auch keine Möglichkeit vorab zu prüfen ob diese wirklich für eine Verbesserung der Situation sorgen.
- Hauptaugenmerk sollte dabei auf die Punkte im Absatz "Konfigurieren spezieller SQL Server-Einstellungen vor dem Bereitstellen von SharePoint Server" liegen.
- Navigieren Sie in ADVOKAT zum Menüpunkt "System" > "Einstellungen" > Reiter "Dokumente" > Schaltfläche "Weitere Einstellungen" > Reiter "Verzeichnisse" > Schaltfläche "Einstellungen für Dokumentablage bearbeiten".
Suchen Sie im Bereich "Microsoft SharePoint Dokumentenmanagement" die Einstellung "Features". Fügen Sie folgenden Text ein: WebDavUpload;True;WebDavUploadBS;2048- Per Parameter WebDavUpload;True wird der Upload von Dateien nach Microsoft SharePoint beeinflusst. Es sorgt für eine Verbesserung zwischen 1 und 10% bei größeren Dateien, tendenziell ab 50 MB.
Der Parameter WebDavUpload;False entspricht einer Deaktivierung. Eine Performanceverbesserung für kleinere Dateien, tendenziell unter 50 MB lässt sich damit nicht erreichen. - Per Parameter WebDavUploadBS;<Wert> wird die Buffergröße für den Upload von Dateien nach Microsoft SharePoint beeinflusst.
Eine Änderung hat bei größeren Dateien tendenziell Geschwindigkeitsverbesserungen, bei kleineren Dateien Verschlechterungen.
Testen Sie das Verhalten bei folgenden Werten: 2048, 8192, 16384. Der Parameter WebDavUploadBS;4096 entspricht dem Standardverhalten/Standardwert.
- Per Parameter WebDavUpload;True wird der Upload von Dateien nach Microsoft SharePoint beeinflusst. Es sorgt für eine Verbesserung zwischen 1 und 10% bei größeren Dateien, tendenziell ab 50 MB.
- Helfen die vorigen Schritte nicht und man nimmt an, dass der Datenbankserver die Performanceprobleme verursacht, so müssen dieser Maschine weitere Ressourcen (CPU-Kerne und Arbeitsspeicher) zugewiesen werden.
Wird stattdessen der SharePointserver als Verursacher der Performanceprobleme vermutet und die vorigen Schritte helfen nicht, so müssen dieser Maschine weitere Ressourcen (CPU-Kerne und Arbeitsspeicher) zugewiesen werden.