Für DSM Umgebungen gibt es schon seit längerem ein kleines verstecktes Tool, dem durchaus mehr Beachtung geschenkt werden darf. Die Rede ist vom „Database Tuning Advisor“, der sich um die Pflege der DSM Datenbank kümmert, indem er nicht vorhandene Indizes anlegt, bzw. vorhandene neu erstellt, falls diese zu stark fragmentiert sind.
Seit DSM 7.2 hat es das Tool aus den DSM PowerToyZ direkt in das Produkt geschafft und befindet sich im Verzeichnis \\<server>\<dsm-share>\SSI\DSMDatabaseTuningAdvisor.
Über die Menüleiste lässt sich eine Verbindung zur DSM Datenbank aufbauen:
Falls die Windows Authentifizierung nicht funktioniert, muss hier ein SQL User angegeben werden. Nachdem die Verbindung zur Datenbank hergestellt wurde, werden alle Tabellen der Datenbank angezeigt, die durch den Tuning Advisor bearbeitet werden können.
Als erstes empfiehlt es sich, eine Analyse der Datenbank durchzuführen, um sich einen Überblick zu verschaffen.
Handlungsbedarf besteht bei allen Einträgen mit dem blauen Symbol. Es ist auch möglich, dass bei Einträgen ein rotes "X" zu sehen ist. Das kann passieren wenn zum Beispiel keine Lizenz für das Patch Management eingetragen ist. Diese Tabellen werden dann vom Tuning Advisor bei der Ausführung ignoriert.
Um die Optimierung zu starten, ist jetzt ein Klick auf „Generate & Apply all“ nötig.
Im unteren Bereich werden die durchzuführenden Aktionen aufgelistet. Teilweise ist es erforderlich, mehrmals den Button „Generate & Apply all“ anzuklicken, um alle anstehenden Aktionen auszuführen. Wenn alle Einträge einen grünen Haken haben und der untere Bereich wieder leer ist, ist die Datenbank optimiert. Hierbei gibt es jedoch etwas sehr Wichtiges zu beachten: Ein Index Rebuild ist nur bei SQL Server Enterprise problemlos möglich. Bei einem Standard Server sollte die Datenbank zuvor Offline genommen werden.
Der Tuning Advisor kann regelmäßig ausgeführt werden, um eine gleichbleibende Datenbank Performance zu gewährleisten. Dafür wurde mit DSM 2013.2 der Funktionsumfang erweitert, um die Optimierungen Kommandozeilen-gesteuert auszuführen. Dadurch lassen sich die Aktionen z.B. per Scheduled Tasks automatisiert ausführen. Den Connection-String kann man sich direkt aus der ICDB kopieren. Wichtig ist noch entsprechende Credentials mit anzugeben. Der Befehl kann dann wie folgt aussehen:
Mit Windows Authentifizierung:
DSMDatabaseTuningAdvisor.exe /Silent /ConnectionString:"Provider=SQLOLEDB.1;Network Library=DBMSSOCN;Initial Catalog=CMDB;Application Name=DSM;Data Source=dsmsrv01;integrated security=SSPI" /Apply
Mit SQL Authentifizierung:
DSMDatabaseTuningAdvisor.exe /Silent /ConnectionString:"Provider=SQLOLEDB.1;Network Library=DBMSSOCN;Initial Catalog=CMDB;Application Name=DSM;Data Source=dsmsrv01;user id=sa;password=StrengGeheim" /Apply