Udostępnij za pośrednictwem


Troubleshooting Bitmap Filter Selectivity Problems

Filtrowanie map bitowych może znacznie poprawić wydajność kwerendy magazyn danych, które za pomocą schematów gwiazdy przez usunięcie wierszy innych niż kwalifikujących się na początku tego planu kwerend.Zmniejsza to wierszy, przekazywane za pomocą operator łączyć i wszystkie kolejne operatory spowodowało kwerendy lepsze czasy odpowiedzi.W SQL Server 2008, mapa bitowa filtrowania mogą być wprowadzone w planie kwerendy po optymalizacji 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.Aby uzyskać więcej informacji na temat filtrowania map bitowych zobacz Optimizing Data Warehouse Query Performance Through Bitmap Filtering.

Problemy z wydajnością charakterystyczne dla map bitowych filtrowanie występuje tylko wtedy, gdy filtr mapy bitowej staje się nonselective.Filtr nonselective mapy bitowej tworzy zbędne obciążenie w przetwarzania kwerendy i zamiast zwiększania wydajności, mogą spowodować, że kwerendy do wykonywania wolniej.

Diagnozowanie i rozwiązywanie Nonselective filtry map bitowych

Aby zdiagnozować i rozwiązać kwerendę wydajności problemów związanych z nonselective mapy bitowej filtry, wykonaj następujące kroki:

  1. Identyfikator kwerendy, które powodują problem z wydajnością.

    Użycie SQL Server Profiler Aby zidentyfikować wolne kwerendy lub kwerend. Aby uzyskać więcej informacji zobaczUsing SQL Server Profiler.Można również analizować wydajność kwerendy przedstawiając Showplan, która może być tekst, XML lub graficzną reprezentację plan wykonania kwerend generowanych przez optymalizator kwerendy.Aby uzyskać więcej informacji zobacz SET SHOWPLAN_TEXT (Transact-SQL), XML Showplans, a Displaying Graphical Execution Plans (SQL Server Management Studio).

  2. Sprawdzenie, czy kwerendy przy użyciu filtrów mapy bitowej.

    Możesz przechwycić planów kwerend za pomocą sys.dm_exec_query_plan (Transact-SQL) i sys.dm_exec_query_stats (Transact-SQL) Aby sprawdzić, czy w kwerendzie użyto faktycznie filtry mapy bitowej. Alternatywnie można wyszukiwać filtry mapy bitowej plan wykonania XML lub graficzny wykonanie planu kwerend.Aby uzyskać więcej informacji zobaczInterpreting Execution Plans Containing Bitmap Filters.

  3. Sprawdź, czy filtrowanie mapy bitowej jest przyczyną problemu z wydajnością.

    Filtrowanie mapy bitowej jest stosowana tylko w planach równoległych kwerendy, w których wartości mieszania lub korespondencji seryjnej sprzężenia są używane.Filtrowanie zoptymalizowane mapy bitowej jest stosowana tylko w planach równoległych kwerendy, w których mieszania sprzężenia są używane.Aby sprawdzić, czy filtr mapy bitowej jest wpływ na wydajność kwerendy, należy ręcznie wyłączyć filtrowanie poprzez określenie wskazówka łączyć LOOP w instrukcja kwerendy mapy bitowej.To zmusza optymalizator, aby wybrać typ łączyć określonego zamiast łączyć mieszania.Można także wyłączyć zoptymalizowane mapy bitowej filtrowania poprzez określenie wskazówka łączyć korespondencji SERYJNEJ w instrukcja kwerendy.Aby uzyskać więcej informacji na temat korzystania z tych wskazówek zobacz Join Hints (Transact-SQL) i Query Hints (Transact-SQL).

  4. Użyj zdarzenie śledzenia Ostrzeżenie map bitowych śledzić kwerendy, w którym mapa bitowa filtry są wyłączone.

    Domyślnie optymalizator kwerendy automatycznie powoduje wyłączenie mapy bitowej nonselective filtrów.Jeśli zdarzenie śledzenia uruchomieniu, należy wyeliminować powodów, dla których filtr mapy bitowej stał się nonselective.Mapa bitowa filtru nie selektywności mogą mieć następujące przyczyny:

    • Niewłaściwa relacja oszacowań przez optymalizator kwerendy.

      SQL Server szacuje cardinalities przede wszystkim z histogramy tworzonych podczas indeksy lub statystyki są tworzone, ręcznie lub automatycznie.Statystyki nieaktualne i brak indeksów może spowodować, że prognozy jest niepoprawny, czego wynikiem obliczenia niedokładne kosztów, które mogą być przyczyną planów kwerend suboptimal.Tworzenie indeksów przydatne lub statystyki na kolumny, które uczestniczą w kwerendzie.Aby uzyskać więcej informacji zobaczTroubleshooting Poor Query Performance: Cardinality Estimation.

    • Ciśnienie pamięci w systemie.

      W systemie silnie załadowany pod ciśnieniem pamięci kwerendy z filtrami map bitowych w planie kwerendy można usunąć operator mapy bitowej podczas kwerendy nie pobieraj minimalnej wymaganej pamięci do utworzenia mapy bitowej.Monitor systemu może służyć do monitorowania wydajności SQL Server i składniki serwera SQL, które mogą być przyczyną ciśnienia pamięci w systemie. Na przykład, można użyć Obiekt Menedżera pamięci monitorowania całkowitego wykorzystania pamięci serwera.Aby uzyskać więcej informacji zobaczMonitoring Resource Usage (System Monitor).Aby uzyskać informacje dotyczące rozwiązywania problemów ciśnienia pamięci Zobacz Rozwiązywanie problemów z wydajnością w programie SQL Server 2005.

    • Za mało wątków, aby uruchomić kwerendę równolegle.

      Mapa bitowa filtry są stosowane tylko w planie równoległych kwerendy.Gdy nie mogą być spełnione wymaganie wątek równoległych planu w określonym stopniu proste, Database Engine zmniejszenie stopnia proste automatycznie lub całkowicie opuszcza równoległych planu w kontekście określonego obciążenia. Następnie wykonuje planu szeregowe (jeden wątek).Aby uzyskać więcej informacji zobaczStopień proste.