Nützliche Funktionen von SQL Server 2012, die Sie kennen sollten

Microsoft SQL Server 2012 kommt mit zahlreichen Neuerungen, von denen Entwickler und Administratoren gleichermaßen profitieren.

SQL Server 2012 hat reichlich Neues für jeden zu bieten, von Entwicklern bis zu Administratoren. So gibt es mehrere Features für Hochverfügbarkeit und Datenbank-Administration, die den zuständigen Fachleuten sehr helfen können. Wir wollen uns hier mit vier der neuen Features beschäftigen: mehr Optionen für Online-Indizierung, Hinzufügen neuer Spalten ohne Sperren von Tabellen, eine höhere Zahl an erlaubten Partitionen und Nutzer-definierte Server-Rollen.

Mehr Daten-Typen für Online-Indizierung unterstützt

Online-Indizierung ist ohne Zweifel ein hervorragendes Feature für Datenbanken, die durchgehend verfügbar sein müssen, denn damit können Sie einen Index neu aufbauen oder hinzufügen, ohne die Tabelle zu sperren. Allerdings wurden bislang viele Datentypen dafür nicht unterstützt. Mit SQL Server 2012 steigt die Zahl der online indizierbaren Datentypen, so dass das Verfahren für zusätzliche Tabellen in Frage kommt. Zu den neu erlaubten Typen zählen varchar(max), nvarchar(max) und XML.

Dies ist eine sehr interessante Neuerung. Ich bin aber sicher, dass es vielen Nutzern von SQL Server lieber gewesen wäre, wenn das Feature Online-Indizierung in der Standard Edition verfügbar gemacht worden wäre, so wie es bei der Backupkomprimierung beim Schritt von SQL Server 2008 zu SQL Server 2008 R2 der Fall war. Leider wurde hier anders entschieden, so dass Online-Indizierung weiterhin nur in der Enterprise Edition verfügbar ist.

Hinzufügen einer Spalte mit Standard-Wert ist jetzt eine reine Metadaten-Operation

Haben Sie schon einmal versucht, in einer sehr großen Tabelle eine Spalte hinzuzufügen, in der keine Nullen erlaubt sind? Dann wissen Sie wahrscheinlich, dass das sehr lange dauert, denn SQL Server muss dafür jede Zeile erweitern und dort den Standardwert einfügen. Wenn eine Daten-Seite nicht noch sehr viel Platz hat, muss SQL Server sie zudem aufteilen und einen Teil der Seiten auf die neue Seite verschieben. All das kann bei sehr großen Tabellen mehrere Stunden in Anspruch nehmen. In dieser Zeit ist die Tabelle gesperrt und nicht verfügbar. Aus diesem Grund lassen sich derartige Operationen nur vornehmen, wenn die Tabelle nicht in Gebrauch ist.

Für Anwender mit 24/7-Betrieb kann das sehr schwierig sein. Mit SQL Server 2012 jedoch wird es zu einer reinen Metadaten-Operation, wenn Sie einen Index mit einem Standardwert hinzufügen – unter bestimmten Bedingungen geht es also schnell. Beim Standardwert muss es sich um eine Runtime-Konstante handeln, er muss also bei jeder Evaluierung des Ausdrucks denselben Wert liefern. Die zweite Bedingung: Das Verfahren funktioniert nur bei Basis-Datentypen, nicht bei den folgenden: varchar(max), nvarchar(max), varbinary(max), xml, text, ntext, image, hierarchyid, geometry, geography und CLR UDTS. Zudem ist das Feature nur in der Enterprise Edition enthalten.

Zahl der erlaubten Partitionen steigt auf 15.000

Tabellenpartitionierung ist ein praktisches Feature zur Skalierung, besonders geeignet für große Tabellen mit Milliarden von Zeilen. Solche riesigen Datenmengen zu verwalten, indem man kleinere Partitionen hinzufügt und entfernt, macht diese Aufgabe deutlich einfacher. Bei der vorigen Version von SQL Server war die Zahl der Tabellenpartitionen noch auf 1.000 beschränkt. Das klingt nach viel, konnte aber trotzdem behindern. Wenn Sie zum Beispiel nach Tagen partitionieren, kann Ihre so aufgeteilte Tabelle nur die Daten von knapp drei Jahren aufnehmen. Die Erhöhung von 1.000 auf 15.000 Partitionen macht jetzt deutlich längere Reihen mit täglichen Partitionen möglich.

Vielleicht erinnern Sie sich an eines der neuen Features der Daten-Engine von SQL Server 2012: ein spaltenorientierter Index, durch den Abfragen unter bestimmten Bedingungen hundertfach schneller laufen. Allerdings gibt es dabei die Beschränkung, dass Tabellen mit spaltenorientiertem Index schreibgeschützt sind. Deshalb ist es nur möglich, eine solche Tabelle zu aktualisieren, indem man eine Partition erstellt, Daten in sie einträgt und sie dann in die Tabelle integriert. Partitionierung ist also ein Workaround für den Schreibschutz, so dass sie häufiger gebraucht wird. Vor diesem Hintergrund ist die Erhöhung der Maximalzahl ebenfalls hilfreich.

Nutzer-definierte Server-Rollen

In früheren Versionen von SQL Server konnten Sie individuelle Datenbank-Rollen erstellen, aber keine Server-Rollen. In SQL Server war ein Satz von Rollen enthalten, die von Microsoft definiert waren, aber die passten nicht immer zu den Bedürfnissen in bestimmten Umgebungen. Jetzt können Sie selbst eine neue Rolle erstellen und ihr eine oder mehrere Berechtigungen für bestimmte Operationen geben. Der neuen, individuellen Rolle können Sie dann Mitglieder zuweisen oder die Mitglieder anderer Rollen auf sie übertragen.

Eine gute Einsatzmöglichkeit für diese Funktion: Sie können damit mehrere individuelle Server-weite Rollen mit einer begrenzten Zahl an Berechtigungen für Junior-Administratoren einrichten. Wenn diese Administratoren dann erfahrener und vertrauter mit der Umgebung werden und die nächste Stufe angehen, können Sie Ihnen leicht mehr Rechte geben. Dazu müssen Sie sie nur zu Mitgliedern einer anderen individuellen Rolle mit zusätzlichen Berechtigungen machen.

Alle diese neuen Features von SQL Server tragen dazu bei, dass mehr Optionen und mehr Flexibilität zur Verfügung stehen. Dies hilft dabei, SQL Server für Anwendungen hochverfügbar zu machen und Server-seitige Berechtigungen flexibler zu definieren.

Artikel wurde zuletzt im Juni 2013 aktualisiert

Erfahren Sie mehr über Datenbanken

- GOOGLE-ANZEIGEN

ComputerWeekly.de

Close