Vorgehensweise: Erstellen von Arbeitsauslastungen
Eine Arbeitsauslastung ist eine Gruppe von Transact-SQL-Anweisungen an mindestens eine Datenbank, die Sie optimieren möchten. Die grafische Benutzeroberfläche (GUI, Graphical User Interface) im Datenbankoptimierungsratgeber und das Befehlszeilen-Dienstprogramm dta verwenden beim Optimieren von Datenbanken Ablaufverfolgungsdateien, -tabellen oder Transact-SQL-Skripts zur Eingabe von Arbeitsauslastungen. 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 von Inlinearbeitsauslastungen finden Sie unter Optimierung mithilfe einer XML-Eingabedatei.
Sie können den Abfrage-Editor in MicrosoftSQL Server Management Studio oder einen bevorzugten Text-Editor verwenden, um Transact-SQL-Skriptarbeitsauslastungen zu erstellen. Um Arbeitsauslastungen für Ablaufverfolgungsdateien oder -tabellen zu erstellen, verwenden Sie SQL Server Profiler. Der Datenbankoptimierungsratgeber analysiert diese Arbeitsauslastungen, um Indizes oder Partitionsstrategien zu empfehlen, die die Abfrageleistung Ihres Servers verbessern.
Hinweis |
---|
Wenn Sie eine Ablaufverfolgungstabelle als Arbeitsauslastung verwenden, muss diese Tabelle auf demselben Server vorhanden sein, auf dem der Datenbankoptimierungsratgeber die Optimierung vornimmt. Wenn Sie die Ablaufverfolgungstabelle auf einem anderen Server erstellen, müssen Sie sie dann auf den Server verschieben, der über den Datenbankoptimierungsratgeber optimiert wird. |
So erstellen Sie Transact-SQL-Skriptarbeitsauslastungen mit dem Abfrage-Editor von SQL Server Management Studio
Starten Sie den Abfrage-Editor in SQL Server Management Studio. Weitere Informationen zum Durchführen dieses Schritts finden Sie unter Bearbeiten von Skripts und Dateien in SQL Server Management Studio.
Geben Sie Ihr Transact-SQL-Skript in den Abfrage-Editor ein. Dieses Skript sollte eine Gruppe von Transact-SQL-Anweisungen an mindestens eine zu optimierende Datenbank enthalten. Speichern Sie die Datei mit der Erweiterung SQL. Die GUI im Datenbankoptimierungsratgeber und das Befehlszeilen-Dienstprogramm können dieses Transact-SQL-Skript als Arbeitsauslastung verwenden.
So erstellen Sie mithilfe von SQL Server Profiler Arbeitsauslastungen für Ablaufverfolgungsdateien und -tabellen
Starten Sie SQL Server Profiler mithilfe einer der folgenden Methoden:
Zeigen Sie im Menü Start auf Alle Programme, Microsoft SQL Server, Leistungstools, und klicken Sie dann auf SQL Server Profiler.
Klicken Sie in SQL Server Management Studio auf das Menü Extras, und klicken Sie dann auf SQL Server Profiler.
Erstellen Sie eine Ablaufverfolgungsdatei oder -tabelle mithilfe der SQL Server Profiler-Vorlage Tuning, wie in den folgenden schrittweisen Anleitungen beschrieben:
Vorgehensweise: Erstellen einer Ablaufverfolgung (SQL Server Profiler)
Vorgehensweise: Speichern von Ablaufverfolgungsergebnissen in einer Datei (SQL Server Profiler)
Der Datenbankoptimierungsratgeber setzt voraus, dass es sich bei der Ablaufverfolgungsdatei der Arbeitsauslastung um eine Rolloverdatei handelt. Weitere Informationen zu Rolloverdateien finden Sie unter Beschränken der Größe der Ablaufverfolgungsdateie und -tabelle.
Vorgehensweise: Speichern von Ablaufverfolgungsergebnissen in einer Tabelle (SQL Server Profiler)
Stellen Sie sicher, dass die Ablaufverfolgung beendet ist, bevor Sie eine Ablaufverfolgungstabelle als Arbeitsauslastung verwenden.
Die Verwendung der Optimierungsvorlage von SQL Server Profiler zum Aufzeichnen von Arbeitsauslastungen für den Datenbankoptimierungsratgeber wird empfohlen.
Wenn Sie Ihre eigene Vorlage verwenden möchten, müssen Sie sicherstellen, dass die folgenden Ablaufverfolgungsereignisse für die von Ihnen verwendete SQL Server-Version aufgezeichnet werden.
SQL Server 2005 und höher:
RPC:Completed
SQL:BatchCompleted
SP:StmtCompleted
SQL Server 2000:
RPC:Completed
SQL:BatchCompleted
Sie können auch die Starting-Versionen dieser Ablaufverfolgungsereignisse verwenden. Zum Beispiel SQL:BatchStarting. Jedoch beinhalten die Completed-Versionen dieser Ablaufverfolgungsereignisse die Duration-Spalte, die es dem Datenbankoptimierungsratgeber ermöglichen, die Arbeitsauslastung effizienter zu optimieren. Der Datenbankoptimierungsratgeber optimiert keine anderen Arten von Ablaufverfolgungsereignissen. Weitere Informationen zu diesen Ablaufverfolgungsereignissen finden Sie unter Gespeicherte Prozeduren (Ereigniskategorie) und TSQL-Ereigniskategorie. Informationen zum Verwenden der gespeicherten Prozeduren der SQL-Ablaufverfolgung zum Erstellen einer Arbeitsauslastung der Ablaufverfolgungsdatei finden Sie unter Vorgehensweise: Erstellen einer Ablaufverfolgung (Transact-SQL).
Ablaufverfolgungsdatei- oder Ablaufverfolgungstabellen-Arbeitsauslastungen, die die LoginName-Datenspalte enthalten
Der Datenbankoptimierungsratgeber übermittelt im Rahmen des Optimierungsprozesses Showplan-Anforderungen. Wenn eine Ablaufverfolgungstabelle oder -datei, die die LoginName-Datenspalte enthält, als Arbeitsauslastung verbraucht wird, nimmt der Datenbankoptimierungsratgeber die Identität des in LoginName angegebenen Benutzers an. Wenn dieser Benutzer keine SHOWPLAN-Berechtigung besitzt (über die der Benutzer für die in der Ablaufverfolgung enthaltenen Anweisungen Showplans erstellen und ausführen kann), werden diese Anweisungen nicht durch den Datenbankoptimierungsratgeber optimiert. Weitere Informationen zur LoginName-Datenspalte finden Sie unter Beschreiben von Ereignissen mithilfe von Datenspalten. Weitere Informationen zur SHOWPLAN-Berechtigung finden Sie unter Showplansicherheit.
So vermeiden Sie, jedem der in der LoginName-Spalte der Ablaufverfolgung angegebenen Benutzer die SHOWPLAN-Berechtigung erteilen zu müssen
Optimieren Sie eine Ablaufverfolgungsdatei- oder Ablaufverfolgungstabellen-Arbeitsauslastung. Weitere Informationen finden Sie unter Vorgehensweise: Optimieren einer Datenbank.
Überprüfen Sie das Optimierungsprotokoll auf Anweisungen, die aufgrund von unzureichenden Berechtigungen nicht optimiert wurden. Weitere Informationen finden Sie unter Informationen zum Optimierungsprotokoll und Vorgehensweise: Anzeigen der Optimierungsausgabe.
Erstellen Sie eine neue Arbeitsauslastung, indem Sie die LoginName-Spalte 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 Vorgehensweise: Angeben von Ereignissen und Datenspalten für eine Ablaufverfolgungsdatei (SQL Server Profiler) und Vorgehensweise: Ändern einer vorhandenen Ablaufverfolgung (Transact-SQL).
Übermitteln Sie die neue Arbeitsauslastung ohne die LoginName-Spalte an den Datenbankoptimierungsratgeber.
Der Datenbankoptimierungsratgeber optimiert nun die neue Arbeitsauslastung, da in der Ablaufverfolgung keine Anmeldeinformationen angegeben sind. Wenn für eine Anweisung LoginName 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).
Siehe auch