Die zehn wichtigsten SQL Server 2008-Funktionen für Datenbankadministratoren (DBA)

  • Comments 1
Autor: Mike Weiner

Mitwirkender: Burzin Patel

Lektoren: Lubor Kollar, Kevin Cox, Bill Emmert, Greg Husemeier, Paul Burpo, Joseph Sack, Denny Lee, Sanjay Mishra, Lindsey Allen, Mark Souza

Microsoft SQL Server 2008 bietet eine Reihe von Verbesserungen und neuen Funktionen und basiert dabei auf früheren Versionen. Unter anderem fallen die Belange Verwaltung, Datenbankwartung, Verwaltbarkeit, Verfügbarkeit, Sicherheit und Leistung in die Zuständigkeit des Datenbankadministrators. In diesem Artikel werden die zehn wichtigsten Features von SQL Server 2008 vorgestellt (in alphabetischer Reihenfolge), die Datenbankadministratoren bei der Erfüllung ihrer Aufgaben unterstützen. Neben einer kurzen Beschreibung jedes Features wird erläutert, wie das betreffende Feature optimal genutzt werden kann. Zusätzlich werden einige wichtige Aspekte zur Verwendung erörtert.

  Aktivitätsmonitor

Beim Behandeln von Leistungsproblemen oder beim Überwachen eines Servers in Echtzeit führt der Datenbankadministrator in der Regel einige Skripts aus oder überprüft eine Reihe von Quellen, um allgemeine Informationen zu den ausgeführten Prozessen zu sammeln und das Problem zu bestimmen. SQL Server 2008-Aktivitätsmonitor konsolidiert die Informationen durch eine grafische Darstellung von aktiven und kürzlich ausgeführten Prozessen. Die Anzeige bietet dem Datenbankadministrator eine allgemeine Ansicht und die Möglichkeit, einen Drilldown auf Prozesse auszuführen und Wartestatistiken anzuzeigen, um Probleme zu erkennen und zu beheben.

Klicken Sie zum Öffnen des Aktivitätsmonitors mit der rechten Maustaste im Objekt-Explorer auf den registrierten Servernamen, und klicken Sie anschließend auf Aktivitätsmonitor, oder verwenden Sie das standardmäßige Symbolleistensymbol in SQL Server Management Studio. Im Aktivitätsmonitor steht dem Datenbankadministrator ein Übersichtsabschnitt zur Verfügung, der Ausgaben generiert, die mit dem Windows Task-Manager und Drilldownkomponenten vergleichbar sind, um bestimmte Prozesse, Ressourcenwartevorgänge, Dateidaten-E/As und aktuelle aufwendige Abfragen zu betrachten (siehe Abbildung 1).

Abbildung 1: Anzeigen der SQL Server 2008-Aktivitätsmonitoransicht über Management Studio


HINWEIS: Sie können durch Klicken auf den Aktivitätsmonitor mit der rechten Maustaste auf eine Aktualisierungsintervalleinstellung zugreifen. Wenn der Wert auf einen niedrigen Schwellenwert (unter zehn Sekunden) festgelegt wird, kann in einem Produktionssystem mit hohem Volumen die allgemeine Systemleistung beeinträchtigt werden.

Mit dem Aktivitätsmonitor können Datenbankadministratoren die folgenden Aufgaben ausführen:

·         Den Aktivitätsmonitor per Rechtsklick anhalten und fortsetzen. Dadurch kann der Datenbankadministrator einen bestimmten Zeitpunkt zur späteren Prüfung „speichern“, ohne dass er aktualisiert oder überschrieben wird. Seien Sie jedoch vorsichtig, da die Daten beim manuellen Aktualisieren, Erweitern oder Minimieren eines Abschnitts aktualisiert werden.

·         Klicken Sie mit der rechten Maustaste auf ein Zeilenelement, um den vollständigen Abfragetext oder den grafischen Ausführungsplan über kürzlich ausgeführte aufwendige Abfragen anzuzeigen.

·         Führen Sie eine Profiler-Ablaufverfolgung aus, oder beenden Sie einen Prozess in der Prozessansicht. Zu Profiler-Ereignissen zählen die Ereignisse RPC:Completed, SQL:BatchStarting und SQL:BatchCompleted sowie Audit Login und Audit Logout.

Der Aktivitätsmonitor bietet zudem die Möglichkeit, Aktivitäten in einer beliebigen SQL Server 2005-Instanz (lokal oder remote) zu überwachen, die in SQL Server Management Studio registriert ist.

     [SQL Server] Audit

Durch die Möglichkeit, Ereignisse zu überwachen und zu protokollieren – zum Beispiel, welcher Benutzer auf Objekte zugreift und welche Zeitänderungen aufgetreten sind – kann der Datenbankadministrator Kompatibilitätsstandards für behördliche oder organisationsweit geltende Sicherheitsanforderungen erfüllen. Einblicke in die Ereignisse, die in der Umgebung auftreten, können dem Datenbankadministrator zudem das Erstellen eines Risikominimierungsplans zur Gewährleistung der Umgebungssicherheit erleichtern.

In SQL Server 2008 (nur Enterprise Edition und Developer Edition) können der Datenbankadministrator und andere Benutzer mithilfe der von SQL Server Audit bereitgestellten Automatisierung Überwachungen von verschiedenen Server- und Datenbankkomponenten aktivieren, speichern und anzeigen. Das Feature ermöglicht Überwachungen mit einer Genauigkeit, die der Server- und/oder Datenbankebene entspricht.

Unter anderem sind folgende Überwachungsaktionsgruppen auf Serverebene verfügbar:

·         FAILED_LOGIN_GROUP: Verfolgt fehlerhafte Anmeldungen nach.

·         BACKUP_RESTORE_GROUP: Zeigt an, wann eine Datenbank gesichert oder wiederhergestellt wurde.

·         DATABASE_CHANGE_GROUP: Überwacht das Erstellen, Ändern oder Löschen einer Datenbank.

Überwachungsaktionsgruppen auf Datenbankebene:

·         DATABASE_OBJECT_ACCESS_GROUP: Wird ausgelöst, wenn eine CREATE-, ALTER- oder DROP-Anweisung für Datenbankobjekte ausgeführt wird.

·         DATABASE_OBJECT_PERMISSION_CHANGE_GROUP: Wird ausgelöst, wenn GRANT, REVOKE oder DENY für Datenbankobjekte verwendet wird.

Es sind auch Überwachungsaktionen wie SELECT, DELETE oder EXECUTE vorhanden. Weitere Informationen einschließlich einer vollständigen Liste der Überwachungsgruppen und Aktionen finden Sie unter SQL Server Audit-Aktionsgruppen und -Aktionen.

Überwachungsergebnisse können zum Anzeigen an ein Datei- oder Ereignisprotokoll gesendet werden (Windows-Sicherheit oder -System). Überwachungsinformationen werden mithilfe von Extended Events, einem anderen neuen Feature in SQL Server 2008, erstellt.

Mithilfe von SQL Server 2008-Überwachungen kann der Datenbankadministrator nun Fragen beantworten, die früher im Nachhinein äußerst schwierig zu klären waren, z. B. „Von wem wurde dieser Index gelöscht?“, „Wann wurde die gespeicherte Prozedur geändert?“, „Was wurde geändert, das dem Benutzer möglicherweise nicht den Zugriff auf die Tabelle ermöglicht?“ oder sogar „Wer führte die SELECT- oder UPDATE-Anweisung für die [dbo.Payroll]-Tabelle aus?“

Weitere Informationen zur Verwendung von SQL Server Audit und einige Implementierungsbeispiele finden Sie im SQL Server 2008-Kompatibilitätshandbuch.

       Sicherungskomprimierung

Dieses Feature war lange Zeit ein häufig geäußerter Wunsch von Datenbankadministratoren für SQL Server. Das Warten hat nun ein Ende, und zwar genau rechtzeitig. Zahlreiche Faktoren, wie verlängerte Datenbeibehaltungsfristen und der Bedarf an höheren Kapazitäten zur physischen Datenspeicherung, sorgten in letzter Zeit für einen sprunghaften Anstieg der Datenbankgröße. Die Sicherung einer großen Datenbank kann einen beträchtlichen Zeitaufwand nach sich ziehen, und für die Sicherungsdateien muss umfassender Speicherplatz bereitgestellt werden.

Mit der SQL Server 2008-Sicherungskomprimierung wird die Sicherungsdatei beim Ausschreiben komprimiert, wobei weniger Speicherplatz, weniger Datenträger-E/A und weniger Zeit benötigt wird. In Labortests, die mit echten Kundendaten durchgeführt wurden, wurde in zahlreichen Fällen eine Verringerung der Sicherungsdateigröße um 70 bis 85 % beobachtet. Die Tests ergaben auch einen Rückgang der Sicherungs- und Wiederherstellungsdauer um 45 %. Es ist zu beachten, dass die zusätzliche Verarbeitung zu höherer Prozessorauslastung führt. Um die CPU-intensive Sicherung zu isolieren und deren Auswirkungen auf andere Prozesse zu verringern, kann ggf. ein anderes in diesem Whitepaper beschriebenes Feature verwendet werden: Ressourcenkontrolle.

Die Komprimierung wird durch Angabe der WITH COMPRESSION-Klausel im BACKUP-Befehl (weitere Informationen finden Sie unter SQL Server-Onlinedokumentation) oder durch Auswählen der Klausel auf der Seite Optionen im Dialogfeld Datenbank sichern erreicht. Damit nicht alle vorhandenen Sicherungsskripts geändert werden müssen, kann auch mit einer globalen Einstellung das Komprimieren aller auf einer Serverinstanz erstellten Sicherungen standardmäßig aktiviert werden. (Auf diese Einstellung wird mithilfe der Seite Datenbankeinstellungen des Dialogfelds Servereigenschaften oder durch Ausführen von sp_configure zugegriffen, wobei der Standardwert für die Sicherungskomprimierung auf 1 festgelegt ist.) Während die Komprimierungsoption für den Sicherungsbefehl explizit angegeben werden muss, erkennt der Wiederherstellungsbefehl automatisch, dass eine Sicherung komprimiert ist und dekomprimiert sie beim Wiederherstellungsvorgang.

Die Sicherungskomprimierung ist ein sehr nützliches Feature, mit dem der Datenbankadministrator Speicherplatz und Zeit sparen kann. Weitere Informationen zur Optimierung der Sicherungskomprimierung finden Sie im technischen Hinweis unter Leistungsoptimierung für Sicherungskomprimierung in SQL Server 2008. HINWEIS: Das Erstellen von komprimierten Sicherungen wird nur in den Editionen SQL Server 2008 Enterprise und Developer unterstützt; allerdings ermöglicht jede Edition von SQL Server 2008 die Wiederherstellung einer komprimierten Sicherung.

      Zentrale Verwaltungsserver

Datenbankadministratoren sind häufig nicht nur für die Verwaltung von einer, sondern von zahlreichen SQL Server-Instanzen in der Umgebung zuständig. Durch die Möglichkeit zur Zentralisierung der Verwaltung einiger SQL Server-Instanzen von einer einzelnen Quelle aus kann der Datenbankadministrator viel Zeit und Aufwand sparen. Mithilfe der Implementierung der zentralen Verwaltungsserver, auf die über die Komponente für registrierte Server in SQL Server Management Studio zugegriffen wird, kann der Datenbankadministrator über eine einzelne Verwaltungskonsole auf Computern mit SQL Server in der Umgebung eine Reihe von Verwaltungsaufgaben ausführen.

Zentrale Verwaltungsserver ermöglichen dem Datenbankadministrator das Registrieren einer Gruppe von Servern und das Anwenden von Funktionen auf den Server (als Gruppe), z. B. die folgenden:

·         Abfrageausführung für mehrere Server: Ein Skript kann nun von einer Quelle für mehrere Computer mit SQL Server ausgeführt werden und an diese Quelle zurückgegeben werden, ohne dass jeweils eine gesonderte Anmeldung an jedem Server erforderlich ist. Dies kann in Fällen außerordentlich hilfreich sein, in denen Daten aus Tabellen auf mindestens zwei Computern mit SQL Server angezeigt oder verglichen werden müssen, ohne dass eine verteilte Abfrage ausgeführt wird. Sofern die Syntax in früheren Serverversionen unterstützt wird, kann eine Abfrage vom Abfrage-Editor in SQL Server 2008 auch für SQL Server 2005- und SQL Server 2000-Instanzen ausgeführt werden. Weitere Informationen finden Sie im Teamblog zur SQL Server-Verwaltbarkeit, insbesondere unter Abfrageausführung für mehrere Server in SQL Server 2008 .

 

·         Importieren und Auswerten von Richtlinien auf mehreren Servern: Als Teil der richtlinienbasierten Verwaltung (ein weiteres neues SQL Server 2008-Feature, das in diesem Artikel vorgestellt wird) bietet SQL Server 2008 die Möglichkeit, Richtliniendateien in bestimmte zentrale Verwaltungsservergruppen zu importieren und ermöglicht die Auswertung von Richtlinien auf allen Servern, die in der Gruppe registriert sind.

 

·         Steuern von Diensten und Anzeigen des SQL Server-Konfigurations-Managers: Zentrale Verwaltungsserver unterstützen die Bereitstellung eines zentralen Orts, an dem Datenbankadministratoren den Dienststatus anzeigen und den Status auch ändern können, sofern sie die entsprechenden Berechtigungen besitzen.

 

·         Importieren und Exportieren der registrierten Server: Server in zentralen Verwaltungsservern können für die Verwendung zwischen Datenbankadministratoren oder verschiedenen Installationen von SQL Server Management Studio-Instanzen exportiert und importiert werden. Dies ist eine Alternative zum Importieren bzw. Exportieren von Servern in lokale Gruppierungen in SQL Server Management Studio durch Datenbankadministratoren.

Beachten Sie, dass Berechtigungen über die Windows-Authentifizierung erzwungen werden, sodass ein Benutzer abhängig vom in der Gruppe der zentralen Verwaltungsserver registrierten Server unter Umständen unterschiedliche Rechte und Berechtigungen besitzt. Weitere Informationen finden Sie unter Verwalten mehrerer Server mithilfe von zentralen Verwaltungsservern und in einem Blog von Kimberly Tripp: SQL Server 2008 Central Management Servers-have you seen these? (möglicherweise in englischer Sprache)

       Datenauflister und Verwaltungs-Data Warehouse

Leistungsoptimierung und Problembehandlung sind zeitaufwändige Aufgaben, die möglicherweise sehr gute Kenntnisse im Umgang mit SQL Server und Datenbanken erfordern. Windows-Systemmonitor (Perfmon), SQL Server Profiler und dynamische Verwaltungssichten (DMVs) waren bei einigen dieser Aufgaben hilfreich, aber oft auch aufdringlich, arbeitsaufwändig oder die abweichenden Datensammlungsmethoden konnten nur umständlich zusammengefasst und ausgewertet werden.

SQL Server 2008 stellt ein vollständig erweiterbares, auch als Datenauflister bezeichnetes Leistungsdatensammlungs- und Warehouse-Tool bereit, das aussagefähige Einblicke in die Leistungsstatistiken bietet. Im Lieferumfang des Tools sind mehrere Datensammlungsagenten, ein zentralisiertes Datenrepository zum Aufbewahren von Leistungsdaten mit der Bezeichnung Verwaltungs-Data Warehouse und mehrere Musterberichte zur Präsentation der erfassten Daten enthalten. Beim Datenauflister handelt es sich um ein skalierbares Tool, mit dem durch Verwendung einer vollständig anpassbaren Datensammlungsfrequenz Daten von mehreren Quellen, wie z. B. dynamischen Verwaltungssichten, Perfmon, Transact-SQL-Abfragen, erfasst und angepasst werden. Der Datenauflister kann dahingehend erweitert werden, dass er Daten für alle messbaren Attribute einer Anwendung erfasst.

Ein weiteres hilfreiches Feature des Verwaltungs-Data Warehouse ist die Möglichkeit der Installation auf einem beliebigen SQL Server und die anschließende Erfassung von Daten von einer oder mehreren SQL Server-Instanzen innerhalb der Umgebung. Dies kann bei der Minimierung der Auswirkungen auf die Leistung von Produktionssystemen und bei der Verbesserung der Skalierbarkeit im Hinblick auf die Überwachung und Erfassung von Daten von zahlreichen Servern helfen. Bei Labortests haben wir einen Durchsatzrückgang von etwa 4 % festgestellt, als wir die Agenten und das Verwaltungs-Data Warehouse auf einem Server ausgeführt haben, der an der Kapazitätsgrenze ausgeführt wurde (über eine OLTP-Arbeitsauslastung). Die Auswirkungen variieren je nach Erfassungsintervall (da der Test bei erweiterter Arbeitsauslastung mit 15-minütigen Abrufen in das Warehouse durchgeführt wurde) und können während Erfassung der Daten in den Intervallen sogar noch verschlimmert werden. Letztendlich sollte noch etwas Kapazität eingeplant werden, da der Prozess DCExec.exe Arbeitsspeicher- und Prozessorressourcen in Anspruch nimmt. Zusätzlich erhöhen Schreibvorgänge im Verwaltungs-Data Warehouse die E/A-Arbeitsauslastung und Speicherplatzreservierung, die für Daten- und Protokolldateien erforderlich sind.

Das folgende Diagramm (Abbildung 2) zeigt einen typischen Bericht des Datenauflisters.

Abbildung 2: Anzeige eines SQL Server 2008-Berichts eines Datenauflisters


Dieser Bericht enthält Informationen zur SQL Server-Verarbeitung für den Zeitraum der Datenerfassung. Ereignisse wie Wartevorgänge, CPU, E/A, Speicherauslastung und aufwändige Abfragestatistiken werden erfasst und angezeigt. Ein Datenbankadministrator kann die Berichte außerdem detailliert betrachten, um sich auf eine bestimmte Abfrage oder einen bestimmten Vorgang zur weiteren Untersuchung sowie zur Erkennung und Behebung von Leistungsproblemen zu konzentrieren. Mit der Datensammlung, Aufbewahrung und Berichterstellung kann der Datenbankadministrator eine proaktive Überwachung der SQL Server in der Umgebung einrichten und Leistungsschwankungen im Überwachungszeitraum erkennen und bewerten. Das Datenauflister- und Verwaltungs-Data Warehouse-Feature wird in allen Versionen (außer SQL Server Express) von SQL Server 2008 unterstützt.

       Datenkomprimierung

Durch die einfache Verwaltung einer Datenbank besitzen Datenbankadministratoren bessere Möglichkeiten, ihre regulären Aufgabenlisten zu erfüllen. Mit immer größeren Tabellen, Indizes und Dateien und sehr großen Datenbanken (VLDBs) wird die Verwaltung von Daten und unhandlichen Dateigrößen zu einem immer größeren Problem. Da außerdem immer mehr Daten abgefragt werden, kann der Bedarf an größeren Mengen Speicherplatz oder die Notwendigkeit physischer E/A eine große Bürde für Datenbankadministratoren und ihre Organisationen darstellen. Dies führt häufig dazu, dass Datenbankadministratoren und ihre Organisationen Server mit mehr Arbeitsspeicher und/oder E/A-Bandbreite sichern oder Leistungseinbußen in Kauf nehmen müssen.

Die in SQL Server 2008 eingeführte Datenkomprimierung bietet eine Lösung für diese Probleme. Mit diesem Feature kann ein Datenbankadministrator Tabellen, Tabellenpartitionen oder Indizes komprimieren. Dies hat einen geringeren Speicherplatzbedarf auf dem Datenträger, eine geringere Workingsetgröße des Arbeitsspeichers und reduzierte E/A zur Folge. Die Komprimierung und Dekomprimierung beeinträchtigen die CPU. Diese Auswirkungen werden jedoch in vielen Fällen durch die E/A-Einsparungen ausgeglichen. In Konfigurationen mit E/A-Engpässen können aufgrund der Komprimierung auch Leistungssteigerungen eintreten.

Bei einigen Labortests führte die Aktivierung der Datenkomprimierung zu Einsparungen von 50 - 80 % des Speicherplatzes. Diese Einsparungen variierten deutlich. Bei Daten ohne viele sich wiederholende Werte oder bei Daten, bei denen die Werte sämtliche anhand des angegebenen Datentyps zugewiesene Bytes erfordern, waren nur minimale Einsparungen erkennbar. Außerdem wurden Arbeitsauslastungen gemessen, die keine Leistungszunahmen aufwiesen. Bei Daten mit vielen numerischen Daten und sich wiederholenden Werten konnten jedoch erhebliche Speicherplatzeinsparungen und Leistungszunahmen von wenigen Prozentpunkten bis hin zu 40 - 60 % bei einigen Beispielabfragen festgestellt werden.

SQL Server 2008 unterstützt zwei Komprimierungsarten: Zeilenkomprimierung, bei der die einzelnen Spalten einer Tabelle komprimiert werden, und Seitenkomprimierung, bei der Datenseiten mithilfe der Zeilen-, Präfix- und Wörterbuchkomprimierung komprimiert werden. Der Umfang der erreichten Komprimierung hängt in hohem Maße von den Datentypen und den Daten in der Datenbank ab. Im Allgemeinen haben wir festgestellt, dass die Zeilenkomprimierung geringere Auswirkungen auf den Anwendungsdurchsatz hat, aber weniger Speicherplatz einspart. Die Seitenkomprimierung hat andererseits größere Auswirkungen auf den Anwendungsdurchsatz und die Prozessornutzung, führt jedoch zu größeren Platzeinsparungen. Bei der Seitenkomprimierung handelt es sich um eine Überordnung der  Zeilenkomprimierung. Diese beinhaltet, dass die Zeilenkomprimierung auf Objekte oder Partitionen eines Objekts angewendet wird, die komprimiert werden sollen. Außerdem unterstützt SQL Server 2008 das vardecimal-Speicherformat von SQL Server 2005 SP2 nicht. Da es sich bei diesem Speicherformat jedoch um eine Unterordnung der Zeilenkomprimierung handelt, ist dieses Feature wertlos. Es wird daher aus künftigen Produktversionen entfernt.

Die Zeilen- und die Seitenkomprimierung können im Onlinemodus ohne Unterbrechung der Verfügbarkeit der Anwendung auf eine Tabelle oder einen Index angewendet werden. Eine Partition einer partitionierten Tabelle kann nicht online komprimiert oder dekomprimiert werden. Bei unseren Tests kam heraus, dass eine gemischte Vorgehensweise, bei der nur die größten Tabellen komprimiert werden, zur besten Leistung im Hinblick auf das Einsparen von Speicherplatz unter Inkaufnahme minimaler Leistungseinbußen führt. Aufgrund bestehender Anforderungen an den Speicherplatz, die dem zum Erstellen oder erneuten Erstellen eines Index erforderlichen Speicherplatz entsprechen, sollte bei der Implementierung der Komprimierung vorsichtig vorgegangen werden. Wir haben außerdem herausgefunden, dass der Bedarf an zusätzlichem Speicherplatz während des Komprimierungsvorgangs am geringsten ist, wenn von der Liste der zu komprimierenden Objekte die kleinsten Objekte zuerst komprimiert werden.

Die Datenkomprimierung kann über Transact-SQL oder den Datenkomprimierungs-Assistenten implementiert werden. Sie können die systemgespeicherte Prozedur sp_estimate_data_compression_savings verwenden, um die Auswirkungen der Komprimierung eines Objekts auf seine Größe zu bestimmen, oder den Datenkomprimierungs-Assistenten verwenden, um die geschätzten Speicherplatzeinsparungen zu berechnen. Die Datenbankkomprimierung wird nur in den SQL Server 2008-Editionen Enterprise und Developer unterstützt. Sie wird vollständig in die Datenbank implementiert und erfordert keine Änderungen an der Anwendung.

Weitere Informationen zur Verwendung der Komprimierung finden Sie unter Erstellen komprimierter Tabellen und Indizes.

 

      Richtlinienbasierte Verwaltung

 In zahlreichen Geschäftsszenarien müssen innerhalb eines bestimmten SQL Servers oder oft auch in einer Gruppe von SQL Servern bestimmte Konfigurationen verwaltet oder Richtlinien eingehalten werden. Ein Datenbankadministrator oder eine Organisation muss möglicherweise eine bestimmte Namenskonvention für alle zu erstellenden Benutzertabellen oder gespeicherten Prozeduren implementieren oder eine erforderliche Konfigurationsänderung auf zahlreichen Servern auf dieselbe Art definieren.

Die richtlinienbasierte Verwaltung bietet DBAs vielseitige Optionen zur Verwaltung ihrer Umgebung. Richtlinien können erstellt und auf ihre Einhaltung überprüft werden. Falls ein Ziel (wie z. B. ein SQL Server-Datenbankmodul, eine Datenbank, eine Tabelle oder ein Index) gegen eine Richtlinie verstößt, kann es vom Administrator automatisch neukonfiguriert werden, damit es die Richtlinie erfüllt. Außerdem sind mehrere Bewertungsmodi (viele davon automatisiert) vorhanden, mit denen der Datenbankadministrator die Einhaltung der Richtlinie prüfen und protokollieren kann. Außerdem kann er damit eine Benachrichtigung senden, wenn ein Richtlinienverstoß auftritt, und sogar einen Rollback für Änderungen durchführen, damit die Richtlinie weiter eingehalten wird. Weitere Informationen zu den Bewertungsmodi und deren Zuordnung zu Facets (ein Begriff der richtlinienbasierten Verwaltung, der auch im Blog erläutert wird) finden Sie im Blog zur richtlinienbasierten Verwaltung für SQL Server.

Die Richtlinien können exportiert und als XML-Dateien zur Bewertung und Implementierung auf mehreren Serverinstanzen importiert werden. Außerdem können in SQL Server Management Studio und in der Ansicht "Registrierte Server" Richtlinien serverübergreifend bewertet werden, falls sie unter einer lokalen Servergruppe oder einer zentralen Verwaltungsservergruppe registriert sind.

Nicht alle Funktionen der richtlinienbasierten Verwaltung können in früheren Versionen von SQL Server implementiert werden. Das Feature Berichterstellung kann jedoch in SQL Server 2005 und SQL Server 2000 verwendet werden. Weitere Informationen zur Verwaltung von Servern mithilfe der richtlinienbasierten Verwaltung finden Sie in der SQL Server-Onlinedokumentation unter Verwalten von Servern mit der richtlinienbasierten Verwaltung. Weitere Informationen über die Technologie selbst, einschließlich Beispielen, finden Sie im SQL Server 2008-Kompatibilitätshandbuch.

      Vorhersagbare Leistung und Parallelität

Die versuchte Unterstützung von SQL Servern mit ständig wechselnden Arbeitsauslastungen und das Erzielen eines gewissen vorhersagbaren Leistungsniveaus (oder das Minimieren der Varianz in Plänen und der Leistung) stellen ein erhebliches Problem für viele Datenbankadministratoren dar. Unerwartete Abfrageleistungen, Planänderungen und/oder allgemeine Leistungsprobleme können aufgrund zahlreicher Faktoren auftreten, wie beispielsweise erhöhte Auslastung der Anwendungen, die unter SQL Server ausgeführt werden, oder Versionsupgrades der Datenbank. Eine vorhersagbare Leistung für Abfragen und Vorgänge, die unter SQL Server ausgeführt werden, kann die Möglichkeiten des Datenbankadministrators zum Einhalten und Verwalten der Verfügbarkeits-, Leistungs- und/oder Geschäftskontinuitätsziele (OLAs oder SLAs) enorm verbessern.

SQL Server 2008 stellt einige Änderungen an Features bereit, mit denen sich die Leistung besser vorhersagen lässt. In SQL Server 2008 wurden Verbesserungen an den SQL Server 2005-Planhinweisen (oder der Planfixierung) vorgenommen. Außerdem steht eine neue Option zur Kontrolle der Sperrenausweitung auf Tabellenebene zur Verfügung. Beide Verbesserungen können zu einer besser vorhersagbaren und strukturierten Interaktion zwischen der Anwendung und der Datenbank führen.

Erstens: Planhinweislisten

SQL Server 2005 ermöglichte eine höhere Stabilität und Vorhersagbarkeit der Abfrageleistung, indem es ein neues Feature mit der Bezeichnung Planhinweislisten bereitstellt, um Hinweise für Abfragen anzugeben, die nicht direkt in der Anwendung geändert werden konnten. Weitere Informationen finden Sie im Whitepaper Forcing Query Plans  (möglicherweise in englischer Sprache). Obwohl es sich ume ein leistungsstarkes Feature handelt, unterstützte die USE PLAN-Abfrage  nur SELECT DML-Vorgängeund war aufgrund der Empfindlichkeit der Planhinweislisten hinsichtlich der Formatierung oft umständlich zu verwenden.

SQL Server 2008 erweitert den Planhinweislisten-Mechanismus in zweierlei Hinsicht: Er unterstützt den USE PLAN-Abfragehinweis zur Abdeckung aller DML-Anweisungen (INSERT, UPDATE, DELETE, MERGE) und führt das neue Feature Planfixierung ein, das zum direkten Erstellen einer Planhinweisliste (Fixierung) für sämtliche Abfragepläne im SQL Server-Plancache wie im folgenden Beispiel verwendet werden kann.

    sp_create_plan_guide_from_handle

    @name =  N'MyQueryPlan',

    @plan_handle = @plan_handle,

    @statement_start_offset = @offset;

Eine auf beliebige Art erstellte Planhinweisliste weist einen Datenbankbereich auf und wird in der Tabelle sys.plan_guides gespeichert. Planhinweislisten werden nur zur Beeinflussung des Auswahlprozesses für die Abfragepläne des Optimierers verwendet und ersetzen die Kompilierung der Abfrage in keiner Weise. Außerdem wurde die neue Funktion sys.fn_validate_plan_guide zur Prüfung vorhandener SQL Server 2005-Hinweislisten und zur Gewährleistung der Kompatibilität mit SQL Server 2008 eingeführt. Die Planfixierung ist in den SQL Server 2008-Editionen Standard, Enterprise und Developer verfügbar.

Zweitens: Sperrenausweitung

Die Sperrenausweitung hat oft zu Blockierungs- und manchmal gar zu Deadlockproblemen geführt, die der Datenbankadministrator lösen und beheben musste. Vorherige Versionen von SQL Server ermöglichten das Steuern der Sperrenausweitung (Ablaufverfolgungsflags 1211 und 1224). Dies war jedoch nur mit der Granularität der Instanzebene möglich. Während dies in einigen Anwendungen das Problem behoben hat, verursachte es in anderen schwere Fehler. Ein weiteres Problem mit dem SQL Server 2005-Sperrenausweitungsalgorithmus bestand darin, dass Sperren in partitionierten Tabellen direkt auf Tabellenebene statt auf Partitionierungsebene eskaliert wurden.

SQL Server 2008 bietet eine Lösung für beide Probleme. Eine neue Option zur Steuerung der Sperrenausweitung auf Tabellenebene wurde eingeführt. Mithilfe des Befehls ALTER TABLE kann für Optionssperren festgelegt werden, dass sie nicht eskalieren oder nur auf die Partitionsebene für partitionierte Tabellen eskalieren. Mit diesen beiden Verbesserungen werden die Skalierbarkeit und Leistung ohne negative Nebeneffekte auf andere Objekte in der Instanz optimiert. Die Sperrenausweitung wird auf Datenbankobjektebene festgelegt und erfordert keine Anwendungsänderungen. Sie wird in allen Editionen von SQL Server 2008 unterstützt.

       Ressourcenkontrolle

Das Beibehalten einer konsistenten Dienstebene durch Verhindern von Runaway-Abfragen und Garantieren von Ressourcen für unternehmenswichtige Arbeitslasten ist eine Herausforderung. In der Vergangenheit gab es keine Möglichkeit, einem Satz von Abfragen eine bestimmte Anzahl an Ressourcen zuzuweisen und den Zugriff zu priorisieren. Alle Abfragen hatten denselben Zugriff auf alle verfügbaren Ressourcen.

SQL Server 2008 führt ein neues Feature mit der Bezeichnung Resourcenkontrolle ein, das bei der Behandlung dieses Problems hilft, indem es Benutzern die Unterscheidung von Arbeitsauslastungen und die Zuweisung von Ressourcen je nach Anforderung ermöglicht. Begrenzungen der Ressourcenkontrolle können in Echtzeit einfach mit minimalen Auswirkungen auf gerade ausgeführte Arbeitsauslastungen neu konfiguriert werden. Die Zuweisung der Arbeitsauslastung zu einem Ressourcenpool kann auf Verbindungsebene konfiguriert werden. Der Prozess ist für die Anwendung vollständig transparent.

Im folgenden Diagramm ist der Prozess der Ressourcenzuweisung abgebildet. In diesem Szenario werden drei Arbeitsauslastungspools (Admin-Arbeitsauslastung, OLTP-Arbeitsauslastung und Bericht-Arbeitsauslastung) konfiguriert. Dem OLTP-Arbeitsauslastungspool wird eine hohe Priorität zugewiesen. Parallel dazu werden für zwei Ressourcenpools (Admin-Pool und Anwendungspool) wie angezeigt spezifische Einschränkungen für den Arbeitsspeicher und den Prozessor (CPU) konfiguriert. Als letzter Schritt werden die Admin-Arbeitsauslastung dem Admin-Pool und die OLTP- und Bericht-Arbeitsauslastungen dem Anwendungspool zugewiesen.

 

Zusätzlichee Punkte, die es bei der Verwendung der Ressourcenkontrolle zu beachten gilt.

-      Die Ressourcenkontrolle erfordert Anmeldeinformationen, einen Hostnamen oder Anwendungsnamen wie etwa eine Ressourcenpoolkennung. Die Verwendung eines einzelnen Logins für eine Anwendung erschwert je nach Anzahl der Clients pro Server das Erstellen von Pools.

-      Die Objektgruppierung auf Datenbankebene, in der die Ressourcenkontrolle basierend auf den Datenbankobjekten erfolgt, auf die verwiesen wird, wird nicht unterstützt.

-      Die Ressourcenkontrolle ermöglicht nur Ressourcenverwaltung innerhalb einer einzelnen SQL Server-Instanz. Zur Verwaltung mehrerer SQL Server-Instanzen oder -Prozesse innerhalb eines Servers von einer einzelnen Quelle aus sollte der Windows-Systemressourcenmanager verwendet werden.

-      Nur Prozessor- und Arbeitsspeicherressourcen können konfiguriert werden. E/A-Ressourcen können nicht gesteuert werden.

-      Dynamisch wechselnde Arbeitsauslastungen zwischen Ressourcenpools sind nach Verbindungsherstellung nicht möglich.

-      Die Ressourcenkontrolle wird nur in den SQL Server 2008-Editionen Enterprise und Developer unterstützt und kann nur für das SQL Server-Datenbankmodul verwendet werden. SQL Server Analysis Services (SSAS), SQL Server Integration Services (SSIS) und SQL Server Reporting Services (SSRS) können nicht gesteuert werden.

 

   Transparente Datenverschlüsselung (TDE; Transparent Data Encryption)

Sicherheit ist für viele Organisationen von höchster Bedeutung. Zum Sichern eines der wichtigsten Datenbestände einer Organisation, nämlich der Daten, stehen viele verschiedene Ebenen zur Verfügung. In den meisten Fällen sichern die Organisationen ihre aktiven Daten gut mithilfe physischer Sicherheit, Firewalls und genau kontrollierten Zugriffsrichtlinien. Wenn jedoch ein physisches Medium wie das Sicherungsband oder der Datenträger, auf dem sich die Daten befinden, kompromittiert wird, sind die obigen Sicherheitsmaßnahmen zwecklos, da ein Benutzer die Datenbank einfach wiederherstellen kann und dadurch vollständigen Zugriff auf die Daten erhält.

SQL Server 2008 bietet mit der transparenten Datenverschlüsselung (TDE) eine Lösung für dieses Problem. TDE führt die E/A-Verschlüsselung und -Entschlüsselung der Daten und der Protokolldateien unter Verwendung eines Verschlüsselungsschlüssels für die Datenbank (DEK; Database Encryption Key) in Echtzeit durch. Der DEK ist ein symmetrischer Schlüssel, der durch ein in der Masterdatenbank des Servers gespeichertes Zertifikat gesichert wird, oder ein asymmetrischer Schlüssel, der von einem erweiterbaren Schlüsselverwaltungs-Modul (EKM; Extensible Key Management) geschützt wird.

TDE soll "ruhende" Daten schützen. Das bedeutet, dass die in Dateien der Formate MDF, NDF und LDF gespeicherten Daten nicht mithilfe eines Hexeditors oder anderen Mitteln angezeigt werden können. Daten, die nicht ruhen, wie z. B. die Ergebnisse einer SELECT-Anweisung in SQL Server Management Studio, sind jedoch weiter für Benutzer sichtbar, die über die Rechte zum Anzeigen der Tabelle verfügen. Da TDE außerdem auf Datenbankebene implementiert wird, kann die Datenbank Indizes und Schlüssel zur Abfrageoptimierung nutzen. TDE sollte nicht mit einer Verschlüsselung auf Spaltenebene verwechselt werden. Dabei handelt es sich um eine separate Funktion, die auch eine Verschlüsselung von nicht ruhenden Daten ermöglicht.

Das Verschlüsseln einer Datenbank ist ein einmaliger Prozess, der über einen Transact-SQL-Befehl oder über SQL Server Management Studio initiiert werden kann und als Hintergrund-Thread ausgeführt wird. Der Verschlüsselungs- oder Entschlüsselungsstatus wird mit der dynamischen Verwaltungssicht sys.dm_database_encryption_keys überwacht. In einem von uns durchgeführten Labortest konnten wir eine 100-GB-Datenbank mithilfe des Verschlüsselungsalgorithmus AES_128 in etwa einer Stunde verschlüsseln. Während der Aufwand bei der Verwendung von TDE hauptsächlich durch die Arbeitsauslastung der Anwendung bestimmt wird, wurde der Aufwand in einigen durchgeführten Tests mit weniger als fünf Prozent gemessen. Folgende möglichen Auswirkungen auf die Leistung müssen ebenso beachtet werden: Falls auf eine Datenbank innerhalb der Instanz TDE angewendet wurde, ist auch die tempDB-Systemdatenbank verschlüsselt. Beim Kombinieren von Funktionen muss schließlich Folgendes beachtet werden:

·         Wenn die Sicherungskomprimierung zum Komprimieren einer verschlüsselten Datenbank verwendet wird, ist die Sicherungskomprimierung größer, als wenn die Datenbank nicht verschlüsselt wäre, da sich verschlüsselte Daten nicht gut komprimieren lassen.

·         Das Verschlüsseln der Datenbank hat keinerlei Auswirkungen auf die Datenkomprimierung (Zeile oder Seite).

TDE ermöglicht Organisationen das Einhalten von behördlichen Bestimmungen und der Bedenken im Zusammenhang mit Datenschutz. TDE wird nur in den SQL Server 2008-Editionen Enterprise und Developer unterstützt und kann ohne Ändern der vorhandenen Anwendungen aktiviert werden. Weitere Informationen finden Sie unter Database Encryption in SQL Server 2008 Enterprise Edition (möglicherweise in englischer Sprache) oder der Diskussion im SQL Server 2008-Kompatibilitätshandbuch unter Verwenden der transparenten Datenverschlüsselung.

 

Zusammenfassung: SQL Server 2008 bietet Features, Verbesserungen und Funktionen zur Optimierung der Datenbankadministratorerfahrung. Neben der Liste der zehn wichtigsten Funktionen oben sind in SQL Server 2008 viele weitere Features enthalten, mit denen die Erfahrung für Datenbankadministratoren und andere Benutzer verbessert wird. Top 10-Features für andere SQL Server-Bereiche finden Sie in den anderen SQL Server 2008-Top 10-Artikeln auf dieser Website. Eine vollständige Liste der Features und detaillierte Beschreibungen finden Sie in der SQL Server-Onlinedokumentation und auf der SQL Server 2008 Overview-Website.

 

Your comment has been posted.   Close
Thank you, your comment requires moderation so it may take a while to appear.   Close
Leave a Comment
  • Post
Page 1 of 1 (1 items)