Przejdź do głównej zawartości
Pomoc techniczna
Zaloguj się przy użyciu konta Microsoft
Zaloguj się lub utwórz konto.
Witaj,
Wybierz inne konto.
Masz wiele kont
Wybierz konto, za pomocą którego chcesz się zalogować.

WPROWADZENIE

Wersje programu Microsoft SQL Server nowsze niż SQL Server 2000 z dodatkiem Service Pack 3 (SP3) dostarczały większość poprawek do optymalizatora zapytań w stanie domyślnym, aby zapobiec występowaniu oczekiwanych zmian planu u istniejących klientów produkcyjnych, które mogą powodować regresję wydajności. Na początku każde z poprawek zostało dostarczone pod osobną flagą śledzenia. Później to ćwiczenie zostało zmienione tak, aby większość flag była łączyć pod jedną flagą śledzenia (4199). To nowe rozwiązanie zostało zainicjowane w wielu wersjach, począwszy od następujących aktualizacji:

  • SQL Server 2005 z dodatkiem Service Pack 3 (SP3) Aktualizacja skumulowana 6

  • SQL Server 2008 z dodatkiem Service Pack 1 (SP1) ( pakiet aktualizacji skumulowanej 7)

  • SQL Server 2008 R2 (RTM)

Flaga śledzenia 4199 była używana do zbierania poprawek, które miały zostać domyślnie włączone w przyszłej wersji, natomiast inne flagi śledzenia były używane w sytuacjach, w których poprawka nie była domyślnie włączona w bieżącej formie. Począwszy od wersji SQL Server 2016 RTM, ustawienie COMPATIBILITY_LEVEL bazy danych będzie domyślnie włączone dla flagi śledzenia 4199. W tym artykule opisano zasady i zasady dotyczące sposobu, w jaki poprawki wpływające na plan zostaną dostarczone dla SQL Server 2016 i nowszych wersji.

Więcej informacji

W wersji SQL Server 2016 poprawki flagi 4199 wprowadzone w poprzednich wersjach programu SQL Server zostaną włączone w obszarze baza danych COMPATIBILITY_LEVEL 130 bez włączonej flagi śledzenia 4199. Flaga śledzenia 4199 będzie używana do wydania wszystkich przyszłych poprawek SQL Server 2016 dla baz danych przy użyciu poziomu zgodności 130. Ponieważ flaga śledzenia 4199 jest zalecana tylko dla klientów, którzy widzą konkretne problemy z wydajnością, zaleca się usunięcie flagi śledzenia 4199 po migracji baz danych do najnowszego poziomu zgodności, ponieważ flaga śledzenia 4199 będzie ponownie dostępna dla przyszłych poprawek, które mogą nie mieć zastosowania do twojej aplikacji, co może spowodować nieoczekiwane zmiany wydajności planu w systemie produkcyjnym. Oznacza to, że dla każdego poziomu zgodności obsługiwanego w danej wersji produktu włączono różne poprawki flagi śledzenia 4199. Najnowszy poziom zgodności umożliwia już wszystkie poprzednie poprawki w ramach flagi śledzenia 4199. Oznacza to, że uaktualnienie bazy danych do najnowszego poziomu zgodności i usunięcie flagi 4199 śledzenia nadal umożliwia korzystanie ze wszystkich poprawek, które były przez obciążenie pracą przed uaktualnieniem bazy danych, a nie tylko nowych poprawek. Jeśli w późniejszym czasie klienci będą odczuwali problemy z wydajnością zapytań, poeksperymentuj z włączeniem opcji QUERY_OPTIMIZER_HOTFIXES zakresu bazy danych lub wskazówki dotyczącej zapytania ENABLE_QUERY_OPTIMIZER_HOTFIXES w środowisku testowym, aby ustalić, czy te problemy zostały rozwiązane. Zapoznaj się z dokumentacjąQUERY_OPTIMIZER_HOTFIXES. 

Uwaga 16. Domyślnie bazy danych utworzone w programie SQL Server 2016 używają poziomu zgodności 130 i mają już włączona nową logikę optymalizatora.

Główną zaletą tego modelu jest zmniejszenie ryzyka dla systemów produkcyjnych w trakcie procesu uaktualniania. To rozwiązanie oddziela instalację nowej wersji SQL Server od automatycznego włączania wszystkich nowych zmian edytora zapytań. Uaktualnienie wersji głównych zmienia format pliku i nie jest odwracalne, dlatego warto użyć ustawienia programu COMPATIBILITY_LEVEL, ponieważ pozwala to klientowi na szybką zmianę wersji w przypadku nieoczekiwanego problemu z wydajnością planu podczas uaktualniania. Jeśli klient znajdzie nieoczekiwaną zmianę planu, która blokuje uaktualnianie aplikacji, może ten klient może ten problem ułatwić, stosując odpowiednią wskazówkę dla planu za pomocą magazynu zapytań w celu wymusania poprzedniego planu lub w celu rozwiązania problemu, kontaktując się z działem obsługi klienta firmy Microsoft w celu ułatwienia rozwiązania problemu w celu zapewnienia obejścia lub poprawki. Gdy wszystkie problemy zostaną mniejsze, uaktualnienie może być kontynuowane. Klienci powinni zintegrować tę funkcję z planowaniem uaktualnienia do wersji SQL Server 2016.

W poniższej tabeli wyjaśniono model działania flagi śledzenia 4199 od SQL Server 2016.

Ustawienie

SQL poziom zgodności

Flaga śledzenia 4199

Poprawki optymalizatora przed SQL Server RTM w wersji 2016

Poprawki optymalizatora po SQL Server RTM w wersji 2016

1.

120

Wyłączone

Wyłączone

Wyłączone

2.

120

Wł.

Włączone

Wyłączone

3.

130

Wyłączone

Włączone przez poziom zgodności

Wyłączone

4.

130

Wł.

Włączone przez poziom zgodności

Włączone przez poziom zgodności

Uwaga Ustawienie nr 3 jest zalecane dla klientów, którzy od nowo uaktualniają SQL Server 2016.

W przypadku wersji głównych po SQL Server 2016 firma Microsoft planuje dalsze korzystanie z tego modelu obsługi dla poprawek optymalizatora. Domyślnie wszystkie poprawki flagi śledzenia 4199 z poprzedniej wersji będą włączone na następnym poziomie zgodności. Oznacza to, że zalecanym stanem dla klientów po migracji do najnowszego poziomu zgodności będzie wyłączona flaga śledzenia 4199. W nowszych poprawkach flaga śledzenia 4199 umożliwiała poprawki dla klientów, którzy muszą włączyć te konkretne poprawki w aplikacji. Zaleca się, aby klienci wyłączyli flagę śledzenia 4199 po uaktualnieniu aplikacji do najnowszego poziomu zgodności, aby zapobiec nieoczekiwanemu włączeniu w przyszłości zmian optymalizatora w aplikacji. Uaktualnienie do najnowszego poziomu zgodności i usunięcie flagi 4199 śledzenia nadal umożliwia korzystanie ze wszystkich poprawek, które były przez obciążenie pracą przed uaktualnieniem, a nie tylko nowych poprawek.

Uwaga 16. Mimo że wiele poprawek optymalizatora jest włączonych w ramach flagi śledzenia 4199, niektóre używają innych flag śledzenia. Śledź flagi 4199 flagi śledzenia, które są powszechnie stosowane i prawdopodobnie zostaną domyślnie włączone w przyszłej wersji. Alternatywne flagi śledzenia są używane w poprawkach, gdy warunki są bardzo specyficzne tylko dla kilku klientów, gdzie poprawka może powodować regresję wydajności w innych rodzajach aplikacji lub w miejscach, w których funkcje wewnętrzne mogą zobaczyć zmiany, zanim będą gotowe do użycia dla wszystkich. Firma Microsoft będzie nadal używać innych flag śledzenia, jeśli będzie to konieczne do obsługi produktu.

Uwaga W tym artykule skupimy się na modelu podczas wydawania poprawek flagi śledzenia 4199 na najnowszym poziomie zgodności najnowszego produktu. (W momencie publikacji jest SQL Server 2016). Poprawki optymalizatora mogą być publikowane w starszych wersjach na rynku programu SQL Server lub na niższych poziomach zgodności (120 lub poprzednich) z SQL Server 2016. Firma Microsoft oceń każdą sprawę i określi, czy użyć flagi śledzenia 4199, czy innej flagi śledzenia. Ponieważ zmiany bez poprawek są również włączone w przypadku przeniesienia na późniejszy poziom zgodności, nie ma konkretnych obietnicy, że w trakcie uaktualniania nie nastąpi żadna zmiana planu (z flagą śledzenia 4199 lub bez niej). Klienci powinni zawsze starannie testować zmiany na poziomie zgodności w przypadku aplikacji produkcyjnych i powinni używać technologii złagodzenia wpływu, takich jak magazyn zapytań, jeśli występuje problem z wydajnością związaną z wyborem planu.

Na przykład przed wprowadzeniem flagi śledzenia 4199 do edytora zapytań były używane następujące flagi śledzenia:

4101, 4102, 4103, 4104, 4105, 4106, 4107, 4108, 4109, 4110, 4111, 4115, 4116, 4117, 4119, 4120, 4121, 4122, 4124, 4125, 4126, 4127, 4128, 4129, 4131, 4133, 4135.

SQL Server 2012 i nowsze wersje

Flaga śledzenia 4199 jest dołączona do wersji SQL Server 2012 i nowszych.

Jak włączyć flagę śledzenia 4199

Flagę śledzenia 4199 można włączyć podczas uruchamiania lub w sesji użytkownika. Flaga śledzenia ma wpływ na poziom globalny lub na poziomie sesji. Aby włączyć flagę śledzenia 4199, użyj polecenia DBCC TRACEON lub użyj parametru –T 4199 jako parametru startowego.

Jeśli zostanie użyty znacznik DBCC TRACEON\TRACEOFF, nie zostanie ponownie wygenerowany nowy plan buforowany dla procedur składowanych. Plany mogą być przechowywane w pamięci podręcznej, które zostały utworzone bez flagi śledzenia.

Aby uzyskać szczegółowe informacje na temat włączania lub wyłączania flag śledzenia oraz objaśnień flag śledzenia na poziomie sesji i globalnym, zobacz następujące tematy w instrukcje online dotyczące usługi SQL Server online:

Informacje

Aby uzyskać więcej informacji na temat schematu nazewnictwa aktualizacji SQL Server, kliknij następujący numer artykułu, aby wyświetlić ten artykuł w bazie wiedzy Microsoft Knowledge Base:

822499
Nowy schemat nazewnictwa pakietów Microsoft SQL Server aktualizacji oprogramowania
Aby uzyskać więcej informacji na temat terminologii aktualizacji oprogramowania, kliknij następujący numer artykułu, aby wyświetlić ten artykuł w bazie wiedzy Microsoft Knowledge Base:

824684
Opis standardowej terminologii używanej do opisywania aktualizacji oprogramowania firmy Microsoft

Potrzebujesz dalszej pomocy?

Chcesz uzyskać więcej opcji?

Poznaj korzyści z subskrypcji, przeglądaj kursy szkoleniowe, dowiedz się, jak zabezpieczyć urządzenie i nie tylko.

Społeczności pomagają zadawać i odpowiadać na pytania, przekazywać opinie i słuchać ekspertów z bogatą wiedzą.

Czy te informacje były pomocne?

Jaka jest jakość języka?
Co wpłynęło na Twoje wrażenia?
Jeśli naciśniesz pozycję „Wyślij”, Twoja opinia zostanie użyta do ulepszania produktów i usług firmy Microsoft. Twój administrator IT będzie mógł gromadzić te dane. Oświadczenie o ochronie prywatności.

Dziękujemy za opinię!

×