Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für:SQL Server
Dieser Artikel beschreibt, wie der Datenbankoptimierungsratgeber in SQL Server gestartet und verwendet wird. Informationen zum Anzeigen der Ergebnisse und Arbeiten mit den Ergebnissen nach dem Optimieren einer Datenbank finden Sie unter Anzeigen und Verwenden der Ausgabe des Datenbankoptimierungsratgebers.
Hinweis
Der Datenbankoptimierungsratgeber wird für Azure SQL-Datenbank oder Verwaltete Azure SQL-Instanz nicht unterstützt. Erwägen Sie stattdessen die in Überwachung und Leistungsoptimierung in Azure SQL-Datenbank und Azure SQL Managed Instance empfohlenen Strategien. Informationen zu Azure SQL-Datenbank finden Sie auch unter Database Advisor: Empfehlungen zur Leistung für Azure SQL-Datenbank.
Initialisieren des Datenbankoptimierungsratgebers
Bei der ersten Verwendung muss ein Benutzer, der Mitglied der festen Serverrolle sysadmin ist, den Datenbankoptimierungsratgeber starten. Das liegt daran, dass mehrere Systemtabellen in der Datenbank msdb erstellt werden müssen, um das Optimieren von Vorgängen zu unterstützen. Die Initialisierung ermöglicht darüber hinaus Benutzern, die Mitglieder der festen Datenbankrolle db_owner sind, Arbeitsauslastungen für Tabellen in Datenbanken zu optimieren, die sie besitzen.
Ein Benutzer mit Systemadministratorberechtigungen muss eine der folgenden Aktionen ausführen.
Verwenden Sie die grafische Benutzeroberfläche des Datenbankoptimierungsratgebers, um eine Verbindung mit einer SQL Server-Instanz herzustellen. Weitere Informationen finden Sie weiter unten in diesem Artikel unter Starten Sie den Datenbankoptimierungsratgeber.
Verwenden Sie das Hilfsprogramm dta , um die erste Arbeitsauslastung zu optimieren. Weitere Informationen hierzu finden Sie unter Verwenden des dta-Hilfsprogramms weiter unten in diesem Artikel.
Starten Sie den Datenbankoptimierungsratgeber.
Sie können die grafische Benutzeroberfläche (GUI, Graphical User Interface) des Datenbankoptimierungsratgebers auf verschiedene Arten starten, um in einer Reihe von Szenarien das Optimieren von Datenbanken zu unterstützen. Zu den unterschiedlichen Startmöglichkeiten des Datenbankoptimierungsratgebers gehören Folgende: über das Menü Start, über das Menü Tools in SQL Server Management Studio, über den Abfrage-Editor in SQL Server Management Studio und über das Menü Tools in SQL Server-Profil. Wenn Sie den Datenbankoptimierungsratgeber zum ersten Mal starten, wird das Dialogfeld Verbindung mit Server herstellen angezeigt, in dem Sie die Instanz von SQL Server angeben können, zu der Sie eine Verbindung herstellen möchten.
Warnung
Starten Sie den Datenbankoptimierungsratgeber nicht, wenn SQL Server im Einzelbenutzermodus ausgeführt wird. Wenn Sie versuchen ihn zu starten, während der Server im Einzelbenutzermodus ausgeführt wird, wird ein Fehler zurückgegeben und der Datenbankoptimierungsratgeber wird nicht gestartet. Weitere Informationen zum Einzelbenutzermodus finden Sie unter Starten von SQL Server im Einzelbenutzermodus.
So starten Sie den Datenbankoptimierungsratgeber aus dem Windows-Startmenü
- Zeigen Sie im Menü Start nacheinander auf Alle Programme, Microsoft SQL Server und Leistungstools, und klicken Sie dann auf Datenbankoptimierungsratgeber.
So starten Sie den Datenbankoptimierungsratgeber in SQL Server Management Studio
- Wählen Sie in SQL Server Management Studio im Menü Tools den Datenbankoptimierungsratgeber aus.
So starten Sie den Datenbankoptimierungsratgeber über den Abfrage-Editor von SQL Server Management Studio
Öffnen Sie eine Transact-SQL-Skriptdatei in SQL Server Management Studio. Weitere Informationen finden Sie unter Abfrage- und Text-Editoren (SQL Server Management Studio).
Wählen Sie im Transact-SQL-Skript eine Abfrage aus, oder wählen Sie das gesamte Skript aus, klicken Sie mit der rechten Maustaste auf die Auswahl, und wählen Sie Abfrage mit dem Datenbankoptimierungsratgeber analysieren. Die grafische Benutzeroberfläche des Datenbankoptimierungsratgebers wird geöffnet, und das Skript wird als Arbeitsauslastung in Form einer XML-Datei importiert. Sie können einen Namen für die Sitzung und Optimierungsoptionen angeben, um die ausgewählten Transact-SQL-Abfragen als Arbeitsauslastung zu optimieren.
So starten Sie den Datenbankoptimierungsratgeber in SQL Server Profiler
- Klicken Sie in SQL Server Profiler im Menü Extras auf Datenbankoptimierungsratgeber.
Workload erstellen
Die Arbeitsauslastung besteht aus einer Reihe von Transact-SQL-Anweisungen, die für eine oder mehrere Datenbanken ausgeführt werden, die Sie optimieren möchten. Der Datenbankoptimierungsratgeber analysiert diese Arbeitsauslastungen, um Indizes oder Partitionsstrategien zu empfehlen, die die Abfrageleistung Ihres Servers verbessern.
Sie können mit einer der folgenden Methoden eine neue Workload erstellen.
Verwenden Sie den Abfragespeicher als Arbeitsauslastung. Dadurch können Sie die manuelle Erstellung einer Auslastung vermeiden. Weitere Informationen finden Sie unter Optimieren von Datenbanken mithilfe einer Arbeitsauslastung aus dem Abfragespeicher.
Gilt für: SQL Server 2016 (13.x) und höher. Verwenden Sie den Plan-Cache als Arbeitslast. Dadurch können Sie die manuelle Erstellung einer Auslastung vermeiden. Weitere Informationen finden Sie weiter unten in diesem Artikel unter Optimieren einer Datenbank.
Verwenden Sie den Abfrage-Editor in SQL Server Management Studio oder einen bevorzugten Text-Editor, um Transact-SQL-Skriptarbeitsauslastungen manuell zu erstellen.
Verwenden von SQL Server Profiler zum Erstellen von Arbeitsauslastungen für Ablaufverfolgungsdateien oder Ablaufverfolgungstabellen
Hinweis
Wenn als Arbeitsauslastung eine Ablaufverfolgungstabelle verwendet wird, muss diese Tabelle auf dem Server vorhanden sein, auf dem die Optimierung durch den Datenbankoptimierungsratgeber vorgenommen wird. Wenn Sie die Tracetabelle auf einem anderen Server erstellen, verschieben Sie sie anschließend auf den Server, auf dem Datenbankoptimierungsratgeber die Optimierung durchführt.
Arbeitsauslastungen können ebenfalls in eine XML-Eingabedatei eingebettet werden, in der Sie auch für jedes Ereignis eine Gewichtung angeben können. Weitere Informationen zum Angeben eingebetteter Arbeitsauslastungen finden Sie weiter unten in diesem Artikel unter Erstellen einer XML-Eingabedatei.
So erstellen Sie Transact-SQL-Skriptarbeitsauslastungen
Starten Sie den Abfrage-Editor in SQL Server Management Studio. Weitere Informationen finden Sie unter Abfrage- und Text-Editoren (SQL Server Management Studio).
Geben Sie Ihr Transact-SQL-Skript in den Abfrage-Editor ein. Dieses Skript sollte eine Reihe von Transact-SQL-Anweisungen enthalten, die für die Datenbank oder Datenbanken ausgeführt werden, die Sie optimieren möchten.
Speichern Sie die Datei mit der Erweiterung SQL. Die grafische Benutzeroberfläche des Datenbankoptimierungsratgebers und das Befehlszeilenprogramm dta können dieses Transact-SQL-Skript als Workload verwenden.
So erstellen Sie Arbeitsauslastungen für Ablaufverfolgungsdateien und -tabellen
Starten Sie SQL Server Profiler mithilfe einer der folgenden Methoden:
Zeigen Sie im Menü Start nacheinander auf Alle Programme, Microsoft SQL Server und Leistungstools, und klicken Sie dann auf SQL Server Profiler.
Klicken Sie in SQL Server Management Studio auf das Menü Tools und wählen Sie dann SQL Server Profiler.
Erstellen Sie wie in den folgenden Verfahren beschrieben eine Ablaufverfolgungsdatei oder -tabelle unter Verwendung der SQL Server Profiler-Vorlage Tuning:
Ablaufverfolgungsergebnisse in einer Datei speichern (SQL Server Profiler)
Der Datenbankoptimierungsratgeber setzt voraus, dass die Ablaufverfolgungsdatei für die Arbeitsauslastung eine Rolloverdatei ist. Weitere Informationen zu Rolloverdateien finden Sie unter Limit Trace File and Table Sizes.
Speichern von Ablaufverfolgungsergebnissen in einer Tabelle (SQL Server Profiler)
Stellen Sie sicher, dass die Ablaufverfolgung beendet wurde, bevor Sie eine Ablaufverfolgungstabelle als Arbeitsauslastung verwenden.
Die Verwendung der Optimierungsvorlage von SQL Server Profiler wird zum Aufzeichnen von Arbeitsauslastungen für den Datenbankoptimierungsratgeber empfohlen.
Wenn Sie Ihre eigene Vorlage verwenden möchten, stellen Sie sicher, dass die folgenden Ablaufverfolgungsereignisse aufgezeichnet werden:
RPC:Completed
SQL:BatchCompleted
SP:StmtCompleted
Sie können auch die Starting-Versionen dieser Ablaufverfolgungsereignisse verwenden. Zum Beispiel SQL:BatchStarting. Jedoch beinhalten die Completed-Versionen dieser Ablaufverfolgungsereignisse die Spalte Duration, die dem Datenbankoptimierungsratgeber ermöglichen, die Arbeitsauslastung effizienter zu optimieren. Der Datenbankoptimierungsratgeber optimiert keine anderen Typen von Ablaufverfolgungsereignissen. Weitere Informationen zu diesen Ablaufverfolgungsereignissen finden Sie unter Ereigniskategorie für gespeicherte Prozeduren und TSQL-Ereigniskategorie. Informationen zum Verwenden der gespeicherten Prozeduren von SQL Trace zum Erstellen einer Workload für eine Ablaufverfolgungsdatei finden Sie unter Erstellen einer Ablaufverfolgung (Transact-SQL).
Tracedatei- oder Tracetabelle-Workloads, die die Datenspalte „loginname“ enthalten
Datenbankoptimierungsratgeber übermittelt im Rahmen des Optimierungsprozesses Showplan-Anforderungen. Wenn eine Ablaufverfolgungstabelle oder -datei, die die Datenspalte LoginName enthält, als Arbeitsauslastung verbraucht wird, nimmt der Datenbankoptimierungsratgeber die Identität des in LoginName angegebenen Benutzerkontos an. Wenn dieses Benutzerkonto keine SHOWPLAN-Berechtigung besitzt (über die es für die in der Ablaufverfolgung enthaltenen Anweisungen Showplans erstellen und ausführen kann), werden diese Anweisungen nicht durch den Datenbankoptimierungsratgeber optimiert.
So vermeiden Sie, allen der in der LoginName-Spalte der Ablaufverfolgung angegebenen Benutzenden die SHOWPLAN-Berechtigung zuweisen zu müssen
Optimieren Sie eine Arbeitsauslastung für Ablaufverfolgungsdateien oder Ablaufverfolgungstabellen. Weitere Informationen finden Sie weiter unten in diesem Artikel unter Optimieren einer Datenbank.
Überprüfen Sie das Optimierungsprotokoll auf Anweisungen, die aufgrund von unzureichenden Berechtigungen nicht optimiert wurden. Weitere Informationen finden Sie unter Anzeigen und Verwenden der Ausgabe des Datenbankoptimierungsratgebers.
Erstellen Sie eine neue Arbeitsauslastung, indem Sie die Spalte LoginName der nicht optimierten Ereignisse löschen und anschließend nur die nicht optimierten Ereignisse in einer neuen Ablaufverfolgungsdatei oder -tabelle speichern. Weitere Informationen zum Löschen von Datenspalten aus einer Ablaufverfolgung finden Sie unter Angeben von Ereignissen und Datenspalten für eine Ablaufverfolgungsdatei (SQL Server Profiler) und Ändern einer vorhandenen Ablaufverfolgung (Transact-SQL).
Senden Sie den neuen Workload ohne die LoginName-Spalte erneut an den Datenbankoptimierungsratgeber.
Der Datenbankoptimierungsratgeber optimiert nun die neue Arbeitsauslastung, da in der Ablaufverfolgung keine Anmeldeinformationen angegeben sind. Wenn LoginName für eine Anweisung nicht vorhanden ist, optimiert der Datenbankoptimierungsratgeber diese Anweisung, indem er die Identität des Benutzers annimmt, der die Optimierungssitzung gestartet hat (ein Mitglied der festen Serverrolle sysadmin oder der festen Datenbankrolle db_owner).
Optimieren einer Datenbank
Optimieren Sie eine Datenbank mithilfe der GUI des Datenbankoptimierungsratgebers oder des Hilfsprogramms dta .
Hinweis
Stellen Sie sicher, dass die Ablaufverfolgung beendet wurde, bevor Sie eine Ablaufverfolgungstabelle als Arbeitsauslastung für den Datenbankoptimierungsratgeber verwenden. Der Datenbankoptimierungsratgeber kann keine Ablaufverfolgungstabelle als Arbeitsauslastung verwenden, in die noch Ablaufverfolgungsereignisse geschrieben werden.
Verwenden der grafischen Benutzeroberfläche des Datenbankoptimierungsratgebers
Auf der grafischen Benutzeroberfläche des Datenbankoptimierungsratgebers können Sie eine Datenbank mithilfe des Plancache oder mithilfe von Arbeitsauslastungsdateien oder -tabellen optimieren Mit der grafischen Benutzeroberfläche des Datenbankoptimierungsratgebers können Sie die Ergebnisse Ihrer aktuellen Optimierungssitzung und die Ergebnisse voriger Optimierungssitzungen mühelos anzeigen. Weitere Informationen zu den Benutzeroberflächenoptionen finden Sie weiter unten in diesem Artikel unter Beschreibungen der Benutzeroberfläche. Weitere Informationen zum Verwenden der Ergebnisse nach dem Optimieren einer Datenbank finden Sie unter Anzeigen und Verwenden der Ausgabe des Datenbankoptimierungsratgebers.
Um eine Datenbank mithilfe des Abfragespeichers zu optimieren
Weitere Informationen finden Sie unter Optimieren von Datenbanken mithilfe der Arbeitsauslastung aus dem Abfragespeicher.
Optimieren einer Datenbank mithilfe des Plancaches
Starten Sie den Datenbankoptimierungsratgeber, und melden Sie sich bei einer Instanz von SQL Server an. Weitere Informationen finden Sie weiter oben in diesem Artikel unter Starten Sie den Datenbankoptimierungsratgeber.
Geben Sie auf der Registerkarte Allgemein einen Namen in Sitzungsname ein, um eine neue Optimierungssitzung zu erstellen. Bevor Sie eine Optimierungssitzung starten können, müssen Sie die Felder auf der Registerkarte Allgemein konfigurieren. Eine Änderung der Einstellungen auf der Registerkarte Optimierungsoptionen ist vor dem Starten einer Optimierungssitzung nicht erforderlich.
Wählen Sie Plan Cache als Workload-Option aus. Datenbankoptimierungsratgeber wählt die 1.000 wichtigsten Ereignisse aus dem Plancache für die Analyse aus.
Wählen Sie die zu optimierenden Datenbanken aus, und wählen Sie optional unter Ausgewählte Tabelleneine oder mehrere Tabellen aus jeder Datenbank aus. Klicken Sie zum Einschließen von Cacheeinträgen für alle Datenbanken unter Optimierungsoptionen auf Erweiterte Optionen, und aktivieren Sie die Option Plancacheereignisse aus allen Datenbanken einschließen.
Aktivieren Sie die Option Optimierungsprotokoll speichern , um eine Kopie des Optimierungsprotokolls zu speichern. Deaktivieren Sie das Kontrollkästchen, wenn Sie keine Kopie des Optimierungsprotokolls speichern möchten.
Nach der Analyse können Sie das Optimierungsprotokoll anzeigen, indem Sie die Sitzung öffnen und die Registerkarte Status auswählen.
Klicken Sie auf die Registerkarte Optimierungsoptionen , und wählen Sie eine der aufgeführten Optionen aus.
Klicken Sie auf Analyse starten.
Wenn Sie die Optimierungssitzung nach dem Start anhalten möchten, wählen Sie eine der folgenden Optionen aus dem Menü Aktionen aus:
Analyse beenden (mit Empfehlungen) beendet die Optimierungssitzung und fragt, ob Sie möchten, dass der Datenbankoptimierungsratgeber auf der Basis der bisher ausgeführten Analyse Empfehlungen generiert.
Analyse beenden beendet die Optimierungssitzung ohne Erstellung von Empfehlungen.
Hinweis
Das Anhalten von Datenbankoptimierungsratgeber wird nicht unterstützt. Wenn Sie auf die Symbolleistenschaltfläche Analyse starten klicken, nachdem Sie auf eine der beiden Symbolleistenschaltflächen Analyse beenden oder Analyse beenden (mit Empfehlungen) geklickt haben, startet der Datenbankoptimierungsratgeber eine neue Optimierungssitzung.
So optimieren Sie eine Datenbank mithilfe einer Arbeitsauslastungsdatei oder -tabelle als Eingabe
Legen Sie die Datenbankfunktionen (Indizes, indizierte Sichten, Partitionierung) fest, die während der Analyse vom Datenbankoptimierungsratgeber hinzugefügt, entfernt oder beibehalten werden sollen.
Erstellen Sie einen Workload. Weitere Informationen finden Sie weiter oben in diesem Artikel unter Erstellen einer Arbeitsauslastung.
Starten Sie den Datenbankoptimierungsratgeber, und melden Sie sich bei einer Instanz von Microsoft SQL Server an. Weitere Informationen finden Sie weiter oben in diesem Artikel unter Starten Sie den Datenbankoptimierungsratgeber.
Geben Sie auf der Registerkarte Allgemein einen Namen in Sitzungsname ein, um eine neue Optimierungssitzung zu erstellen.
Wählen Sie entweder eine Arbeitsauslastungsdatei oder eine Tabelle aus, und geben Sie den Dateipfad bzw. den Namen der Tabelle in das daneben stehende Textfeld ein.
Das Format für die Angabe einer Tabelle lautet wie folgt:
database_name.schema_name.table_nameKlicken Sie auf Durchsuchen, um nach einer Arbeitsauslastungsdatei oder -tabelle zu suchen. Der Datenbankoptimierungsratgeber geht davon aus, dass es sich bei allen Arbeitsauslastungsdateien um Rolloverdateien handelt. Weitere Informationen zu Rolloverdateien finden Sie unter Limit Trace File and Table Sizes.
Wenn Sie eine Ablaufverfolgungstabelle als Arbeitsauslastung verwenden, muss die betreffende Tabelle auf dem Server vorhanden sein, der mit dem Datenbankoptimierungsratgeber optimiert wird. Wenn Sie die Ablaufverfolgungstabelle auf einem anderen Server erstellen, verschieben Sie sie auf den Server, der mit dem Datenbankoptimierungsratgeber optimiert wird, bevor Sie sie als Arbeitsauslastung verwenden.
Wählen Sie die Datenbanken und Tabellen aus, mit denen Sie die in Schritt 5 ausgewählte Arbeitsauslastung ausführen möchten. Klicken Sie zum Auswählen der Tabellen auf den Pfeil Ausgewählte Tabellen.
Aktivieren Sie die Option Optimierungsprotokoll speichern , um eine Kopie des Optimierungsprotokolls zu speichern. Deaktivieren Sie das Kontrollkästchen, wenn Sie keine Kopie des Optimierungsprotokolls speichern möchten.
Nach der Analyse können Sie das Optimierungsprotokoll anzeigen, indem Sie die Sitzung öffnen und die Registerkarte Status auswählen.
Klicken Sie auf die Registerkarte Optimierungsoptionen , und wählen Sie eine der aufgeführten Optionen aus.
Klicken Sie auf der Symbolleiste auf Analyse starten .
Wenn Sie die Optimierungssitzung nach dem Start anhalten möchten, wählen Sie eine der folgenden Optionen aus dem Menü Aktionen aus:
Analyse beenden (mit Empfehlungen) beendet die Optimierungssitzung und fragt, ob Sie möchten, dass der Datenbankoptimierungsratgeber auf der Basis der bisher ausgeführten Analyse Empfehlungen generiert.
Analyse beenden beendet die Optimierungssitzung ohne Erstellung von Empfehlungen.
Hinweis
Das Anhalten von Datenbankoptimierungsratgeber wird nicht unterstützt. Wenn Sie auf die Symbolleistenschaltfläche Analyse starten klicken, nachdem Sie auf eine der beiden Symbolleistenschaltflächen Analyse beenden oder Analyse beenden (mit Empfehlungen) geklickt haben, startet der Datenbankoptimierungsratgeber eine neue Optimierungssitzung.
Verwenden Sie das Dienstprogramm dta.
Das Hilfsprogramm dta stellt eine ausführbare Datei für Eingabeaufforderungen zur Verfügung, mit der Datenbanken optimiert werden können. Sie können die Funktionalität des Datenbankoptimierungsratgebers in Batchdateien und Skripten verwenden. Das Hilfsprogramm dta verwendet Einträge im Plancache, Ablaufverfolgungsdateien, Ablaufverfolgungstabellen und Transact-SQL-Skripte als Workloads. Außerdem akzeptiert es XML-Eingaben, die dem XML-Schema des Datenbankoptimierungsratgebers entsprechen. Dieses Schema steht auf dieser Microsoft-Websitezur Verfügung.
Beachten Sie Folgendes, bevor Sie eine Arbeitsauslastung mit dem Hilfsprogramm dta optimieren:
Wenn Sie eine Ablaufverfolgungstabelle als Arbeitsauslastung verwenden, muss die betreffende Tabelle auf dem Server vorhanden sein, der mit dem Datenbankoptimierungsratgeber optimiert wird. Wenn Sie die Nachverfolgungstabelle auf einem anderen Server erstellen, verschieben Sie sie anschließend auf den Server, den der Datenbankoptimierungsratgeber optimiert.
Stellen Sie sicher, dass die Ablaufverfolgung beendet wurde, bevor Sie eine Ablaufverfolgungstabelle als Arbeitsauslastung für den Datenbankoptimierungsratgeber verwenden. Der Datenbankoptimierungsratgeber kann keine Ablaufverfolgungstabelle als Arbeitsauslastung verwenden, in die noch Ablaufverfolgungsereignisse geschrieben werden.
Wenn eine Optimierungssitzung länger als erwartet ausgeführt wird, können Sie die Sitzung durch Drücken der Tastenkombination STRG+C beenden und auf der Grundlage der bis zu diesem Zeitpunkt von dta abgeschlossenen Analyse Empfehlungen generieren. Daraufhin werden Sie aufgefordert zu entscheiden, ob Sie Empfehlungen generieren möchten. Drücken Sie erneut STRG+C, um die Optimierungssitzung zu beenden, ohne Empfehlungen zu generieren.
Weitere Informationen zur Syntax des Hilfsprogramms dta sowie Beispiele finden Sie unter dta (Hilfsprogramm).
Optimieren einer Datenbank mithilfe des Plancaches
Geben Sie die Option -ip an. Die obersten 1.000 Plancacheereignisse für die ausgewählten Datenbanken werden analysiert.
Geben Sie an einer Eingabeaufforderung folgenden Befehl ein:
dta -E -D DatabaseName -ip -s SessionNameGeben Sie zum Ändern der Anzahl der für die Analyse zu verwendenden Ereignisse die Option –n an. Im folgenden Beispiel wird die Anzahl der Cacheeinträge auf 2.000 erhöht.
dta -E -D DatabaseName -ip -n 2000-s SessionName1Geben Sie zum Analysieren der Ereignisse aller Datenbanken in der Instanz die Option -ipf an.
dta -E -D DatabaseName -ip -ipf -n 2000 -s SessionName2
So optimieren Sie eine Datenbank mithilfe einer Arbeitsauslastung und den Standardeinstellungen des Hilfsprogramms dta
Legen Sie die Datenbankfunktionen (Indizes, indizierte Sichten, Partitionierung) fest, die während der Analyse vom Datenbankoptimierungsratgeber hinzugefügt, entfernt oder beibehalten werden sollen.
Erstellen Sie einen Workload. Weitere Informationen finden Sie weiter oben in diesem Artikel unter Erstellen einer Arbeitsauslastung.
Geben Sie an einer Eingabeaufforderung folgenden Befehl ein:
dta -E -D DatabaseName -if WorkloadFile -s SessionNameDabei gibt
-Ean, dass die Optimierungssitzung eine vertrauenswürdige Verbindung (anstelle von Benutzernamen und Kennwort) verwendet. Und-Dgibt den Namen der zu optimierenden Datenbank an. Standardmäßig stellt das Hilfsprogramm eine Verbindung zur Standardinstanz von SQL Server auf dem lokalen Computer her. (Verwenden Sie die Option-S, um eine Remotedatenbank laut dem folgenden Verfahren oder eine benannte Instanz anzugeben.) Die Option-ifgibt den Namen und Pfad zu einer Arbeitsauslastungsdatei an (wobei es sich um ein Transact-SQL-Skript oder um eine Ablaufverfolgungsdatei handeln kann), während-seinen Namen für die Optimierungssitzung angibt.Die vier hier gezeigten Optionen (Datenbankname, Arbeitsauslastung, Verbindungstyp und Sitzungsname) müssen angegeben werden.
Eine Remote-Datenbank oder eine benannte Instanz für einen bestimmten Zeitraum optimieren
Legen Sie die Datenbankfunktionen (Indizes, indizierte Sichten, Partitionierung) fest, die während der Analyse vom Datenbankoptimierungsratgeber hinzugefügt, entfernt oder beibehalten werden sollen.
Erstellen Sie einen Workload. Weitere Informationen finden Sie weiter oben in diesem Artikel unter Erstellen einer Arbeitsauslastung.
Geben Sie an einer Eingabeaufforderung folgenden Befehl ein:
dta -S ServerName\Instance -D DatabaseName -it WorkloadTableName -U LoginID -P Password -s SessionName -A TuningTimeInMinutesDabei gibt
-Sden Namen und die Instanz eines Remoteservers an (oder eine benannte Instanz auf dem lokalen Server), während-Dden Namen der zu optimierenden Datenbank angibt. Die Option-itgibt den Namen der Arbeitsauslastungstabelle an,-Uund-Pgeben den Benutzernamen und das Kennwort für die Remotedatenbank an,-sgibt den Namen der Optimierungssitzung an, und-Agibt die Dauer der Optimierungssitzung in Minuten an. Standardmäßig verwendet das Hilfsprogramm dta eine Optimierungsdauer von 8 Stunden. Wenn der Datenbankoptimierungsratgeber eine Arbeitsauslastung für einen unbegrenzten Zeitraum optimieren soll, geben Sie 0 (Null) mit der Option-Aan.
So optimieren Sie eine Datenbank mithilfe einer XML-Eingabedatei
Legen Sie die Datenbankfunktionen (Indizes, indizierte Sichten, Partitionierung) fest, die während der Analyse vom Datenbankoptimierungsratgeber hinzugefügt, entfernt oder beibehalten werden sollen.
Erstellen Sie eine Arbeitslast. Weitere Informationen finden Sie weiter oben in diesem Artikel unter Erstellen einer Arbeitsauslastung.
Erstellen Sie eine XML-Eingabedatei. Weitere Informationen finden Sie weiter unten in diesem Artikel unter Erstellen einer XML-Eingabedatei.
Geben Sie an einer Eingabeaufforderung folgenden Befehl ein:
dta -E -S ServerName\Instance -s SessionName -ix PathToXMLInputFileDabei gibt
-Eeine vertrauenswürdige Verbindung an,-Sgibt einen Remoteserver und eine Instanz an bzw. eine benannte Instanz auf dem lokalen Server,-sgibt den Namen einer Optimierungssitzung an, und-ixgibt die XML-Eingabedatei an, die für diese Optimierungssitzung verwendet werden soll.Wenn das Hilfsprogramm die Optimierung der Arbeitsauslastung abgeschlossen hat, können Sie die Ergebnisse von Optimierungssitzungen über die grafische Benutzeroberfläche des Datenbankoptimierungsratgebers anzeigen. Alternativ können Sie über die Option -ox auch angeben, dass die Optimierungsempfehlungen in eine XML-Datei geschrieben werden sollen. Weitere Informationen finden Sie unter dta (Hilfsprogramm).
Erstellen einer XML-Eingabedatei
Wenn Sie mit der XML-Entwicklung bereits gut vertraut sind, können Sie XML-Formatdateien erstellen, mit denen der Datenbank-Engine-Optimierungsratgeber Arbeitsauslastungen optimieren kann. Um diese XML-Dateien zu erstellen, verwenden Sie Ihre bevorzugten XML-Tools, und bearbeiten Sie eine Beispieldatei, oder generieren Sie eine Instanz des XML-Schemas für den Datenbank-Engine-Optimierungsratgeber.
Das XML-Schema für den Datenbank-Engine-Optimierungsratgeber ist in Ihrer Installation von Microsoft SQL Server an folgendem Speicherort verfügbar:
C:\Program Files\Microsoft SQL Server\100\Tools\Binn\schemas\sqlserver\2004\07\dta\dtaschema.xsd
Das XML-Schema des Datenbankoptimierungsratgebers ist auch online auf dieser Microsoft-Websiteverfügbar.
Diese URL öffnet eine Seite, auf der viele SQL Server-XML-Schemas verfügbar sind. Scrollen Sie auf der Seite nach unten, bis Sie die Zeile für Datenbankoptimierungsratgeber erreichen.
So erstellen Sie eine XML-Eingabedatei zum Optimieren von Arbeitsauslastungen
Erstellen Sie einen Workload. Sie können eine Ablaufverfolgungsdatei oder -tabelle mithilfe der SQL Server Profiler-Optimierungsvorlage in verwenden, oder erstellen Sie ein Transact-SQL-Skript, das eine repräsentative Arbeitsauslastung für SQL Server reproduziert. Weitere Informationen finden Sie weiter oben in diesem Artikel unter Erstellen einer Arbeitsauslastung.
Erstellen Sie mithilfe einer der folgenden Methoden eine XML-Eingabedatei:
Kopieren Sie eines der Beispiele für XML-Eingabedateien (DTA), und fügen Sie es in Ihren bevorzugten XML-Editor ein. Ändern Sie die Werte, um die entsprechenden Argumente für Ihre SQL Server-Installation anzugeben, und speichern Sie die XML-Datei.
Generieren Sie mithilfe Ihres bevorzugten XML-Tools eine Instanz vom XML-Schema für den Datenbank-Engine-Optimierungsratgeber.
Nachdem Sie die XML-Eingabedatei erstellt haben, verwenden Sie diese als Eingabe für das Befehlszeilen-Hilfsprogramm dta , um die Arbeitsauslastung zu optimieren. Informationen zum Verwenden von XML-Eingabedateien mit diesem Hilfsprogramm finden Sie weiter oben in diesem Artikel unter Verwenden des dta-Hilfsprogramms.
Hinweis
Wenn Sie eine Inlinearbeitsauslastung verwenden möchten (d.h. eine Arbeitsauslastung, die direkt in der XML-Eingabedatei angegeben wird), verwenden Sie das Beispiel für eine XML-Eingabedatei mit Inlinearbeitsauslastung (DTA).
Beschreibungen der Benutzeroberfläche
Extras (Menü)/Optionen (Seite)
Mit diesem Dialogfeld können Sie allgemeine Konfigurationsparameter für den Datenbankoptimierungsratgeber angeben.
Beim Starten
Gibt an, welche Aktion der Datenbankoptimierungsratgeber beim Starten ausführen soll: ohne Datenbankverbindung öffnen, ein Dialogfeld Neue Verbindung anzeigen, eine neue Sitzung anzeigen oder die zuletzt geladene Sitzung laden.
Schriftart ändern
Gibt die Anzeigeschriftart für die Tabellen des Datenbankoptimierungsratgeber an.
Anzahl der Elemente in der Liste zuletzt verwendeter Objekte
Gibt die Anzahl der Sitzungen oder Dateien an, die im Menü Datei unter Zuletzt geöffnete Sitzungen oder Zuletzt geöffnete Dateien angezeigt werden sollen.
Die letzten Optimierungsoptionen speichern
Optimierungsoptionen zwischen den Sitzungen beibehalten. Standardmäßig ausgewählt. Deaktivieren Sie dieses Kontrollkästchen, wenn beim Start immer die Standardeinstellungen des Datenbankoptimierungsratgebers verwendet werden sollen.
Vor dem dauerhaften Löschen von Sitzungen nachfragen
Zeigt vor dem Löschen von Sitzungen ein Bestätigungsdialogfeld an.
Vor dem Beenden der Sitzungsanalyse fragen
Zeigt vor dem Beenden der Analyse einer Arbeitsauslastung ein Bestätigungsdialogfeld an.
Optionen der Registerkarte Allgemein
Bevor Sie eine Optimierungssitzung starten können, müssen Sie die Felder auf der Registerkarte Allgemein konfigurieren. Eine Änderung der Einstellungen auf der Registerkarte Optimierungsoptionen ist vor dem Starten einer Optimierungssitzung nicht erforderlich.
Sitzungsname
Geben Sie einen Namen für die Sitzung an. Der Sitzungsname verknüpft einen Namen mit einer Optimierungssitzung. Anhand dieses Namens können Sie die Optimierungssitzung später überprüfen.
Datei
Geben Sie ein .sql-Skript oder eine Ablaufverfolgungsdatei für eine Auslastung an. Geben Sie Pfad und Dateinamen im zugehörigen Textfeld an. Der Datenbankoptimierungsratgeber setzt voraus, dass die Ablaufverfolgungsdatei für die Arbeitsauslastung eine Rolloverdatei ist. Weitere Informationen zu Rolloverdateien finden Sie unter Limit Trace File and Table Sizes.
Tabelle
Geben Sie eine Ablaufverfolgungstabelle für die Arbeitsauslastung an. Geben Sie den vollqualifizierten Namen der Trace-Tabelle folgendermaßen in das zugehörige Textfeld ein:
database_name.owner_name.table_name
Stellen Sie sicher, dass die Ablaufverfolgung beendet wurde, bevor Sie eine Ablaufverfolgungstabelle als Arbeitsauslastung verwenden.
Die Ablaufverfolgungstabelle muss auf demselben Server vorhanden sein, auf dem der Datenbankoptimierungsratgeber die Optimierung ausführt. Wenn Sie die Nachverfolgungstabelle auf einem anderen Server erstellen, verschieben Sie sie anschließend auf den Server, den der Datenbankoptimierungsratgeber optimiert.
Plancache
Legen Sie den Plan-Cache als Workload fest. Dadurch können Sie die manuelle Erstellung einer Auslastung vermeiden. Der Datenbankoptimierungsratgeber wählt die obersten 1.000 Ereignisse aus, die für die Analyse verwendet werden sollen.
Xml
Dies wird nur angezeigt, wenn Sie eine Workloadabfrage aus SQL Server Management Studio importieren.
So importieren Sie eine Workloadabfrage aus SQL Server Management Studio:
Geben Sie eine Abfrage in den Abfrage-Editor ein, und markieren Sie sie.
Klicken Sie mit der rechten Maustaste auf die markierte Abfrage, und wählen Sie Abfrage mit dem Datenbankoptimierungsratgeber analysieren aus.
Nach einer Arbeitsauslastung suchen [Datei oder Tabelle]
Wenn Sie als Arbeitsauslastungsquelle Datei oder Tabelle ausgewählt haben, können Sie mithilfe dieser Schaltfläche zum Durchsuchen das gewünschte Ziel auswählen.
Vorschau auf die XML-Workload anzeigen
Zeigt eine aus SQL Server Management Studio importierte, XML-formatierte Arbeitsauslastung an.
Datenbank für Arbeitsauslastungsanalyse
Geben Sie die erste Datenbank an, mit der der Datenbankoptimierungsratgeber beim Optimieren einer Arbeitsauslastung eine Verbindung herstellt. Nach dem Beginn der Optimierung stellt der Datenbankoptimierungsratgeber Verbindungen mit den Datenbanken her, die über die USE DATABASE-Anweisungen in der Arbeitsauslastung angegeben sind.
Zu optimierende Datenbanken und Tabellen auswählen
Geben Sie die zu optimierenden Datenbanken und Tabellen an. Um alle Datenbanken anzugeben, aktivieren Sie das Kontrollkästchen in der Spaltenüberschrift Name . Zur Angabe bestimmter Datenbanken aktivieren Sie jeweils das Kontrollkästchen neben dem Datenbanknamen. Standardmäßig werden alle Tabellen der ausgewählten Datenbanken bei der Optimierungssitzung automatisch berücksichtigt. Um Tabellen auszuschließen, klicken Sie auf den Pfeil in der Spalte Ausgewählte Tabellen, und deaktivieren Sie dann die Kontrollkästchen neben den Tabellen, die nicht optimiert werden sollen.
Ausgewählte Tabellen Pfeil nach unten
Erweitern Sie die Tabellenliste, um die Auswahl einzelner zu optimierender Tabellen zu ermöglichen.
Optimierungsprotokoll speichern
Erstellen Sie ein Protokoll, und zeichnen Sie die während der Sitzung auftretenden Fehler auf.
Hinweis
Der Datenbankoptimierungsratgeber aktualisiert die Zeileninformationen für die auf der Registerkarte Allgemein angezeigten Tabellen nicht automatisch. Stattdessen verlässt er sich auf die Metadaten in der Datenbank. Wenn Sie vermuten, dass die Zeileninformationen veraltet sind, können Sie für die entsprechenden Objekte den Befehl DBCC UPDATEUSAGE ausführen.
Optionen der Registerkarte „Tuning“
Auf der Registerkarte Optimierungsoptionen werden die Standardeinstellungen der allgemeinen Optimierungsoptionen geändert. Eine Änderung der Einstellungen auf der Registerkarte Optimierungsoptionen ist vor dem Starten einer Optimierungssitzung nicht erforderlich.
Optimierungszeit begrenzen
Begrenzt die Dauer der aktuellen Optimierungssitzung. Wenn der Optimierung mehr Zeit eingeräumt wird, erhöht sich die Qualität der Empfehlungen. Um bestmögliche Empfehlungen zu erhalten, sollte diese Option nicht ausgewählt werden.
Hinweis
Datenbank-Engine-Optimierungsratgeber beansprucht während der Analyse die Systemressourcen. Um die Optimierung vor dem Beginn von Zeiträumen mit erwartungsgemäß hoher Arbeitsauslastung auf dem optimierten Server zu beenden, verwenden Sie Optimierungszeit begrenzen.
Erweiterte Optionen
Mithilfe des Dialogfelds Erweiterte Optimierungsoptionen können Sie den maximalen Speicherplatz, die maximale Anzahl an Schlüsselspalten sowie Onlineindexempfehlungen konfigurieren.
Max. Speicherplatz für Empfehlungen definieren (MB)
Geben Sie die maximale Größe des Speicherplatzes ein, der den Empfehlungen des Datenbankoptimierungsratgebers entsprechend für physische Entwurfsstrukturen verwendet werden darf.
Wenn an dieser Stelle kein Wert eingegeben wird, nimmt der Datenbankoptimierungsratgeber die kleinere der folgenden Beschränkungen des Speicherplatzes an:
Das Dreifache der aktuellen Rohdatengröße, einschließlich der Gesamtgröße der Heaps und gruppierten Indizes der Tabellen in der Datenbank
Der freie Speicherplatz auf allen angefügten Laufwerken plus die Rohdatengröße.
Ereignisse des Plancaches aus allen Datenbanken einbeziehen
Geben Sie an, dass Plancacheereignisse aus allen Datenbanken analysiert werden.
Max. Spaltenanzahl pro Index
Geben Sie die maximale Spaltenanzahl an, die in Indizes enthalten sein sollen. Der Standardwert beträgt 1.023.
Alle Empfehlungen sind offline
Generiert die bestmöglichen Empfehlungen, ohne zu empfehlen, dass physische Entwurfsstrukturen online erstellt werden sollen.
Sofern möglich, Onlineempfehlungen generieren
Wählt beim Erstellen von Transact-SQL-Anweisungen zum Implementieren der Empfehlungen Methoden aus, die implementiert werden können, während der Server online ist. Diese Auswahl wird auch getroffen, wenn eine schnellere Offline-Methode verfügbar ist.
Nur Onlineempfehlungen generieren
Gibt nur Empfehlungen, bei denen der Server online bleiben kann.
Beenden um
Gibt das Datum und die Uhrzeit des Zeitpunkts an, zu dem der Datenbank-Engine-Optimierungsratgeber beendet werden soll.
Indizes und indizierte Ansichten
Aktivieren Sie dieses Kontrollkästchen, um Empfehlungen für das Hinzufügen von gruppierten Indizes, nicht gruppierten Indizes und indizierten Sichten einzubeziehen.
Indizierte Ansichten
Empfehlungen werden nur zum Hinzufügen indizierter Sichten eingeschlossen. Für gruppierte und nicht gruppierte Indizes werden keine Empfehlungen gegeben.
Gefilterte Indizes einschließen
Enthält Empfehlungen zum Hinzufügen von gefilterten Indizes. Diese Option ist verfügbar, wenn Sie eine dieser physischen Entwurfsstrukturen auswählen: Indizes und indizierte Sichten, Indizesoder Nicht gruppierte Indizes.
Indizes
Berücksichtigen Sie nur Empfehlungen zum Hinzufügen von clusterten und nicht geclusterten Indizes. Indizierte Ansichten werden nicht empfohlen.
Nicht gruppierte Indizes
Beziehen Sie Empfehlungen nur für nicht gruppierte Indizes ein. Für gruppierte Indizes und indizierte Sichten werden keine Empfehlungen gegeben.
Nur die Nutzung des vorhandenen PDS bewerten
Bewertet die Effizienz der aktuellen Indizes. Für weitere Indizes oder indizierte Sichten werden jedoch keine Empfehlungen gegeben.
Keine Partitionierung
Empfehlen Sie keine Partitionierung.
Vollständige Partitionierung
Fügen Sie Empfehlungen zur Partitionierung hinzu.
Ausgerichtete Partitionierung
Neu empfohlene Partitionen werden so ausgerichtet, dass sie leicht zu warten sind.
Vorhandene PDS nicht beibehalten
Es werden Empfehlungen für das Verwerfen unnötiger vorhandener Indizes, Sichten und Partitionierungen gegeben. Wenn eine vorhandene physische Designstruktur (PDS) für die Arbeitslast nützlich ist, empfiehlt der Datenbankoptimierungsratgeber nicht, sie zu löschen.
Nur Indizes beibehalten
Behält alle vorhandenen Indizes bei, empfiehlt jedoch, unnötige indizierte Sichten und Partitionierungen zu verwerfen
Alle vorhandenen PDS beibehalten
Beibehalten Sie alle vorhandenen Indizes, indizierten Ansichten und die Partitionierung.
Nur gruppierte Indizes beibehalten
Behalten Sie alle vorhandenen clustered Indexes bei, empfehlen Sie jedoch, unnötige indizierte Ansichten, Partitionen und nicht gruppierte Indizes zu entfernen.
Ausgerichtete Partitionierung beibehalten
Aktuell ausgerichtete Partitionierungsstrukturen werden beibehalten, es wird jedoch empfohlen, unnötige indizierte Sichten, Indizes und nicht ausgerichtete Partitionierungen zu verwerfen. Jede zusätzlich empfohlene Partitionierung entspricht dem aktuellen Partitionierungsschema.
Optionen der Registerkarte „Fortschritt“
Die Registerkarte Status des Datenbankoptimierungsratgebers wird angezeigt, wenn der Datenbankoptimierungsratgeber mit der Analyse der Arbeitslast begonnen hat.
Wenn Sie die Optimierungssitzung nach dem Start anhalten möchten, wählen Sie eine der folgenden Optionen aus dem Menü Aktionen aus:
Analyse beenden (mit Empfehlungen) beendet die Optimierungssitzung und fragt, ob Sie möchten, dass der Datenbankoptimierungsratgeber auf der Basis der bisher ausgeführten Analyse Empfehlungen generiert.
Analyse beenden beendet die Optimierungssitzung ohne Erstellung von Empfehlungen.
Optimierungsfortschritt
Zeigt den aktuellen Status des Optimierungsvorgangs an. Enthält die Anzahl der durchgeführten Aktionen und die Anzahl der erhaltenen Fehler-, Erfolgs- und Warnmeldungen.
Details
Enthält ein Symbol, das den Status anzeigt.
Aktion
Zeigt die ausgeführten Schritte an.
Status
Zeigt den Status des Aktionsschritts an.
Meldung
Enthält alle Meldungen, die von den Aktionsschritten zurückgegeben werden.
Tuning-Protokoll
Enthält Informationen zu dieser Optimierungssitzung Um dieses Protokoll zu drucken, klicken Sie mit der rechten Maustaste auf das Protokoll, und wählen Sie Drucken aus.