KB3190762 – Актуализация за подобряване на диагностиката за планове за изпълнение на заявки, които включват изтласкване на остатъчен предикат, в SQL Server 2016

Отнася се за
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 Express - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use) SQL Server 2016 Web - duplicate (do not use)

Резюме

Някои планове за изпълнение на заявка в Microsoft SQL Server 2016 включват схема за изчисляване на филтър на таблица или операция за сканиране/диапазон на индекс. Някои части от филтърния предикат може да съответстват на индексен ключ и следователно може да се използват за изпълнение на търсене на индекс или сканиране на диапазона. Останалите части на предиката са известни като остатъчни и трябва да се изчислят за всеки резултат от реда чрез сканирането или операцията за диапазон. Това съответства на оператор за филтриране. Въпреки това, за да подобри производителността, SQL Server може да насочи този филтър надолу към самия оператор за достъп до таблица.

Въпреки че този подход подобрява производителността като цяло, при някои обстоятелства (например за неточна оценка на брой обекти, която е свързана с чувствителността на параметъра), филтърът scan-below може да обработи по-голям брой редове от очакваното. Това поведение може да бъде скрито по време на отстраняване на неизправности в производителността на заявки, когато използвате действителен план за изпълнение, защото броят на върнатите редове съответства на броя на редовете след прилагането на остатъчния предикат, а не на действителния брой редове, които се сканират от таблица или индекс.

Актуализиране на информацията

За да се подобри диагностиката за сценария, който е описан в раздела "Симптоми", SQL Server 2016 Service Pack 1 (SP1) въвежда нов XML атрибут showplan – "Прочетени прогнозни редове". Този атрибут предоставя изчисления брой редове, които ще бъдат прочетени от оператора, преди прилагането на остатъчния предикат. Тази актуализация е допълнение към KB 3107397.

Тази функционалност е включена в Service Pack 1 за SQL Server 2016.

За компилациите на SQL Server 2016

Всяка нова компилация за SQL Server 2016 съдържа всички актуални поправки и корекции на защитата, които са били включени в предишната компилация. Препоръчваме ви да инсталирате най-новата компилация за SQL Server 2016.

Справки

Научете повече относно терминологията, която Microsoft използва за описване на актуализациите на софтуера.