Test

Erste Eindrücke vom Microsoft SQL Server 2008

28.08.2008 von Christian Bäcker
Microsoft empfiehlt seine Datenbank inzwischen auch für das geschäftskritische Backend großer Unternehmen. Die Neuerungen im "SQL Server 2008" sollen diesen Anspruch unterstreichen.

Microsoft hat im August den SQL Server 2008 offiziell freigegeben. Ursprünglich sollte die neue Version der Datenbank bereits im Februar zusammen mit Windows Server 2008 und Visual Studio 2008 erscheinen. Da SQL Server inzwischen jedoch eine Schlüsselposition in Microsofts Server-Landschaft ausfüllt, haben sich die Entwickler etwas mehr Zeit genommen, um das Produkt in möglichst hoher Qualität auszuliefern.

Sicherheit und Compliance

Zur Verwaltung des SQL Server mussten Administratoren bisher viele Aufgaben manuell oder mit individuellen Skripten erledigen. Das hat sich geändert, Administration und Wartung wurden mit vielen neuen Funktionen deutlich verbessert. Das beginnt schon bei der Installation, die jetzt zum Beispiel die Möglichkeit bietet, die Speicherorte für Datenbank- und Transaktionsprotokoll-Dateien vorab festzulegen. Eine wichtige Neuerung in diesem Bereich ist die Richtlinienverwaltung, über die man Server-Richtlinien etwa zur Einhaltung von wichtigen Datenbankeinstellungen oder Namenskonventionen festlegen kann. Die Richtlinien zu allen Datenbankoptionen lassen sich übersichtlich über das "Management Studio" erstellen und auch per Skript in andere Datenbanken einspielen.

Im Compliance-Sinn wichtig ist auch die nun integrierte Funktion zur Überwachung von Datenbankänderungen. Mit der so genannten Änderungsnachverfolgung lassen sich Modifikationen an Tabellen wie das Hinzufügen einer Tabellenspalte protokollieren. Sind allerdings gesetzliche Regelwerke wie Basel II einzuhalten, reicht die Änderungsnachverfolgung nicht aus. Deshalb hat Microsoft den SQL Server mit Auditing-Funktionen ausgestattet, über die sich jegliche Zugriffe und Änderungen am System nachvollziehen lassen. Die zu protokollierenden Informationen werden entweder über das Management Studio oder direkt über T-SQL konfiguriert. Über die Richtlinienverwaltung ist dann wiederum gewährleistet, dass alle Datenbanken mit den korrekten Audit-Einstellungen laufen.

Um weiteren Sicherheitsanforderungen zu genügen, bietet der SQL Server 2008 mit der "Transparent Data Encryption" die Möglichkeit, Datenbanken auch nachträglich vollständig zu verschlüsseln. Die Daten werden somit vor unberechtigtem Zugriff geschützt. Die Verschlüsselung erfolgt transparent im SQL Server, so dass Änderungen an bestehenden Anwendungen nicht notwendig sind. Zusätzlich wurden die bestehenden Verschlüsselungsfunktionen um das "Extensible Key Management" ergänzt, mit dem externe Verschlüsselungstechnologien im SQL Server genutzt werden können.

Verwaltung und Überwachung

Zur Verwaltung mehrerer SQL-Server-Instanzen können Administratoren einen Konfigurations-Server anlegen und verschiedene Instanzen zu Server-Gruppen zusammenfassen. Damit lassen sich unter anderem vom Management Studio aus Multiserver-SQL-Abfragen auf allen Servern gleichzeitig vornehmen. Dazu muss man allerdings auf allen Instanzen die Windows-Authentifizierung verwenden.

Zur Überwachung der Server-Auslastung bietet das System die "Performance Data Collection", mit der sich wesentliche Informationen zur Auslastung, Datenbankgröße oder Anzahl der Transaktionen historisch in einem Performance Warehouse erfassen und über Berichte auswerten lassen. Besonders bei hohen Systemlasten hat dies den Vorteil, mögliche Probleme schneller analysieren und beheben zu können. In diesem Zusammenhang ist auch der "Resource Governor" eine nützliche Ergänzung. Er weist bestimmten Benutzern oder Gruppen innerhalb einer SQL-Server-Instanz verschiedene Systemressourcen wie CPU-Zeit oder freien Arbeitsspeicher prozentual über so genannte Ressourcen-Pools zu.

Eine weitere Neuerung sind die integrierten Komprimierungsfunktionen, da die zu speichernden Datenmengen in der Regel immer stärker anwachsen. Zum einen besteht die Möglichkeit, die Daten einer Datenbank direkt zu komprimieren, was Speicherplatz spart, allerdings mehr CPU-Last verursacht. Zum anderen lassen sich die oft großen Backups unmittelbar bei der Erstellung komprimieren. Bisher waren hierzu Tools von Drittanbietern notwendig.

Für regelmäßige Auswertungen stehen im Management Studio eine Reihe von integrierten Standardberichten zur Verfügung, die zum Beispiel Auskunft über die Anzahl der laufenden Transaktionen geben und sich durch benutzerdefinierte Berichte erweitern lassen. Die "Reporting Services" sind dafür keine Voraussetzung. Verzichten muss man im Management Studio allerdings weiterhin auf Funktionen zum Vergleich zweier Datenbanken, auf skriptfähige Datenimport- und Exportmöglichkeiten sowie auf eine leistungsfähige Darstellung von Datenbankdiagrammen. Bei Bedarf ist hier weiterhin die Anschaffung von Drittanbieter-Tools nötig.

Entwicklung

Das zentrale Werkzeug für die Entwicklung bleibt weiterhin das Management Studio. Neben den bereits erwähnten neuen Funktionen hat Microsoft die aus Visual Studio bekannte "Intellisense"-Technik integriert, mit der sich Code automatisch vervollständigen lässt. In Visual Studio funktioniert Intellisense sehr gut, im Management Studio ist diese Funktion aber noch nicht ausgereift und arbeitet nicht immer zufrieden stellend. Zum Teil überflüssige Vorschläge sind hier ein Beispiel.

Bei den Erweiterungen der Datentypen und "Transact-SQL" (T-SQL) bringt die Datenbank interessante Neuerungen mit sich, auf die viele Entwickler lange gewartet haben. Besonders bei der Speicherung von Datums- oder Zeitangaben bedurfte es einiger Tricks, da der SQL Server bisher nur die kombinierten Datentypen "datetime" und "smalldatetime" kannte. Hier wollte Microsoft nun alles richtig machen und spendierte dem System die vier neuen Datentypen "Date", "Time", "Datetime2" sowie "Datetimeoffset", so dass sich nun Zeit- und Datumsangaben getrennt abspeichern lassen.

Neue Datentypen

Da immer mehr Anwendungen geografische Informationen verwenden, hat der SQL Server die zwei Datentypen "Geometry" und "Geography" für den Umgang mit Geodaten erhalten. Geometry speichert die Informationen nach dem Standard des Open Geospatial Consortium (OGC), Geography nach Längen- und Breitenangaben, also analog zum GPS-Standard.

Schließlich gibt es noch "HierarchyID" als neuen Datentyp, um hierarchische Beziehungen wie zum Beispiel Organisationsstrukturen speichern zu können. Er wurde als .NET-Datentyp realisiert, die Syntax für seine Benutzung ist allerdings etwas gewöhnungsbedürftig, da sie nicht der üblichen T-SQL-Syntax entspricht und die Groß- und Kleinschreibung beachtet werden muss. Auch Geometry und Geography sind als .NET-Datentypen implementiert. Ihre ursprüngliche Beschränkung von maximal 8 KB wurde auf 2 GB erweitert. Bisher fanden die .NET-Datentypen allerdings nur wenig Beachtung, obwohl das Konzept sehr interessant ist. Da viele Entwickler lieber relationale Strukturen verwenden, anstatt diese in einem benutzerdefinierten .NET-Datentyp zu implementieren, bleibt abzuwarten, ob sich diese durchsetzen werden.

Zur Speicherung unstrukturierter Daten wie Fotos oder Videos bietet der SQL Server die Erweiterung "Filestream" an. Mit dieser Funktion werden die Dateien direkt im Dateisystem gespeichert, aber vollständig durch den SQL Server verwaltet. Daraus ergeben sich eine transaktionale Konsistenz, ein einheitliches Berechtigungskonzept, ein schneller Datenzugriff und ein einheitliches Backup-Konzept. BLOBs (Binary Large Objects) können natürlich weiterhin direkt in der Datenbank gespeichert werden. Microsoft empfiehlt die Nutzung von Filestream, wenn die Daten im Schnitt größer als 1 MB sind und ein schneller Zugriff erfolgen soll.

Stored Procedures

Unter den T-SQL-Erweiterungen bietet der SQL Server 2008 neben kleineren Detailverbesserungen zwei interessante Neuerungen. Bei den Stored Procedures konnten bisher nur skalare Datentypen als Ein- oder Ausgabeparameter (mit Ausnahme von Zeigern) verwendet werden. Nun lassen sich auch ganze Tabellen als Parameter übergeben, was die Entwicklung wesentlich vereinfacht. Die zweite Neuheit ist der "Merge"-Befehl, der die Befehle "Insert", "Update" und "Delete" verbindet und ETL-Transformationen klarer strukturieren und beschleunigen kann.

Mit von der Partie ist auch die Language Integrated Query (LINQ), die .NET 3.5 mitbringt. Dabei handelt es sich um eine Spracherweiterung für C# und VB.NET, mit der unter anderem SQL-Abfragen nicht mehr als einfache Zeichenketten, sondern in einer SQL-ähnlichen Syntax implementiert werden. Die Vorteile liegen dabei in der Überprüfbarkeit der Syntax zur Übersetzungszeit und der einfachen Implementierung. Wenn man also innerhalb der Datenbank Extended Stored Procedures mit .NET implementieren will, dann ist dies mit Hilfe von LINQ schnell möglich.

Reporting und Analyse

Die "Reporting Services" wurden erstmals in Version 2005 von SQL Server eingeführt und dienen dem Erstellen, Verwalten und Bereitstellen von Berichten. Die wohl interessanteste Neuerung betrifft die Installation der Reporting Services. Denn diese benötigen in Version 2008 keinen separaten Internet Information Store (IIS) auf dem Server. Viele Administratoren werden diesen Schritt begrüßen, da die zusätzliche Installation des IIS häufig als Sicherheitsrisiko angesehen wurde.

Die Berichtserstellung erfolgt standardmäßig mit Visual Studio 2008, welches optional installiert werden kann. Die Oberfläche orientiert sich an der Vorgängerversion, die allerdings bei der Erstellung von komplexen Berichten durchaus verbesserungswürdig ist. In einem noch für dieses Jahr geplanten Feature Pack wird Microsoft aber einen neuen Report Builder ähnlich dem von Office 2007 präsentieren, der eine komfortable Alternative zur Arbeit mit Visual Studio 2008 bietet.

Zur Erstellung von Berichten gab es bisher die Tabellen- oder Matrixdarstellung mit ihren jeweiligen Möglichkeiten. Neu im SQL Server 2008 ist das "Tablix"-Steuerelement, das beide Wege vereint und somit letztlich eine Kreuztabelle mit dynamischen Zeilen und Spalten repräsentiert. Ebenfalls hinzugekommen ist eine Vielzahl grafischer Diagramm-Steuerelemente, mit denen sich die Berichte grafisch aufwerten lassen. Microsoft hat sie vom Datenvisualisierungsspezialisten Dundas übernommen, der die Elemente bereits für die Reporting Services 2005 im Angebot hatte.

Die Anzeige der Berichte erfolgt Browser-gestützt über den Berichts-Manager. Bei der Darstellung gibt es keine Änderungen, allerdings wurden die Exportfunktionen verbessert. Der häufig benutzte Excel-Export funktioniert nun deutlich besser als in der Vorgängerversion. Neu ist auch die Möglichkeit, Berichte direkt nach Word zu exportieren.

Molap Writeback

Die Verarbeitung von multidimensionalen Daten aus Olap-Cubes erfolgt durch die "Analysis Services", die unter diesem Namen seit dem SQL Server 2000 existieren. Die Verbesserungen hier wirken sich in erster Linie positiv auf die Abfragegeschwindigkeit und den Speicherplatzverbrauch aus. Außerdem lassen sich komplexere Cubes mit mehr Dimensionen und Aggregationen erstellen. Ebenfalls neu ist die Möglichkeit des "Molap Writeback", also des Zurückschreibens von Daten in Olap-Cubes, was zum Beispiel in Planungsszenarien benötigt wird. Bisher ging dies nur mit Rolap-Cubes, die eine deutlich langsamere Abfragegeschwindigkeit aufweisen. Bei der Erstellung von Olap-Cubes in Visual Studio helfen dem Entwickler ein verbesserter Cube Wizard und über 40 Best-Practice-Tipps, die automatisch eingeblendet werden, wenn ein Design nicht optimal gelingt.

Integration

Bei den "Integration Services" standen vor allem Performance-Verbesserungen im Vordergrund. So wurden unter anderem die parallele Ausführbarkeit und die Abarbeitung großer Pakete deutlich verbessert. Das Transformationselement Suche (Lookup) ist mit einem neuen "Cache Connection Manager" versehen, der die Benutzung und Wiederverwendung der Daten innerhalb verschiedener Datenflüsse ermöglicht. Hieraus ergeben sich große Geschwindigkeitsverbesserungen, da relevante Daten nur einmal geladen werden müssen.

Bisher verfügten die Integration Services über keine Funktion, um die Datenqualität zu messen. Abhilfe schafft nun die Datenprofilerstellungs-Task, die eine XML-Datei zu den eingelesenen Quelldaten erzeugt. Sie lässt sich mit dem "Data Profile Viewer" lesen und auswerten. Der Funktionsumfang ist aber bei weitem nicht so umfangreich, wie ihn externe Datenqualitäts-Tools bieten.

Vor der jetzigen Version konnten eigene Skripte in den Integration Services nur mit VB.NET entwickelt werden. Diese Beschränkung wurde aufgehoben: Die gesamte Schnittstelle basiert nun auf VSTA, so dass neben VB.NET auch C# verwendet werden kann.

Upgrade auf SQL Server 2008?

Für Unternehmen, die den SQL Server 2005 einsetzen, bestehen derzeit keine zwingenden Gründe zu einem schnellen Upgrade. Demnächst wird das Service Pack 3 veröffentlicht, und der Microsoft-Support endet erst 2011.

Für Nutzer des SQL Server 2000 sieht dies anders aus. Für diese Version hat Microsoft den offiziellen Support im April 2008 eingestellt. Hier sollten die Verantwortlichen bald handeln, falls noch kein Upgrade geplant ist.

Um zu testen, ob es bei einer Migration auf die neue Version zu Schwierigkeiten kommt, hilft der bereits aus dem SQL Server 2005 bekannte Update-Ratgeber. Das Tool scannt die zu prüfende Datenbank und zeigt alle Problemstellen in einem Bericht an. Der Update-Ratgeber kann sowohl die Datenbank selbst als auch die Reporting Services, Analysis Services und Integration Services des SQL Server 2000 und 2005 überprüfen.

Wer ein Upgrade auf den SQL Server 2005 plant, sollte dennoch die neuen Funktionen des SQL Server 2008 genauer analysieren. Kann er sie gebrauchen, sollte er Release 2005 überspringen und gleich auf die neue Version migrieren.

Fazit

Microsoft möchte mit dem SQL Server 2008 an den Erfolg der Vorgängerversionen anknüpfen und den beiden Hauptkonkurrenten Oracle und IBM weitere Marktanteile abnehmen. Angesichts der einfachen Bedienung, der vielen neuen Funktionen und Detailverbesserungen sind dafür die Chancen gut. Bei den Lizenzkosten ist Microsoft ohnehin bereits deutlich günstiger als die Mitbewerber, und Open-Source-Alternativen kommen bei weitem nicht an den Funktionsumfang der Datenbank heran.

Die fünf Editionen