Udostępnij za pośrednictwem


Korzystanie z widoków podzielonym na partycje

Widoki na podzielonym na partycje pozwalają dane w dużej tabela można podzielić na mniejsze tabele element członkowski.Dane są podzielone na partycje między tabelami element członkowski opartych na zakresach danych wartości w jednej z kolumn.Zakresy danych dla każdej tabela element członkowski są zdefiniowane w określone na ograniczenie typu CHECK partycjonowanie kolumny.Widok, który używa UNION ALL do łączenia powoduje zaznaczenie wszystkich tabelach element członkowski zestaw wyników jednego następnie jest zdefiniowany.Gdy instrukcje SELECT odwołują się do widoku określony warunek wyszukiwania kolumna partycji, optymalizator kwerendy używa definicji ograniczenia wyboru do określenia, która tabela element członkowski członkowski zawiera wiersze.

Uwaga

Hiszpański (Urugwaj)Aby uzyskać więcej informacji zobaczTabele podzielonym na partycje i indeksów.

Na przykład tabela sprzedaży zawierające rekordy sprzedaży 1998 jest podzielony na partycje w tabelach 12 element członkowski, jeden dla każdego miesiąca. Każda tabela element członkowski członkowski ma ograniczenie zdefiniowane w OrderMonth kolumna:

CREATE TABLE May1998sales
   (OrderID      INT,
   CustomerID      INT      NOT NULL,
   OrderDate      DATETIME      NULL
      CHECK (DATEPART(yy, OrderDate) = 1998),
   OrderMonth      INT
      CHECK (OrderMonth = 5),
   DeliveryDate      DATETIME      NULL
      CHECK(DATEPART(mm, DeliveryDate) = 5)
   CONSTRAINT OrderIDMonth PRIMARY KEY(OrderID, OrderMonth)
   )

Aplikacja, która wypełnia May1998sales należy się upewnić, że wszystkie wiersze miały 5 w OrderMonth Kolumna i czy data zamówienia określa datę w maja 1998 r. To jest wymuszane przez ograniczeń zdefiniowanych w tabela.

Widok jest następnie zdefiniowane korzystające UNION ALL Aby wybrać dane ze wszystkich tabel 12 element członkowski jako zestaw pojedynczy wynik:

CREATE VIEW Year1998Sales
AS
SELECT * FROM Jan1998Sales
UNION ALL
SELECT * FROM Feb1998Sales
UNION ALL
SELECT * FROM Mar1998Sales
UNION ALL
SELECT * FROM Apr1998Sales
UNION ALL
SELECT * FROM May1998Sales
UNION ALL
SELECT * FROM Jun1998Sales
UNION ALL
SELECT * FROM Jul1998Sales
UNION ALL
SELECT * FROM Aug1998Sales
UNION ALL
SELECT * FROM Sep1998Sales
UNION ALL
SELECT * FROM Oct1998Sales
UNION ALL
SELECT * FROM Nov1998Sales
UNION ALL
SELECT * FROM Dec1998Sales

Na przykład następujące SELECT Instrukcja kwerendy, aby uzyskać informacje dotyczące określonych miesięcy.

SELECT *
FROM Year1998Sales
WHERE OrderMonth IN (5,6) AND CustomerID = 64892

The SQL Server optymalizator kwerendy recognizes that the warunek wyszukiwania in this SELECT instrukcja references only rows in the May1998Sales and Jun1998Sales tables. Dlatego też ogranicza wyszukiwanie do tych tabel.

Do przeprowadzania aktualizacji z widokiem podzielonym na partycje, kolumna partycjonowania musi być częścią klucz podstawowy tabela bazowa.Jeśli widok nie jest możliwa, można utworzyć wyzwalacz Z INSTEAD w widoku, która umożliwia aktualizacje.Należy zaprojektować obsługi do wyzwalacza, aby upewnić się, że nie zduplikowane wiersze są wstawiane błędów.Przykład wyzwalacz Z INSTEAD przeznaczone do widoku można znaleźć w temacie Designing INSTEAD OF Triggers.

Ograniczenia CHECK nie są wymagane dla widoku podzielonym na partycje, aby przywrócić poprawne wyniki.Jeżeli nie zdefiniowano ograniczeń typu CHECK, optymalizator kwerendy musi przeszukiwać wszystkie tabele zamiast tylko te, które obejmują warunek wyszukiwania kolumna partycjonowanie na partycje.Bez ograniczeń CHECK widok działa podobnie jak inne widoki z UNION ALL.optymalizator kwerendy nie może wprowadzić żadnych założeń dotyczących wartości przechowywane w różnych tabelach i nie można pominąć, wyszukiwanie tabele uczestniczące w definicji widoku.

W przypadku wszystkich tabel element członkowski członkowski odwołuje się widokiem podzielonym na partycje na tym samym serwerze, widok jest widokiem podzielonym na partycje lokalnych.W przypadku tabel element członkowski na wielu serwerach, widok jest widokiem podzielonym na partycje rozproszonych.Rozproszonych widoki podzielonym na partycje może służyć do rozprzestrzeniania się obciążeniu przetwarzania bazy danych systemu całej grupie serwerów.Aby uzyskać więcej informacji zobaczFederated Database Servers.

Widoki na podzielonym na partycje należy zachować tabele element członkowski członkowski niezależnie.Na przykład można wykonać na koniec okresu następujących:

  • Dodawanie najnowsze okresu i upuścić najstarsze okres można zmienić definicję widoku podzielonym na partycje dla bieżących wyniki.

  • Definicja widoku podzielonym na partycje dla poprzednich wyniki mogą być zmieniane dodać okres, po prostu usunięte z bieżącego widoku wyniki.Ostatnich widoku wyniki mogą być aktualizowane także usunąć i archiwizowanie najstarsze okres jego okładki.

Przy wstawianiu danych do widoków podzielonym na partycje, sp_executesql systemowa procedura składowana można używać do tworzenia instrukcji INSERT z plany wykonania, które mają znaczący szansę na użyty ponownie, w systemach z wielu użytkowników równocześnie.

Uwaga

Nie zbiorczego importowanie widokiem podzielonym na partycje jest obsługiwany przez oba BCP polecenie i BULK INSERT a INSERT...Zawsze zwraca wartość NULLJednak wstawić wiele wierszy do wyświetlenia podzielonym na partycje przy użyciu WSTAWIANIE instrukcja.