Interpreting Execution Plans Containing Bitmap Filters

Plany wykonanie kwerendy równoległych, które korzystania z filtrowania mapy bitowej jest Mapa bitowa operator w co najmniej jeden podmiot gospodarczy poddrzewa.Filtr Mapa bitowa używa compact reprezentacji zestaw wartości z tabela w jednej z części drzewa operator, aby odfiltrować wiersze z drugiej tabela w innej części drzewa.Usuwając zbędne wiersze na początku kwerendy kolejne operatory ma mniejszą liczbę wierszy do pracy z i zwiększa ogólną wydajność kwerendy.

W SQL Server 2008, mapa bitowa filtrowania mogą zostać wprowadzone w planie równoległych kwerendy po optymalizacji, jak w SQL Server 2005, lub dynamicznie wprowadzone przez optymalizator kwerendy podczas generowania planu kwerendy. Jeśli filtr zostanie wprowadzona dynamicznie, to jest określana jako zoptymalizowane filtru mapy bitowej.Plan kwerend może zawierać oba filtry mapy bitowej i zoptymalizowany filtry mapy bitowej.optymalizator kwerendy decyduje o tym, kiedy mapy bitowej filtr lub filtr zoptymalizowane mapy bitowej jest wystarczająco selektywnego, użyteczne i w których operatorów stosowany jest filtr.Aby uzyskać więcej informacji zobaczOptimizing Data Warehouse Query Performance Through Bitmap Filtering.

Podczas analizowania plan wykonania zawierające filtrowanie mapy bitowej, ważne jest zrozumieć, w jaki sposób dane wczytywane za pomocą planu i których zastosowano filtrowanie.Filtr mapy bitowej i zoptymalizowany mapy bitowej jest tworzony po stronie wejścia (tabela wymiarów) kompilacji łączyć mieszania; jednak rzeczywista filtrowania jest zazwyczaj określany w ramach Proste operator, który znajduje się na sondy dane wejściowe (tabela fakt) po stronie łączyć mieszania.Jednak gdy filtr mapy bitowej jest oparty na kolumna liczb całkowitych, filtr mogą być stosowane bezpośrednio do wstępnego operację skanowania tabela lub indeksu a nie Proste operator.Ta metoda jest nazywana optymalizacji w wierszu.

Przeglądanie filtrów map bitowych w Showplans

Aby wyświetlić mapę bitową filtry planu kwerend, należy użyć opcji zestaw SHOWPLAN_ALL, SHOWPLAN_TEXT lub SHOWPLAN_XML, lub kliknij przycisk Zawierają rzeczywiste plan wykonanie in SQL Server Management Studio.

plan wykonania XML jest produkowany, mapa bitowa fizyczne i logiczne operatory wymienione w następujący sposób:

<RelOp NodeId = "2" PhysicalOp = "Mapa bitowa" LogicalOp = EstimateRows "Tworzenie mapy bitowej" = "88" EstimateIO = "0" EstimateCPU = "0.0718125" AvgRowSize = EstimatedTotalSubtreeCost "6893" = "0.229385" równoległe = EstimateRebinds "1" = "0" EstimateRewinds = "0">

Operator, w których stosowany jest filtr mapa bitowa zawiera nazwę mapy bitowej w Sonda kolumna właściwość.

Operator, w których stosowany jest filtr zoptymalizowane mapa bitowa zawiera predykat map bitowych w formularzu PROBE([Opt_Bitmap1001], {[nazwa_kolumny} [, "W WIERSZU „]).Predykat mapy bitowej raporty dotyczące następujących informacji:

  • Nazwa mapy bitowej, która odpowiada nazwa wprowadzona w Tworzenie map bitowych operator.Prefiks "Opt_" wskazuje, że filtr zoptymalizowane mapy bitowej jest używany.

  • kolumna sondowany przed.Jest to punkt, z którego filtrowane dane wczytywane w drzewie.

  • Czy sondy mapy bitowej jest wykonywane w wierszu.Przy optymalizacji w wierszu sondy mapy bitowej jest wywoływana z parametrem wiersz W.W przeciwnym wypadku ten parametr jest brak.

Przykład

W poniższym przykładzie pokazano, w jaki sposób zoptymalizowany mapy bitowej filtrowania jest używany w planu wykonania.Wymiar dwóch tabel DimProduct i DimCustomer Dołącz do tabela fakt FactInternetSales za pomocą łączyć podstawowy klucz do klucz obcego kolumna jednej liczby całkowitej.

USE AdventureWorksDW;
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 następującej ilustracji pokazano, że filtr zoptymalizowane mapy bitowej jest tworzony w poddrzewa operator z obu tabel wymiarowych po zeskanowaniu tabela wymiarów i informacje niezbędne do wyeliminowania nie kwalifikujących się wiersze z tabeli fakt jest znany.Filtr jest następnie stosowana do tabela fakt w najbliższej lokalizacji, możliwe, Skanowanie tabela operator.Stosowanie filtru jest wyświetlana w sekcji predykatu właściwości skanowanie tabela.Informacje wyświetlane w predykacie wskazuje zarówno zoptymalizowane pod Opt_Bitmap1008 i Opt_Bitmap1009 są używane w celu ograniczenia liczby wierszy zwracanych z filtrami mapy bitowej tabela fakt.W kolumnach sondowany przed w tabela fakt są wyświetlane jako [F]. [CustomerKey] i [F]. [ProductKey].Parametr w wiersz jest wyświetlany, wskazujący, że optymalizacji w wierszu jest używany w procesie.Optymalizacja w wierszu nie jest możliwe, mapa bitowa filtrowanie odnosi się do Proste operator.

SQL Server query plan with bitmap filters.

Oparty na rysunku, można wykonać następujące wyniki:

  • Zoptymalizowane mapy bitowej filtry są tworzone w dwóch poddrzewa.

  • Oba filtry są stosowane dynamicznie do jednego (Skanowanie tabela) operator.

  • Filtr zoptymalizowane mapy bitowej szacowana jest najbardziej selektywnego zaimplementowano najpierw.

  • W kolumnach, na którym są sprzężone tabele wymiarów w tabela fakt umożliwia użycie optymalizacji one wiersza.Oznacza to w sprzężeniu jest oparty na całkowitą pojedynczej kolumna.

  • Filtr jest stosowany w punkcie tak szybko, jak to możliwe w kwerendzie, co w ograniczonej liczby wierszy, wynikających z Skanowanie tabela operacji przez pozostałe operatory w drzewie.