Udostępnij za pośrednictwem


Projektowanie partycje do zarządzania podzbiory danych

Przez partycjonowanie tabela lub indeksu można przenieść podzbiory danych przy użyciu szybko i skutecznie Transact-SQL ALTER tabela...Instrukcja SWITCH w następujący sposób:

  • Dodawanie tabeli jako partycję do już istniejący tabela partycjonowana.

  • Przełączanie z jednej partycji tabela partycjonowana do innego.

  • Usuwanie partycji do pojedynczej tabela.

Scenariusze te może być przydatne, gdy chcesz dodać nowe dane do tabela partycjonowana i Usuń stare dane z tej samej tabela partycjonowana w regularnych odstępach czasu.Ta operacja może obejmować dużych lub małych ilości danych w różnych scenariuszach.Jeżeli nowe dane, które dodajesz do załadowania, wyczyścił lub przekształcone, mogą być traktowane jako oddzielne obiekt przed dodaniem go jako partycję.Stare dane mogą być archiwizowane lub składowania.Niezależnie od sposobu dużych lub małych kolekcja, transfer jest szybkie i skuteczne, ponieważ w odróżnieniu od instrukcja WSTAWIENIA do wybierz z danych nie jest fizycznie przeniesione.Tylko metadane, o którym jest zapisane zmiany z jednej partycji do innego.

Przykładowy scenariusz

W scenariuszu partycjonowanie z AdventureWorks2008R2 Przykładowa baza danych, Adventure Works Cycles archiwów stare dane z TransactionHistory tabela do TransactionHistoryArchive tabela przełączając partycje między dwoma tabelami.Mogą to zrobić, partycjonowanie TransactionHistory na TransactionDate pole.Zakres wartości dla każdej partycji jest jeden miesiąc.TransactionHistory tabela przechowuje roku najbardziej bieżące transakcje podczas TransactionHistoryArchive utrzymuje starsze transakcji.Przez partycjonowanie tabel w ten sposób pojedynczy miesięcznej roku starych danych mogą być przenoszone z TransactionHistory do TransactionHistoryArchive co miesiąc.

Na początku każdego miesiąca, najwcześniej miesiąc danych jest aktualnie w TransactionHistory tabela jest przełączane TransactionHistoryArchive tabela.Aby wykonać to zadanie, mają miejsce następujące zdarzenia:

  1. TransactionHistoryArchive tabela musi mieć ten sam schemat projektu jako TransactionHistory tabeli.Należy również pustą partycję, aby otrzymać nowe dane.W takim przypadek TransactionHistoryArchive jest tabela partycjonowana , składa się z dwóch partycji.Jedna partycja przechowuje wszystkie dane przed września 2003 r. i innych partycja przechowuje wszystkie dane z września 2003 r. i udostępnienia.Ten ostatni jest pusta.

    Struktura tabel przed przełączeniem partycjonowania

  2. Funkcja partycji TransactionHistoryArchive zmodyfikowania tabela podzielić jej pustą partycję na dwa z jednym partycje, definicja odbieranie nowej partycji danych września 2003 r.

    Pierwszy krok przełączania partycjonowania

  3. Pierwsza partycja z TransactionHistory przełączania do drugiej partycji z tabela, która zawiera wszystkie dane utworzone podczas września 2003 r., TransactionHistoryArchive tabela.Należy zauważyć, że ograniczenie typu check, musi być zdefiniowana na TransactionHistory tabela, aby określić dane nie wcześniej niż 1 września (TransactionDate >= '9/01/2003').To ograniczenie sprawia, że partycja 1 zawiera tylko dane z września 2003 r. i jest gotowy do przełączania do gospodarstwa tylko dane września 2003 r. z partycji TransactionHistoryArchive tabela.Należy zauważyć również, że żadnych indeksów, które nie są wyrównane z ich odpowiednich tabel muszą być usunięte lub wyłączone przed do przełącznika.Mogą jednak być odtworzony po przełączniku.Aby uzyskać więcej informacji o wyrównanie indeksy podzielonym na partycje, zobacz Specjalne wytyczne dla indeksów podzielonym na partycje.

    Drugi krok przełączania partycjonowania

  4. Funkcja partycji TransactionHistory zmodyfikowania tabela scalić jego pierwsze dwie partycje jednej partycji.Tej partycji, teraz partycji 1, zawiera wszystkie dane utworzone w październiku 2003 roku i będzie gotowy do przełączania się w TransactionHistoryArchive w następnym miesiącu, pod warunkiem, że istniejące ograniczenia check jest zmieniony aby określić dane nie wcześniej niż 1 października (TransactionDate >= '10/01/2003').

    Trzeci krok przełączania partycjonowania

  5. Funkcja partycji TransactionHistoryArchive próbę zmodyfikowania tabela scalić jego drugiej partycji, która zawiera dane września, który został dodany, z jego pierwszą partycją.Ta akcja powoduje TransactionHistoryArchive tabela z powrotem do jego oryginalnego stanu, w którym jego pierwszą partycją przechowuje wszystkie dane i jego drugiej partycji jest pusty.

    Czwarty krok przełączania partycjonowania

  6. Funkcja partycji TransactionHistory tabela jest modyfikowany ponownie podzielić na dwie partycje jego ostatniej partycji, tak, aby najbardziej bieżący miesiąc jest oddzielony od poprzedniego miesiąca, a partycja jest gotowy do odbierania nowych danych.

    Piąty krok przełączania partycjonowania

Dla Transact-SQL skrypt, który implementuje ten scenariusz Zobacz ReadMe_SlidingWindow próbki.Informacje dla próbek, zobacz Zagadnienia dotyczące instalowania przykładów i przykładowych baz danych programu SQL Server.