Symptomy
Rozpatrzmy następujący scenariusz:
-
Istnieje tabela, w której znajdują się klastrowane indeksy magazynu kolumn, a tabela zawiera wiele kolumn (w setkach).
-
Dane (typ danych) tych kolumn to bardzo compressiblee dane, takie jak varchar.
-
Po uruchomieniu instrukcji SELECT w tej tabeli można wybrać duży podzbiór lub wszystkie kolumny z tej tabeli.
-
Instrukcja SELECT zawiera klauzulę WHERE ograniczającą jej wynik do bardzo małej liczby wierszy (zapytanie jest wysoce wybiórcze).
W tym scenariuszu mogą wystąpić następujące symptomy:
-
Obciążenie współbieżne (inne zapytania, które są wykonywane jednocześnie na serwerze jako zapytanie), mogą napotkać zmniejszenie wydajności i utratę przepustowości.
-
Może pojawić się sporadyczne wysokie użycie procesora.
-
Jeśli korzystasz z zapytań sys.dm_os_ring_buffers i wyświetlaj wpisy typu SchedulerMonitor , w czasie wykonywania tego zapytania znajdziesz nieprzerwane komunikaty "harmonogram niebędące".
-
Może zostać wyświetlony błąd harmonogramu o nieprawidłowym błędzie w dzienniku błędów i może zostać wygenerowany plik zrzutu pamięci.
Rozwiązanie
Problem został po raz pierwszy rozwiązany w następującej zbiorczej aktualizacji programu SQL Server:
Każda nowa Zbiorcza aktualizacja programu SQL Server zawiera wszystkie poprawki i wszystkie poprawki zabezpieczeń uwzględnione w poprzedniej aktualizacji zbiorczej. Zalecamy pobranie i zainstalowanie najnowszych aktualizacji zbiorczych programu SQL Server:
Więcej informacji
Naprawianie szczegółówPracownicy, którzy przetwarzają segmenty kolumn (dekompresują je i skanują je w celu uzyskania wierszy kwalifikujących się), będą mogli "dać" użycie procesora innym pracownikom/współbieżnym wykonywaniu zapytań, gdy określony próg liczby wierszy był wyprowadzany. Jeśli klauzula WHERE jest wysoce selektywna w celu utworzenia kilku wierszy, pracownicy, którzy przetwarzają to zapytanie, przetworzyli nieskompresowane i dużą liczbę segmentów (ponieważ bardzo niewiele wierszy kwalifikują się) przed upływem tego czasu w celu zapewnienia współpracy innych pracowników w celu przetworzenia zadań. Prowadzi to do nieregularnego użycia procesora i obniżenia przepustowości w celu jednoczesnego obciążenia. Poprawka optymalizuje algorytm udostępniania procesora dla takich zapytań na potrzeby i usprawnia ich wykonywanie.
Informacje
Informacje o terminologii używanej przez firmę Microsoft do opisywania aktualizacji oprogramowania.