KB4051361 — dane celu dotyczące optymalizacji wiersza w planie wykonania kwerendy dodane w programie SQL Server 2014, 2016 i 2017

Podsumowanie

Dodaj nowy atrybut plan wykonania zapytania EstimateRowsWithoutRowGoal do programu SQL Server 2017 skumulowanej aktualizacji 3 (CU3) i Microsoft SQL Server 2016 z dodatkiem Service Pack 2 (SP2).

Gdy optymalizator kwerend szacuje koszt planu wykonania kwerendy, zwykle zakłada się, że wszystkie wiersze kwalifikujące ze wszystkich źródeł muszą być przetwarzane. Jednak niektóre zapytania spowodują, że optymalizator zapytań wyszukał plan, który szybciej zwróci mniejszą liczbę wierszy. Może się tak zdarzyć, jeśli w kwerendzie użyto klauzuli @ , szybkiej number_rows wskazówki zapytania, klauzuli in lub EXISTS albo instrukcji SET ROWCOUNT {Number | @number_var} . W tym przypadku Optymalizator używa celu wiersza, gdy szacuje plan kwerendy. Jeśli zostanie zastosowany plan celu wiersza, Szacowana liczba wierszy w planie wykonywania kwerendy jest zmniejszona. Wynika to z faktu, że w planie będzie konieczne przetworzenie mniejszej liczby wierszy w celu osiągnięcia celu realizacji wiersza.

Uwaga Szacowanie dokonywane za pomocą celu wiersza jest przybliżone. Jeśli rzeczywista Dystrybucja danych nie jest jednolita, może być mniejsza niż rzeczywista liczba wierszy, które trzeba przetworzyć. Może więc utworzyć nieefektywny plan kwerendy. W celu obejścia tego problemu można użyć opcji zapytania USE Hint ("DISABLE_OPTIMIZER_ROWGOAL") lub flagi śledzenia 4138.

Aby uzyskać więcej informacji, zobacz aktualizacja zawiera opis zastosowania argumentu Wskazówka do zapytania w programie SQL Server 2016. Może jednak wystąpić konieczność zidentyfikowania w złożonej kwerendzie, czy cel wiersza jest stosowany, a jaki wpływ wpływa na wybór planu.

Używając atrybutu EstimateRowsWithoutRowGoal , można porównać wyniki z atrybutami EstimateRows , aby sprawdzić, ile cel wiersza wpływa na oszacowania optymalizatora zapytań.

Uwaga Jeśli cel wiersza nie jest stosowany do określonego operatora planu zapytań, ten atrybut nie jest uwzględniany.

Więcej informacji

Ta aktualizacja jest uwzględniona w następującej zbiorczej aktualizacji dla programu SQL Server:

       Zbiorcza aktualizacja 3 dla programu SQL Server 2017

Każda nowa Zbiorcza aktualizacja programu SQL Server zawiera wszystkie poprawki i wszystkie poprawki zabezpieczeń uwzględnione w poprzedniej aktualizacji zbiorczej. Zapoznaj się z najnowszymi aktualizacjami zbiorczymi dla programu SQL Server:

Najnowsza Zbiorcza aktualizacja dla programu SQL Server 2017

Informacje o dodatku Service Pack dla programu SQL Server

Ta aktualizacja jest wprowadzana w następujących dodatkach Service Pack dla programu SQL Server:

       Dodatek Service Pack 2 dla programu SQL Server 2016

       Dodatek Service Pack 3 dla programu SQL Server 2014

Dodatki Service Pack są kumulatywne. Każdy nowy dodatek Service Pack zawiera wszystkie poprawki zawarte w poprzednich dodatkach Service Pack oraz nowe poprawki. Nasze zalecenie polega na zastosowaniu najnowszego dodatku Service Pack oraz najnowszej aktualizacji zbiorczej dla tego dodatku Service Pack. Instalowanie poprzedniego dodatku Service Pack przed instalacją najnowszego dodatku Service Pack nie jest konieczne. Skorzystaj z tabeli 1 w poniższym artykule, aby znaleźć więcej informacji na temat najnowszego dodatku Service Pack i najnowszej aktualizacji zbiorczej.

Jak ustalić wersję, wersja i poziom aktualizacji programu SQL Server i jego składników

Informacje

Informacje o terminologiiużywanej przez firmę Microsoft do opisywania aktualizacji oprogramowania.

Potrzebna dalsza pomoc?

Rozwijaj swoje umiejętności
Poznaj szkolenia
Uzyskuj nowe funkcje w pierwszej kolejności
Dołącz do niejawnych testerów firmy Microsoft

Czy te informacje były pomocne?

Dziękujemy za opinię!

Dziękujemy za opinię! Wygląda na to, że połączenie Cię z jednym z naszych agentów pomocy technicznej pakietu Office może być pomocne.

×