KB4057280 — POPRAWKA: Duże użycie procesora CPU, gdy duży indeks jest używany w zapytaniu w tabeli zoptymalizowanej pod kątem pamięci w SQL Server

Dotyczy
SQL Server 2016 Service Pack 1 SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use) SQL Server 2017 Developer SQL Server 2017 Enterprise SQL Server 2017 Enterprise Core SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Enterprise Core - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use)

Objawy

Rozważmy następujący scenariusz:

  • W programie Microsoft SQL Server 2017, 2016 i 2014 używasz przetwarzania transakcji online (OLTP, Online Transaction Processing) w pamięci.
  • Zapytanie jest wykonywane na tabeli zoptymalizowanej pod kątem pamięci, która zawiera duży indeks.

W tym scenariuszu, jeśli podczas wykonywania zapytania użyjesz dużego indeksu, użycie procesora CPU może gwałtownie wzrosnąć do 100 procent i bardzo szybko. Jeśli masz więcej niż jeden procesor logiczny, użycie tylko jednego z procesorów może szybko wzrosnąć do 100 procent.

Przyczyna

Ten problem występuje, ponieważ wyrzucanie elementów bezużytecznych w środowisku OLTP w pamięci może potrwać długo, jeśli w wykonywaniu zapytania jest używany duży indeks.

Rozwiązanie

Ten problem został rozwiązany w następujących aktualizacjach zbiorczych dla programu SQL Server:

Aktualizacja zbiorcza 4 dla programu SQL Server 2017

Aktualizacja zbiorcza 7 dla programu SQL Server 2016 z dodatkiem SP1

Aktualizacja zbiorcza 2 dla programu SQL Server 2014 z dodatkiem SP3

Wskazówka Po zainstalowaniu tej aktualizacji należy włączyć flagę śledzenia (TF) 9945, aby rozwiązać ten problem. Aby włączyć TF 9945, zobacz temat Śledzenie flag (Transact-SQL) w witrynie MSDN (Microsoft Developer Network).

Informacje o aktualizacjach zbiorczych programu SQL Server:

Każda nowa aktualizacja zbiorcza programu SQL Server zawiera wszystkie poprawki zabezpieczeń uwzględnione w poprzedniej aktualizacji skumulowanej. Sprawdź najnowsze aktualizacje zbiorcze dla programu SQL Server:

Najnowsza aktualizacja zbiorcza dla programu SQL Server 2017

Najnowsza aktualizacja zbiorcza dla programu SQL Server 2016

Najnowsza aktualizacja zbiorcza dla programu SQL Server 2014

Stan faktyczny

Firma Microsoft potwierdziła, że jest to problem dotyczący produktów firmy Microsoft wymienionych w sekcji „Dotyczy”.

Źródła informacji

Dowiedz się więcej o terminologii używanej przez firmę Microsoft do opisywania aktualizacji oprogramowania.