Interpretowanie wykonanie planów zawierające filtry bitmapy
Plany wykonywanie równoległych kwerendy używające filtrowanie bitmapy mapy bitowej operator w jeden lub więcej poddrzewa operator.Filtr mapy bitowej używa compact reprezentacja zestaw wartości z tabela w jednej części drzewa operator, aby odfiltrować wiersze z drugiej tabela w innej części drzewa.Usuwając zbędne wiersze na początku kwerendy kolejnych operatorzy mają mniejszą liczbę wierszy do pracy z i zwiększa ogólną wydajność kwerendy.
W SQL Server 2008, filtrowanie bitmapy mogą zostać wprowadzone w plan kwerend równoległe po optymalizacji, jak w SQL Server 2005, lub dynamicznie wprowadzonych przez optymalizator kwerendy w trakcie generowania planu kwerend.Gdy filtr zostanie wprowadzona dynamicznie, mówi się jako Zoptymalizowane filtr bitmap.Planu kwerend może zawierać oba filtry bitmapowe i zoptymalizowany filtry bitmapy.optymalizator kwerendy określa, kiedy filtr mapy bitowej lub filtr zoptymalizowane bitmap jest wystarczająco selektywne, użyteczne i w których podmioty gospodarcze stosowany jest filtr.Aby uzyskać więcej informacji, zobacz Optymalizacja wydajności kwerendy magazynu danych poprzez filtrowanie bitmapy.
Analizowanie plan wykonania zawierające filtrowanie bitmapy, jest zrozumieć, jak dane przepływa przez plan i gdzie zastosowano filtrowanie.Filtr mapy bitowej i zoptymalizowane mapy bitowej jest tworzony na kompilacji wejściowe ( tabela wymiarów) boku hash łączyć; Jednakże rzeczywista filtrowanie odbywa się zwykle w równoległości prostych operator na wprowadzania sondy ( tabela fakt) boczne łączyć mieszania.Jednakże, gdy filtr bitmap oparte na całkowitą kolumna, filtr można zastosować bezpośrednio do zainicjowania operacji skanowania tabela lub indeksu, a nie Parallelism operator.Ta technika jest zwana optymalizacji w wierszu.
Wyświetlanie filtrów bitmapy w Showplans
Aby wyświetlić filtry bitmapy planu kwerend, użyj opcji zestaw SHOWPLAN_ALL, SHOWPLAN_TEXT lub SHOWPLAN_XML, lub kliknij przycisk Obejmują rzeczywiste wykonanie planu w SQL Server Management Studio.
Showplan XML jest produkowany, bitmapy fizyczne i logiczne operatory wymienione w następujący sposób:
<RelOp NodeId="2" PhysicalOp="Bitmap" LogicalOp="Bitmap Create" EstimateRows="88" EstimateIO="0" EstimateCPU="0.0718125" AvgRowSize="6893" EstimatedTotalSubtreeCost="0.229385" Parallel="1" EstimateRebinds="0" EstimateRewinds="0">
Operator, w których stosowany jest filtr mapa bitowa zawiera nazwę bitmapy w Probe Column właściwość.
Predykat bitmapy w formularzu SONDY zawiera operator, w których stosowany jest filtr zoptymalizowane bitmap ([Opt_Bitmap1001] {[column_name} [, "W wierszu"]).Predykat bitmapowych raporty dotyczące następujących informacji:
Nazwa mapy bitowej, który odpowiada nazwie wprowadzone w Bitmap Create operator.Prefiks 'opt_' Wskazuje, że używany jest filtr zoptymalizowane bitmap.
Kolumna sondowany przeciwko.Jest to punkt, z którego filtrowanych danych przepływa przez drzewo.
Czy wykonać sondy bitmapy w wierszu.Użyto optymalizacji w wierszu sondy mapy bitowej jest wywoływana z parametrem w wierszu.W przeciwnym wypadku ten parametr jest brak.
Przykład
Poniższy przykład ilustruje, jak zoptymalizowane bitmapy filtrowania jest używany w plan wykonania.Wymiar dwóch tabel DimProduct i DimCustomer przyłączyć do tabela fakt FactInternetSales za pomocą łączyć klucz do obcy klucz podstawowego na całkowitą pojedynczej kolumna.
USE AdventureWorksDW2008R2;
GO
SELECT *
FROM dbo.FactInternetSales AS F
INNER JOIN dbo.DimProduct AS D1 ON F.ProductKey = D1.ProductKey
INNER JOIN dbo.DimCustomer AS D2 ON F.CustomerKey = D2.CustomerKey
WHERE D1.StandardCost <= 30 AND D2.YearlyIncome <= 50000;
Na poniższej ilustracji przedstawiono utworzony filtr bitmap zoptymalizowanych w poddrzewie operator tabele wymiar po zeskanowaniu tabela wymiarów i informacje niezbędne do wyeliminowania-kwalifikujących się wiersze z tabela fakt jest znany.Filtr jest następnie stosowana do tabela fakt w Najwcześniejsza możliwa lokalizacja Skanowanie tabeli operator.Stosowanie filtru wyświetlane w sekcji predykat właściwości tabeli skanowania.Informacje wyświetlane w predykacie wskazuje, że zarówno zoptymalizowany bitmapy filtry Opt_Bitmap1008 i Opt_Bitmap1009 służą do liczbę wierszy zwracanych z tabela fakt.Kolumny sondowany przeciwko w tabela fakt są wyświetlane jako [F].[CustomerKey] i [F].[ProductKey].Parametru w wierszu jest wyświetlany, wskazujący, że optymalizacji w wierszu jest używany w procesie.Optymalizacja w wierszu nie jest możliwe, filtrowanie bitmapy jest stosowane do Parallelism operator.
Oparty na rysunku, można dokonać następujących wniosków:
Zoptymalizowane bitmapy filtry są tworzone w dwóch poddrzew.
Oba filtry są stosowane dynamicznie do pojedynczego (Table Scan) operator.
Filtr zoptymalizowane bitmap szacuje się najbardziej selektywne zaimplementowano najpierw.
Kolumny, które tabele wymiar są przyłączone do tabela fakt pozwala na używanie optymalizacji jest wiersz.Oznacza to, że łączyć opiera się na całkowitą pojedynczej kolumna.
Filtr jest stosowany w punkcie możliwie najwcześniejszej w kwerendzie, powodując zmniejszenie liczby wierszy wypływających z Table Scan operacji przez pozostałe podmioty w drzewie.