Wichtiger Hinweis:
Die Pflege und Wartung von Datenbanken ist eine komplexe und sehr zeitintensive Aufgabe, die von Datenbankexperten durchgeführt werden sollte. DocuWare bietet seither einen begrenzten Support für die Wartung von Datenbanken an. Dieser Prozess erfordert ein tiefes technisches Verständnis der Datenbankstrukturen. Unsere Erfahrung hat gezeigt, dass die Pflege und Wartung der Datenbank nicht durchgeführt wurde, was in der Folge zu Performance-Problemen in den einzelnen DocuWare-Systemen führte. Die Defragmentierung von Indizes sowie die Pflege und Neuerstellung erforderlicher Indizes ist eine wesentliche und schwierige Aufgabe, die tiefgreifende Datenbankkenntnisse voraussetzt.
Die Datenbankpflege ist daher nicht Bestandteil unserer Support Services. Wenn Sie Support oder Hilfe von DocuWare benötigen, können wir dies nur als kostenpflichtiges Angebot anbieten. In diesem Fall empfehlen wir Ihnen, sich im Vorfeld eines solchen Projekts mit unserer Abteilung Professional Services in Verbindung zu setzen. Senden Sie dazu eine E-Mail an professional.services.emea@DocuWare.com oder professional.services.americas@DocuWare.com.
Dieser Artikel beschreibt, was Sie tun können, um die Performance der Datenbank zu verbessern und sie zu pflegen.
Zusätzlich zu den fundierten DocuWare-Datenbankkenntnissen haben wir die wichtigsten offiziellen Microsoft SQL Database MSDN (Microsoft Developer Network) Artikel zusammengestellt, die Ihnen den Einstieg in die korrekte Pflege einer MSSQL-Datenbank erleichtern.
Das Microsoft Developer Network ist die offizielle Wissensbasis von Microsoft.
Empfehlungen für bewährte Verfahren:
Trennen Sie Ihre Daten
Wir empfehlen, dass Sie den Speicherort für Ihren Datenbankserver nicht auf der Windows-Systempartition platzieren. Die Windows-Systempartition (in der Regel C:\) wird bereits für die Auslagerungsdatei und andere wichtige systemrelevante Prozesse genutzt und kann daher bereits eine gewisse Auslastung aufweisen.
Wir empfehlen stattdessen, Ihre Datenbanken in einer separaten Partition abzulegen. Idealerweise sind die DocuWare-Datenbanken räumlich von anderen Datenbanken getrennt. Das ist nicht nur empfehlenswert, um dem System die nötige Performance zu geben, sondern erleichtert auch die Fehlersuche im Ernstfall.
Folgende Partitionierung wird empfohlen:
eigene physische oder virtuelle Partition für
- Datenbanken (*.mdf-Dateien)
- Logs (*.ldf-Dateien)
- SQL Server Engine
Achten Sie darauf, dass die Partitionen nicht auf derselben physischen oder virtuellen Festplatte liegen
Pflegen Sie Ihre Indizes:
https://docs.microsoft.com/en-us/sql/relational-databases/indexes/reorganize-and-rebuild-indexes?view=sql-server-ver15
Fragmentierte Indizes können Ihr System und Ihre Arbeitsprozesse auf Dauer verlangsamen. Wir empfehlen Ihnen, diese Indizes monatlich zu pflegen, um die bestmögliche Leistung zu erzielen. Dies hängt von der Systemgröße und der Komplexität der verwendeten Indizes ab.
Indizes sollten sich nicht überschneiden und eindeutig sein.
https://docs.microsoft.com/en-us/sql/relational-databases/indexes/create-clustered-indexes?view=sql-server-ver15
https://docs.microsoft.com/en-us/sql/relational-databases/indexes/create-nonclustered-indexes?view=sql-server-ver15
Ein Datenbankindex ist eine von der Datenstruktur getrennte Indexstruktur in einer Datenbank, die die Suche und Sortierung nach bestimmten Feldern beschleunigt.
Ein Index besteht aus einer Sammlung von Zeigern (Referenzen), die eine Ordnungsbeziehung zu einer oder mehreren Spalten in einer Tabelle definieren. Wenn eine indizierte Spalte als Suchkriterium in einer Abfrage verwendet wird, sucht das Datenbankmanagementsystem (DBMS) anhand dieser Zeiger nach den gewünschten Datensätzen.
Ohne einen Index müsste die Spalte einzeln durchsucht werden, während bei einer Suche mit dem Index nur nach den Zeigern gesucht werden muss, auf die sie sich beziehen.
Bitte überprüfen Sie diese Indizes monatlich, um sicherzustellen, dass Sie keine Überschneidungen in Ihren Indizes haben, da dies die Leistung beeinträchtigen kann.
sys.dm_db_missing_index_details
https://docs.microsoft.com/en-us/sql/relational-databases/system-dynamic-management-views/sys-dm-db-missing-index-details-transact-sql?view=sql-server-ver15
Dieses Skript ist sehr wichtig und liefert Ihnen relevante Informationen über fehlende Indizes
Teilen Sie Ihre tempdb:
https://docs.microsoft.com/en-US/troubleshoot/sql/performance/recommendations-reduce-allocation-contention
Wenn die tempdb-Datenbank stark genutzt wird, kann es bei SQL Server zu Konflikten kommen, wenn er versucht, Seiten zuzuweisen. Je nach dem Grad des Konflikts kann dies dazu führen, dass Abfragen und Requests, die tempdb betreffen, kurzzeitig nicht beantwortet werden.
Das schlimmste Szenario wäre eine lang laufende Abfrage, die andere Prozesse blockiert.
Strukturieren Sie Ihre Archive vorher
Wir empfehlen, dass Sie Ihre Archive in einem Umfang aufbauen, der für Ihren MSSQL-Server geeignet ist.
Je mehr Spalten Sie haben, desto mehr Felder sind beteiligt. Je mehr Felder durchsucht werden, desto komplexer und größer werden die Datenbankabfragen auf Ihrem Server.
Es ist sinnvoller, zwei kleinere Archive statt eines großen zu haben, es sei denn, Ihr Datenbankserver ist dafür ausgelegt und verfügt über die entsprechende Leistung und Wartung.
Bitte überlegen Sie, die Anzahl der gesamten Indexfelder zu reduzieren. Je mehr Indexfelder Sie haben, desto komplexer werden die Abfragen und desto mehr wird Ihr SQL-Server belastet.
Kennen Sie Ihren Server:
Die 3 größten Auswirkungen auf die Leistung beschränken sich auf diese 3 Unterfaktoren:
Speicher (RAM)
CPU
IO-Subsystem (z.B. Festplatten)
Microsoft empfiehlt, dass eine Datenbank von ihrer Größe her mindestens 1 mal komplett in den RAM passt.
Der größte Teil einer DocuWare-Datenbank kann Volltext sein. Wenn dieser nicht vollständig genutzt wird, muss diese Faustregel nicht beachtet werden.
Auch die Workflow-Historie oder das Audit verbrauchen entsprechend Platz.
Wir empfehlen nicht, an der Hardware zu sparen. Die Erhöhung von RAM und CPU kann kurzfristig Probleme lösen und Ausfälle verhindern, die Ihre Arbeitsprozesse blockieren.
Wenn Sie eine hohe Last auf der CPU-Seite feststellen, überprüfen Sie bitte die aktuelle Auslastung und ob die Anzahl der Kerne für Ihre aktuell verwendete Größe und Architektur angemessen ist.
Verwenden Sie MSSQL Express Edition nicht für Produktivumgebungen, die unsere Systemempfehlungen überschreiten:
MSSQL Server Express Edition hat Einschränkungen, wenn es um die CPU- und RAM-Auslastung geht:
MSSQLServer 2016 Express + Andere Editionen
https://docs.microsoft.com/en-us/sql/sql-server/editions-and-components-of-sql-server-2016?view=sql-server-ver15
MSSQLServer 2017 Express + Andere Editionen
https://docs.microsoft.com/en-us/sql/sql-server/editions-and-components-of-sql-server-2017?view=sql-server-ver15
MSSQLServer 2019 Express + Andere Editionen
https://docs.microsoft.com/en-us/sql/sql-server/editions-and-components-of-sql-server-version-15?view=sql-server-ver15
Bitte lesen Sie auch die folgenden offiziellen MSDN-Artikel von Microsoft, die Ihnen helfen können, die Leistung Ihres Datenbankservers stabil zu halten
Erforderlich für die Verwendung von speicheroptimierten Tabellen und In-Memory OLTP und Speicheroptimierung
https://docs.microsoft.com/en-us/sql/relational-databases/in-memory-oltp/requirements-for-using-memory-optimized-tables?view=sql-server-ver15
https://docs.microsoft.com/en-us/sql/relational-databases/in-memory-oltp/in-memory-oltp-in-memory-optimization?view=sql-server-ver15
Optionen für die Konfiguration des Serverspeichers
https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/server-memory-server-configuration-options?view=sql-server-ver15
Überwachung der Speichernutzung
https://docs.microsoft.com/en-us/sql/relational-databases/performance-monitor/monitor-memory-usage?view=sql-server-ver15
Überlegungen zum SQL Server-Design
https://docs.microsoft.com/en-us/system-center/scom/plan-sqlserver-design?view=sc-om-2019&viewFallbackFrom=sc-om-1711
Überblick über die Datensicherung (SQL Server)
https://docs.microsoft.com/en-us/sql/relational-databases/backup-restore/backup-overview-sql-server?view=sql-server-ver15
KBA ist NUR für On-Premises Organisationen anwendbar.
Bitte beachten Sie: Dieser Artikel ist eine Übersetzung aus dem Englischen. Die in diesem Artikel enthaltenen Informationen basieren auf der/den englischsprachigen Originalversion(en) des Produkts. In der übersetzten Version unserer Artikel können kleinere Fehler enthalten sein, z.B. in der Grammatik. Wir können zwar nicht für die vollständige Richtigkeit der Übersetzung garantieren, aber in den meisten Fällen werden Sie sie als ausreichend informativ empfinden. Im Zweifelsfall wechseln Sie bitte zurück zur englischen Version dieses Artikels.
