Symptomy
Niektóre plany wykonywania kwerend w programie Microsoft SQL Server zawierają wzorzec oceniania filtru na początku operacji skanowania i przeszukiwania indeksu w tabeli lub indeksie. Niektóre części predykatu filtru mogą być zgodne z kluczem indeksu i dlatego mogą być używane do uruchamiania skanowania indeksu lub wyszukiwania w zakresie. Pozostałe części predykatu są nazywane "resztkową" i należy je oszacować dla każdego wiersza w wyniku operacji skanowania lub zakresu. Odpowiada to operatorowi filtru. Jednak w celu zwiększenia wydajności program SQL Server może wypchnąć taki filtr do samego operatora dostępu do tabeli. Chociaż to rozwiązanie zwiększa ogólną wydajność, w niektórych warunkach (na przykład w przypadku niedokładnego oszacowania kardynalności powiązanego z czułością parametrów) filtr poniżej skanowania może przetworzyć większą liczbę wierszy, niż oczekiwano. Ten fakt może być ukryty podczas rozwiązywania problemów z wydajnością kwerendy, gdy jest używany rzeczywisty plan wykonania, ponieważ rzeczywista liczba zwracanych wierszy będzie odpowiadać liczbie wierszy po zastosowaniu predykatu końcowego, a nie w rzeczywistej liczbie wierszy przeskanowanych z tabeli lub indeksu.
Rozwiązanie
Aby ulepszyć funkcje diagnostyczne w scenariuszu opisanym w sekcji Symptomy, program SQL Server 2012 z dodatkiem Service Pack 3 (SP3) i SQL Server 2014 z dodatkiem SP2 wprowadza nowy atrybut XML Showplan, wiersze rzeczywiste są odczytywane. Ten atrybut zawiera informacje o liczbie wierszy odczytanych przez operatora przed zastosowaniem predykatu końcowego. Ta funkcja została Żółwik wprowadzona w następujących dodatkach Service Pack dla programu SQL Server.
Aby uzyskać więcej informacji na temat programu SQL Server 2012 z dodatkiem Service Pack 3 (SP3), zobacz usterki naprawione w dodatku SQL server 2012 Service Pack 3.
Dodatek Service Pack 2 dlaprogramu sql Server 2014 SQL Server 2016 z dodatkiem Service Pack 1 (SP1) Informacje o dodatkach Service Pack dla programu SQL ServerDodatki 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