© best_vector/Shutterstock.com
Windows Developer
Zusätzliche Optionen und Wartung von Indizes

Effektivität von Indizes steigern

Im ersten Teil dieser Serie wurden die klassischen gruppierten und nicht gruppierten Indizes sowie abdeckende und gefilterte Indizes und indizierte Sichten behandelt. Die meisten dieser Indexformen bieten zahlreiche Optionen an, mit denen sich die Indizes noch effektiver nutzen lassen. Aber auch die Wartung von Indizes und Indexstatistiken darf nicht außer Acht gelassen werden.

Robert Panther


Video: Applying Microservices on the Microsoft Platform

ArtikelkastenTeil 1: Index-Basics (klassische Indexvarianten)Teil 2: Zusätzliche Optionen und Wartung von IndizesTeil 3: Indexformen für spezielle VerwendungszweckeTeil 4: Spaltenbasierte Indizes und Fazit

Zwischen den Themen Indexoptionen und Wartung von Indizes besteht ein direkter Zusammenhang, da sich einige Optionen unmittelbar darauf auswirken, wie häufig eine Wartung notwendig wird.

Indexoptionen werden bereits bei der Erstellung von Indizes mit der Zusatzklausel WITH definiert, der dann in runden Klammern die Auflistung der eigentlichen Optionen folgt. Beginnen wir der Einfachheit halber mit einer Option, die unabhängig von der Indexwartung sinnvoll einsetzbar ist.

Indexkomprimierung

Seit SQL Server 2008 gibt es – zumindest ab der Enterprise-Edition – die Möglichkeit, Indizes zu komprimieren. Das hat unmittelbar zur Folge, dass mehr Daten in eine Speicherseite passen und sie damit auch weniger Platz auf dem Datenträger benötigen. Indirekt bewirkt dies aber auch, dass mehr Daten im Hauptspeicher (Buffer-Cache) zwischengespeichert werden können und somit weniger Plattenzugriffe notwendig sind. Allerdings bringt die Komprimierung auch einen Nachteil mit sich. Das ständige Komprimieren und Dekomprimieren der Daten kostet zusätzliche Prozessorzeit. In der Praxis erweisen sich jedoch meist die Festplattenzugriffe als Flaschenhals, während die CPUs nur selten voll ausgelastet sind. Somit kann man die zusätzlich erforderliche Prozessorzeit getrost in Kauf nehmen, sofern man über eine Enterprise Edition verfügt. Die Komprimierung von Indizes wird mit der Option WITH (DATA_COMPRESSION = ) definiert, wobei folgende Komprimierungsarten unterstützt werden [1]:

NONE – keine Komprimierung (Default).ROW – zeilenbasierte Komprimierung, bei der die Daten innerhalb einer Zeile komprimiert werden. Dabei werden Spalten mit Datentypen fester Länge intern mit variabler Länge gespeichert, um nicht genutzten Platz freizugeben. Bei alphanumerischen Datentypen variabler Länge (varchar/nvarchar) hat diese Art der Komprimierung keine Auswirkungen.PAGE – seitenbasierte Komprimierung, die zusätzlich zur zeilenbasierten Komprimierung noch zwei weitere Kompressionsalgorithmen anwendet, die zeilenübergreifend komprimieren. So wird mit der Präfixkomprimierung pro Spalte ein Präfix ermittelt, zu dem dann pro Zeile lediglich noch die Unterschiede gespeichert werden müssen. Anschließend wird eine Wörterbuc...

Windows Developer
Zusätzliche Optionen und Wartung von Indizes

Effektivität von Indizes steigern

Im ersten Teil dieser Serie wurden die klassischen gruppierten und nicht gruppierten Indizes sowie abdeckende und gefilterte Indizes und indizierte Sichten behandelt. Die meisten dieser Indexformen bieten zahlreiche Optionen an, mit denen sich die Indizes noch effektiver nutzen lassen. Aber auch die Wartung von Indizes und Indexstatistiken darf nicht außer Acht gelassen werden.

Robert Panther


Video: Applying Microservices on the Microsoft Platform

ArtikelkastenTeil 1: Index-Basics (klassische Indexvarianten)Teil 2: Zusätzliche Optionen und Wartung von IndizesTeil 3: Indexformen für spezielle VerwendungszweckeTeil 4: Spaltenbasierte Indizes und Fazit

Zwischen den Themen Indexoptionen und Wartung von Indizes besteht ein direkter Zusammenhang, da sich einige Optionen unmittelbar darauf auswirken, wie häufig eine Wartung notwendig wird.

Indexoptionen werden bereits bei der Erstellung von Indizes mit der Zusatzklausel WITH definiert, der dann in runden Klammern die Auflistung der eigentlichen Optionen folgt. Beginnen wir der Einfachheit halber mit einer Option, die unabhängig von der Indexwartung sinnvoll einsetzbar ist.

Indexkomprimierung

Seit SQL Server 2008 gibt es – zumindest ab der Enterprise-Edition – die Möglichkeit, Indizes zu komprimieren. Das hat unmittelbar zur Folge, dass mehr Daten in eine Speicherseite passen und sie damit auch weniger Platz auf dem Datenträger benötigen. Indirekt bewirkt dies aber auch, dass mehr Daten im Hauptspeicher (Buffer-Cache) zwischengespeichert werden können und somit weniger Plattenzugriffe notwendig sind. Allerdings bringt die Komprimierung auch einen Nachteil mit sich. Das ständige Komprimieren und Dekomprimieren der Daten kostet zusätzliche Prozessorzeit. In der Praxis erweisen sich jedoch meist die Festplattenzugriffe als Flaschenhals, während die CPUs nur selten voll ausgelastet sind. Somit kann man die zusätzlich erforderliche Prozessorzeit getrost in Kauf nehmen, sofern man über eine Enterprise Edition verfügt. Die Komprimierung von Indizes wird mit der Option WITH (DATA_COMPRESSION = ) definiert, wobei folgende Komprimierungsarten unterstützt werden [1]:

NONE – keine Komprimierung (Default).ROW – zeilenbasierte Komprimierung, bei der die Daten innerhalb einer Zeile komprimiert werden. Dabei werden Spalten mit Datentypen fester Länge intern mit variabler Länge gespeichert, um nicht genutzten Platz freizugeben. Bei alphanumerischen Datentypen variabler Länge (varchar/nvarchar) hat diese Art der Komprimierung keine Auswirkungen.PAGE – seitenbasierte Komprimierung, die zusätzlich zur zeilenbasierten Komprimierung noch zwei weitere Kompressionsalgorithmen anwendet, die zeilenübergreifend komprimieren. So wird mit der Präfixkomprimierung pro Spalte ein Präfix ermittelt, zu dem dann pro Zeile lediglich noch die Unterschiede gespeichert werden müssen. Anschließend wird eine Wörterbuc...

Neugierig geworden?


   
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang