Udostępnij za pośrednictwem


Za pomocą widoków podzielonym na partycje

Widoków podzielonych umożliwić danych w dużej tabela, aby podzielić na mniejsze tabele element członkowski.Dane jest podzielony na partycje między element członkowski tabele oparte na zakresów wartości danych w jednej z kolumn.Zakresy danych dla każdej tabela Członkowskich są zdefiniowane w określonych na ograniczenie CHECK kolumna partycjonowania.Widok, który używa UNION ALL, aby połączyć wybiera tabel Członkowskie pojedyncze zestaw wyników następnie jest zdefiniowana.Podczas odwoływania się do widoku instrukcji SELECT okreolony warunek wyszukiwania kolumna partycji, optymalizator kwerendy używa definicji ograniczenie wyboru do określenia, która tabela element członkowski zawiera wiersze.

Ostrzeżenie

Jest to preferowana metoda partycjonowanie danych lokalnych do jednego serwera tabel podzielonym na partycje.Aby uzyskać więcej informacji, zobacz Podzielonym na partycje tabel i indeksów.

Na przykład tabela sprzedaży, która rekordy sprzedaży dla 1998 zostały podzielone tabelach 12 element członkowski, jeden dla każdego miesiąca.Każda tabela element członkowski ma ograniczenie zdefiniowane na 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 upewnić się, że wszystkie wiersze miały 5 w OrderMonth kolumna i że data zamówienia określa datę w maju 1998 r..To jest wymuszane przez ograniczenia, zdefiniowane w tabela.

Widok zostanie zdefiniowane korzystającej z UNION ALL Aby wybrać dane ze wszystkich tabel Członkowskie 12 jako pojedynczego zestaw wyników:

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ący SELECT kwerend instrukcja, aby uzyskać informacje dotyczące określonych miesięcy.

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

SQL Serveroptymalizator kwerendy Rozpoznaje, że warunek wyszukiwania, w tym SELECT instrukcja odwołuje się tylko wiersze May1998Sales i Jun1998Sales tabele.Dlatego ogranicza wyszukiwania tych tabel.

Aby wykonać aktualizacje z widokiem podzielonym na partycje, partycjonowanie kolumna musi być częścią klucz podstawowy z tabela bazowa.Jeśli widok nie jest aktualizowalny, można utworzyć wyzwalacza INSTEAD OF na widok, który zezwala na aktualizacje.Należy zaprojektować obsługa błędów w wyzwalacz, aby upewnić się, że nie zduplikowane wiersze są wstawiane.Zobacz przykład wyzwalacza INSTEAD OF przeznaczone do widoku Projektowanie zamiast wyzwalaczy.

W widoku podzielonym na partycje przywrócić poprawne wyniki nie są potrzebne ograniczeń CHECK.Jednakże, jeśli nie określono ograniczenia CHECK, optymalizator kwerendy musi przeszukiwać wszystkich tabel zamiast tylko te, które obejmują warunek wyszukiwania na kolumna partycjonowania.Bez ograniczeń CHECK widok działa podobnie jak inne widok z Unii wszystkich.optymalizator kwerendy nie można wprowadzać żadnych założeń o wartości przechowywanych w różnych tabelach i nie można pominąć wyszukiwanie tabele uczestniczące w definicji widoku.

Jeśli wszystkie element członkowski tabel odwołuje się widokiem podzielonym na partycje są na tym samym serwerze, widok jest widokiem podzielonym na partycje lokalnych.Jeśli element członkowski tabele są na wielu serwerach, widok jest widokiem podzielonym na partycje rozproszonych.Rozproszone widoków partycji można rozłożyć obciążenie związane z przetwarzaniem bazy danych systemu całej grupy serwerów.Aby uzyskać więcej informacji, zobacz Serwery federacyjne bazy danych.

Widoków podzielonych ułatwiają utrzymanie element członkowski tabele niezależnie.Na przykład można wykonać na koniec okresu następujących:

  • Definicja widoku podzielonym na partycje dla bieżących wyniki można zmienić dodać najnowsze okresu i upuścić najstarsze okresu.

  • Można zmienić definicję widoku podzielonym na partycje dla ostatnich wyniki dodać okres usunięte tylko z bieżącego widoku wyniki.Wyświetlanie ostatnich wyniki można aktualizować usunąć i archiwizowanie najstarsze okres jego okładki.

Przy wstawianiu danych do widoków partycji sp_executesql systemowa procedura składowana mogą być używane do tworzenia instrukcji INSERT wykonanie planów, które mają znaczne ryzyko ponownego użycia w systemach z wielu użytkowników równocześnie.

Ostrzeżenie

Zbiorczego importowanie widokiem podzielonym na partycje jest obsługiwany przez obie bcp polecenia i WSTAW luzem i WSTAW...Wybierz * sprawozdań Z OPENROWSET(BULK...).Jednak wstawić wiele wierszy do wyświetlenia podzielonym na partycje przy użyciu WSTAW instrukcja.