Datenbankoptimierungsratgeber (Features)
Der Database Engine (Datenbankmodul)-Optimierungsratgeber bietet neue Features, mit denen sowohl Neueinsteiger als auch erfahrene Datenbankadministratoren Datenbanken optimieren können, um die Abfrageleistung zu verbessern. In den folgenden Abschnitten werden die neuen Features des Database Engine (Datenbankmodul)-Optimierungsratgebers beschrieben:
Verbesserte Analyse der Arbeitsauslastung
Verarbeitet Batches, die auf nicht permanente Tabellen verweisen, z. B. temp-Tabellen.
Beendet die Optimierung nicht, wenn ein Ereignis nicht analysiert werden kann. Stattdessen wird das Ereignis im Optimierungsprotokoll protokolliert und mit der Optimierung weiterer Ereignisse fortgefahren.
Analysiert und optimiert Abfragen, die auf benutzerdefinierte Funktionen verweisen.
Verarbeitet alle USE-Anweisungen in einer Ablaufverfolgung. Das ist beim Optimieren mehrerer Datenbanken erforderlich.
Verwendet die LoginName-Spalte in der Arbeitsauslastung (wenn sie in der Ablaufverfolgungstabelle zur Arbeitsauslastung verfügbar ist), um das Ereignis im Kontext des Benutzers, der das Ereignis ausführt, richtig zu optimieren.
Optimiert Anweisungen in Triggern.
Verbesserte Skalierbarkeit
Mit der verwendeten Arbeitsauslastungskomprimierung kann der Database Engine (Datenbankmodul)-Optimierungsratgeber die Optimierung in weniger Zeit ausführen und hochwertige Optimierungsempfehlungen erzielen.
Verwendet einen Algorithmus, mit dem die Erstellung redundanter Statistiken verhindert und damit die Anzahl der entstehenden E/As beim Optimieren reduziert wird.
Integrierte Optimierung
Der Database Engine (Datenbankmodul)-Optimierungsratgeber kann die Auswirkungen auf die Leistung berücksichtigen, die bei verschiedenen Typen physischer Entwurfsstrukturen (Indizes, indizierte Sichten, Partitionierung) bestehen, einschließlich gefilterter Indizes. Verschiedene Strukturen können in Bezug auf die Möglichkeit zur Reduzierung der Ausführungskosten für eine beliebige Abfrage überlappen. Wenn eine integrierte Konfiguration aus mehreren Entwurfsstrukturen einbezogen werden kann, kann der Database Engine (Datenbankmodul)-Optimierungsratgeber daher hochwertigere Empfehlungen bereitstellen. Wenn z. B. nur gruppierte Indizes für eine Gruppe von Tabellen berücksichtigt werden und anschließend die horizontale Bereichspartitionierung für dieselbe Gruppe von Tabellen, können Sie nicht ermitteln, auf welche Weise diese zwei physischen Entwurfsstrukturen zusammenarbeiten. Um diese Zusammenarbeit zu verstehen, muss das Optimierungstool eine integrierte Optimierung ausführen.
Optimieren mehrerer Datenbanken
Anwendungen greifen oft auf mehrere Datenbanken zu, sodass Arbeitsauslastungen häufig auf Objekte von mehreren Datenbanken verweisen. Im Gegensatz zum Indexoptimierungs-Assistenten in MicrosoftSQL Server 2000 kann der Database Engine (Datenbankmodul)-Optimierungsratgeber mehrere Datenbanken gleichzeitig optimieren. Benutzer können mehrere Datenbanken angeben, die optimiert werden sollen, und der Database Engine (Datenbankmodul)-Optimierungsratgeber gibt Empfehlungen für alle ausgewählten Datenbanken. Informationen zu diesem Feature finden Sie unter Optimieren mehrerer Datenbanken.
Auslagern des Optimierungsaufwands auf den Testserver
Durch das Optimieren einer großen Arbeitsauslastung kann es zu einem hohen Verarbeitungsaufwand auf dem Server kommen, der optimiert wird. Das liegt daran, dass der Database Engine (Datenbankmodul)-Optimierungsratgeber bei der Optimierung oft mehrere Aufrufe an den Abfrageoptimierer richten muss. Wenn Sie zusätzlich zum Produktionsserver einen Testserver verwenden, wird dieses Problem behoben.
In diesem Szenario optimieren Sie einen Testserver, mit dem die Umgebung des Produktionsservers dupliziert wird. Wenn Sie als Ergebnis der Optimierung des Testservers eine Konfigurationsempfehlung für den Datenbankentwurf erhalten haben, können Sie die Empfehlung während eines Wartungsfensters auf dem Produktionsserver implementieren.
Die traditionelle Verwendungsweise eines Testservers besteht im Kopieren aller Daten vom Produktionsserver auf den Testserver, Optimieren des Testservers und anschließendem Anpassen der Empfehlung in Bezug auf Hardwareunterschiede zwischen den beiden Computern. Der Database Engine (Datenbankmodul)-Optimierungsratgeber kann einen Testserver verwenden, ohne dass das Kopieren der Daten auf den Testcomputer erforderlich ist oder die beiden Computerhardwarekomponenten identisch sein müssen. Dadurch sparen Sie Zeit und Ressourcen. Stattdessen importiert der Database Engine (Datenbankmodul)-Optimierungsratgeber die Metadaten, Statistiken und Hardwareparameter aus dem Produktionsserver auf den Testserver. Dann führt der Database Engine (Datenbankmodul)-Optimierungsratgeber die Optimierungsvorgänge auf dem Testserver aus, und Sie können die Ergebnisse bei einer normalen Wartung auf dem Produktionsserver implementieren. Informationen zu diesem Feature finden Sie unter Reduzieren der Optimierungsauslastung des Produktionsservers.
Befehlszeilen-Dienstprogramm und GUI-Tool
Der Database Engine (Datenbankmodul)-Optimierungsratgeber bietet die folgenden beiden Benutzeroberflächen:
Das Befehlszeilen-Dienstprogramm dta, mit dem die Funktionalität des Database Engine (Datenbankmodul)-Optimierungsratgebers auf einfache Weise in die Skripterstellung integriert werden kann.
Ein Tool für die grafische Benutzeroberfläche (Graphical User Interface, GUI) des Database Engine (Datenbankmodul)-Optimierungsratgebers, mit dem Optimierungssitzungen und Ergebnisse einfach angezeigt werden können.
Optimieren durch Löschen
Physische Entwurfsstrukturen in einer Datenbank können mit der Zeit zunehmen, und Datenbankadministratoren brauchen eine Möglichkeit, diese nicht länger benötigten Strukturen zu löschen. Die Option zum Optimieren durch Löschen ist beim Identifizieren vorhandener physischer Entwurfsstrukturen hilfreich, die entweder überhaupt nicht verwendet werden oder für eine bestimmte Arbeitsauslastung wenig Vorteile bieten. Diese Optimierungsoption kann mit dem –fx-Argument angegeben werden, wenn Sie das Befehlszeilen-Dienstprogramm dta verwenden. Wenn Sie die GUI verwenden, können Sie diese Option angeben, indem Sie auf der Registerkarte Optimierungsoptionen die Option Nur Auslastung vorhandener physischer Entwurfsstrukturen bewerten auswählen.
Bei dieser Option schlägt der Database Engine (Datenbankmodul)-Optimierungsratgeber nie neue Strukturen vor. Sie können diese Option daher nicht zusammen mit anderen Optionen verwenden, die Indizes, indizierte Sichten oder Partitionen hinzufügen. Sie können die Option zum Optimieren durch Löschen auch nicht mit der Option zum Beibehalten aller vorhandenen Strukturen verwenden. Weitere Informationen zu den Optimierungsoptionen, die Sie mit dem Database Engine (Datenbankmodul)-Optimierungsratgeber verwenden können, finden Sie unter Verfügbare Optimierungsoptionen.
XML-Unterstützung
Alle Optimierungsvorgänge, die in der grafischen Benutzeroberfläche (GUI) des Database Engine (Datenbankmodul)-Optimierungsratgebers und mit dem Befehlszeilen-Dienstprogramm dta zur Verfügung stehen, können in der XML-Eingabedatei des Database Engine (Datenbankmodul)-Optimierungsratgebers definiert werden. Die XML-Eingabedatei beruht auf dem veröffentlichten XML-Schema des Database Engine (Datenbankmodul)-Optimierungsratgebers, das sich am folgenden Speicherort im Installationsverzeichnis von MicrosoftSQL Server befindet:
C:\Programme\Microsoft SQL Server\100\Tools\Binn\schemas\sqlserver\2004\07\dta\dtaschema.xsd
Sie können auch das Schema vom Database Engine Tuning Advisor Schema auf der Microsoft-Website herunterladen.
Wenn Sie eine XML-Eingabedatei verwenden, können Sie beim Optimieren von Datenbanken Ihre bevorzugten XML-Tools verwenden. Außerdem bietet sie erfahreneren Datenbankadministratoren mehr Flexibilität. Wenn Sie eine XML-Eingabedatei verwenden, können Sie z. B. eine Konfiguration vorhandener und hypothetischer physischer Entwurfsstrukturen (Indizes, indizierte Sichten, Partitionen) angeben und dann mit dem Befehlszeilen-Dienstprogramm dta eine Datenbank so optimieren, als sei diese Konfiguration bereits implementiert worden. Das ermöglicht eine Was-wäre-wenn-Analyse ohne den Verarbeitungsaufwand, der durch das Implementieren der neuen Konfiguration vor der Optimierung verursacht wird. Weitere Informationen zur XML-Unterstützung des Database Engine (Datenbankmodul)-Optimierungsratgebers finden Sie unter XML-Eingabedateireferenz (Datenbankoptimierungsratgeber), Optimierung mithilfe einer XML-Eingabedatei und Explorative Analyse mithilfe des Datenbankoptimierungsratgebers.
Unterstützung für benutzerdefinierte Konfigurationen und Was-wäre-wenn-Analysen
Der Database Engine (Datenbankmodul)-Optimierungsratgeber ermöglicht Benutzern, eine hypothetische Konfiguration mit physischen Entwurfsstrukturen (Indizes, indizierte Sichten und Partitionierungsstrategien) als Eingabe zur Optimierung bereitzustellen. Sie können dann eine oder mehrere Datenbanken so optimieren, als sei die Konfiguration bereits implementiert worden. Dadurch können Sie eine Was-wäre-wenn-Analyse zu einem bestimmten Satz von physischen Entwurfsstrukturen ausführen, bevor Sie sie mit dem entsprechenden Mehraufwand implementieren. Dieses Feature wird vollständig vom XML-Schema des Database Engine (Datenbankmodul)-Optimierungsratgebers unterstützt. Sie können die gewünschte Konfiguration angeben, die Sie in der XML-Eingabedatei auswerten möchten, und dann die Optimierungssitzung mit dem Befehlszeilen-Dienstprogramm dta starten. Informationen zu diesem Feature finden Sie unter Explorative Analyse mithilfe des Datenbankoptimierungsratgebers.
Analyseberichte
Wenn eine Optimierungssitzung abgeschlossen ist, generiert der Database Engine (Datenbankmodul)-Optimierungsratgeber mehrere Analyseberichte in Textform oder im XML-Format. Diese Berichte enthalten Informationen wie z. B. die Kosten von Abfragen, die in der Arbeitsauslastung auftreten, die Häufigkeit von Ereignissen, die in der Arbeitsauslastung auftreten, oder die Beziehungen zwischen Abfragen und den Indizes, auf die sie verweisen. Sie können die Berichte mit der GUI des Database Engine (Datenbankmodul)-Optimierungsratgebers anzeigen. Die in XML generierten Berichte können Sie mit dem üblichen XML-Editor öffnen. Weitere Informationen zu den Analyseberichten, die der Database Engine (Datenbankmodul)-Optimierungsratgeber generiert, finden Sie unter Auswählen eines Datenbankoptimierungsratgeberberichts.
Optimierungssitzungen
Vor Beginn der Analyse werden Sie vom Database Engine (Datenbankmodul)-Optimierungsratgeber aufgefordert, einen eindeutigen Namen oder eine eindeutige Nummer zum Identifizieren der Optimierungssitzung zu erstellen. Nach dem Analysieren einer Arbeitsauslastung oder beim Beenden der Analyse speichert der Database Engine (Datenbankmodul)-Optimierungsratgeber die Informationen zur Optimierungssitzung und verknüpft sie mit dem Bezeichner, den Sie vor der Optimierung bereitgestellt haben. Mit der Sitzungs-ID können Sie eine vorhandene Sitzung erneut in die GUI des Database Engine (Datenbankmodul)-Optimierungsratgebers laden. Dort können Sie die Ergebnisse und Berichte der Optimierung überprüfen. Durch Optimierungssitzungen ist es einfach, Optimierungsergebnisse über eine bestimmte Zeit zu vergleichen. Weitere Informationen zum Verwenden von Optimierungssitzungen finden Sie unter Auswerten der Optimierungsempfehlungen mithilfe des Sitzungsmonitors.
Nur mit dem Dienstprogramm dta verfügbare Features
Die in der folgenden Liste aufgeführten Optimierungsoptionen sind aktuell nicht verfügbar, wenn Sie den Database Engine (Datenbankmodul)-Optimierungsratgeber (GUI) verwenden.
Ausführen von einer Befehlszeile aus oder Verwenden einer XML-Eingabedatei
Wenn Sie das Dienstprogramm dta von der Befehlszeile ausführen, oder wenn Sie eine XML-Eingabedatei mit dem Dienstprogramm mithilfe des -ix-Befehlszeilenarguments verwenden, können Sie Folgendes angeben:
Ein benanntes Optimierungsprotokoll (-e-Befehlszeilenargument oder TableName-Element).
Die Anzahl der Ereignisse zum optimieren (-n-Befehlszeilenargument oderNumberOfEvents-Element).
Die maximale Anzahl an Schlüsselspalten, die durch den Database Engine (Datenbankmodul)-Optimierungsratgeber vorgeschlagen werden (-c-Befehlszeilenargument oder MaxKeyColumnsInIndex-Element).
Die minimale Verbesserung für den Database Engine (Datenbankmodul)-Optimierungsratgeber, um eine empfohlene Konfiguration vorzuschlagen (-m-Befehlszeilenargument oder MinPercentageImprovement-Element).
Beim Verwenden einer XML-Eingabedatei
Zusätzlich zu dem oben genannten Feature können Sie wie folgt vorgehen, wenn Sie die XML-Eingabedatei mit dem dta-Dienstprogramm verwenden:
Verwenden Sie das Testserver/Produktionsserver-Szenario, dass das Erstellen einer Shell-Datenbank auf dem Testserver beinhaltet (TestServer-Element).
Geben Sie eine Inlinearbeitsauslastung in der XML-Eingabedatei an (EventString-Element).
Ignorieren Sie Konstanten in einer Arbeitsauslastung (IgnoreConstantsInWorkload-Element).
Von der Befehlszeile
Zusätzlich zu dem oben genannten Feature können Sie wie folgt vorgehen, wenn Sie das dta-Dienstprogramm von der Befehlszeile ausführen:
Geben Sie den stillem Modus an, in dem das Dienstprogramm ohne das Anzeigen von Feedbackmeldungen ausgeführt wird (-q-Befehlszeilenargument).
Führen Sie eine Optimierung aus und wenden Sie automatisch die Optimierungsempfehlungen an (-a-Befehlszeilenargument).