Partitionierung in der AdventureWorks2008R2-Beispieldatenbank
SQL Server enthält zwei Transact-SQL-Beispielskripts, die für die AdventureWorks2008R2-Beispieldatenbank ausgeführt werden können, um ein Partitionierungsszenario zu implementieren. Informationen zum Installieren und Ausführen der Skripts Readme_PartitioningScript und ReadMe_SlidingWindow finden Sie unter Überlegungen zum Installieren der SQL Server-Beispiele und -Beispieldatenbanken.
Beim ersten Skript (PartitionAW.sql) werden die AdventureWorks2008R2-Tabellen TransactionHistory und TransactionHistoryArchive partitioniert. Die TransactionHistory-Tabelle enthält Umsatzdatensätze für das aktuelle Jahr. Diese Tabelle wird hauptsächlich für das Einfügen neuer Datensätze sowie des Aktualisieren der Datensätze bei Bedarf verwendet. Die TransactionHistoryArchive-Tabelle enthält Umsatzdatensätze, die älter als das aktuelle Jahr sind. Diese Tabelle wird hauptsächlich für SELECT-Abfragen sowie als Stagingtabelle zum Verschieben von Daten in ein Data Warehouse verwendet. Weitere Informationen zum Partitionierungsentwurf dieser Tabellen finden Sie unter Planungsrichtlinie für partitionierte Tabellen und Indizes.
In einem tatsächlichen Szenario wären die TransactionHistory- und TransactionHistoryArchive-Tabellen wahrscheinlich die beiden größten Tabellen der Datenbank. Durch Partitionieren dieser beiden Tabellen können Untermengen mit monatlichen Daten zwischen den beiden Tabellen verwaltet werden. Monatlich werden die Daten aus dem ältesten Monat aus der TransactionHistory- in die TransactionHistoryArchive-Tabelle verschoben. Auf diese Weise bleiben die Daten in TransactionHistory für INSERT- und UPDATE-Operationen aktuell, während die älteren Daten zu Bereinigungs- und Analysezwecken in TransactionHistoryArchive verschoben werden. Da die Tabellen partitioniert sind, werden für die Übertragung der monatlichen "Teilmengen" der Daten zwischen den Tabellen in der Regel nur Sekunden benötigt, nicht Minuten oder Stunden wie in früheren Versionen. Der Grund liegt darin, dass es sich nur um eine Metadatenoperation handelt; die Daten werden nicht physikalisch verschoben.
Das zweite Skript, Sliding.sql, implementiert dieses Szenario mit einem "variablen Fenster" für die Datenmenge eines Monats. Weitere Informationen zur Funktionsweise dieses Skripts finden Sie unter Entwerfen von Partitionen zum Verwalten von Datenteilmengen.