Udostępnij za pośrednictwem


Designing Partitions to Manage Subsets of Data

Przez podział tabela lub indeks, możesz przenieść podzbiór danych przy użyciu szybko i efektywnie Transact-SQL Instrukcja ALTER tabela... przełącznik w następujący sposób:

  • Dodawanie tabela jako partycję do już istniejącej tabela w podzielonym na partycje.

  • Przełączanie partycję z jednej tabela partycjonowana.

  • Usuwanie partycji w celu utworzenia jednej tabela.

Scenariusze te mogą być przydatne podczas dodawania nowych danych do tabela partycjonowana, a następnie usuń stare dane z tej samej tabela partycjonowana w regularnych odstępach czasu.Ta operacja może obejmować duże lub małe ilości danych w różnych scenariuszach.Jeżeli nowe dane, które dodajesz do załadowania, wyczyszczonym lub transformacji, to mogą być traktowane jako odrębną jednostkę przed dodaniem go jako partycję.Stare dane mogą być archiwizowane lub składowania.Niezależnie od sposobu duże lub małe kolekcja, przeniesienie jest szybki i skuteczny, ponieważ w odróżnieniu od instrukcja INSERT INTO SELECT FROM dane nie są fizycznie przeniesione.Tylko metadane o tym, gdzie jest on zmiany przechowywanej z jedną partycję na inny.

Przykład scenariusza: AdventureWorks

W scenariuszu partycjonowanie na partycje z AdventureWorks Przykładowa baza danych Adventure Works Cycles Archiwa stare dane z TransactionHistory tabelaTransactionHistoryArchive tabela po przełączeniu partycje między dwoma tabelami.Są to zrobić przez partycjonowanie TransactionHistory on the TransactionDate pole.Zakres wartości dla każdej partycji jest jeden miesiąc.The TransactionHistory tabela maintains the year's most current transactions, while TransactionHistoryArchive maintains older transactions.Przez Partycjonowanie tabel w ten sposób, nadaje się na jeden miesiąc roku życia danych mogą być przenoszone z TransactionHistory to TransactionHistoryArchive co miesiąc.

Na początku każdego miesiąca, miesiąc najwcześniejszą danych jest aktualnie in TransactionHistory przełączeniu do tabelaTransactionHistoryArchive tabela.Aby wykonać to zadanie, mają miejsce następujące zdarzenia:

  1. The TransactionHistoryArchive tabela must have the same design schema as the TransactionHistory tabela.Należy również pustą partycję do odbierania nowych danych.W takim przypadek TransactionHistoryArchive jest podzielone na partycje tabela, która składa się z dwóch partycji.Jedna partycja przechowuje wszystkie dane przed wrzesień 2003, a inne partycja zawiera wszystkie dane z września 2003 i udostępnienia.Ta ostatnia partycja jest pusty.

    Structure of tables before partitioning switching

  2. Funkcja partycji TransactionHistoryArchive tabela jest modyfikowany podzielić na dwie z jednej z partycji do odbierania nowej partycji dla danych września 2003 jego pustą partycję.

    First step of partitioning switching

  3. Na pierwszej partycji z TransactionHistory przełączeniu na drugą partycję tabela, która zawiera wszystkich danych utworzonych w trakcie wrzesień 2003,TransactionHistoryArchive tabela.Należy zwrócić uwagę, że na należy zdefiniować ograniczenie typu check TransactionHistory tabela, aby określić dane nie wcześniej niż 1 września (TransactionDate >= '9/01/2003'). To ograniczenie sprawia, że partycji 1 zawiera wyłącznie dane września 2003 i jest gotowy do przełączania się na partycji, zawierających tylko dane września 2003 z TransactionHistoryArchive tabela.Należy pamiętać także, że wszystkie indeksy, które nie są wyrównane do ich w odpowiednich tabelach muszą być usunięte lub wyłączone przed do przełącznika.Mogą jednak być odtworzony po przełączniku.Aby uzyskać więcej informacji na temat dostosowania indeksów podzielonym na partycje Zobacz Special Guidelines for Partitioned Indexes.

    Second step of partitioning switching

  4. Funkcja partycji TransactionHistory tabela jest zmodyfikowane tak, aby scalić jej pierwsze dwa partycji w jedną partycję.Tej partycji, teraz partycja 1, zawiera wszystkie dane utworzone w październiku 2003, a będzie gotowy przełączyć się do TransactionHistoryArchive następny miesiąc dostarczone istniejące ograniczenia check zostanie zmieniona, aby określić dane nie wcześniej niż 1 października (TransactionDate >= '10/01/2003').

    Third step of partitioning switching

  5. Funkcja partycji TransactionHistoryArchive tabela jest modyfikowany ponownie scalić jego drugiej partycji, która zawiera dane września, który został dodany, z jego pierwszej partycji.Ta akcja powoduje TransactionHistoryArchive tabela powrócić do stanu pierwotnego przechowuje jego pierwszej partycji wszystkie dane i jego drugą partycję jest pusta.

    Fourth step of partitioning switching

  6. Funkcja partycji TransactionHistory tabela modyfikowane są ponownie podzielić na dwie partycje jego ostatniej partycję, tak, aby najbardziej bieżącego miesiąca jest oddzielona od poprzedniego miesiąca, a partycja jest gotowy do odbierania nowych danych.

    Fifth step of partitioning switching

Z pełną Transact-SQL skrypt do wykonywania tego scenariusza można znaleźć pod adresem ReadMe_SlidingWindow.