Проблемы
Некоторые планы выполнения запросов в Microsoft SQL Server включают в себя шаблон для оценки фильтра на основе операции просмотра и диапазонов в таблице или индексе. Некоторые части предиката фильтра могут соответствовать ключу индекса и, следовательно, могут использоваться для выполнения поиска по индексу или просмотра диапазона. Остальные части предиката называются «остатками» и должны оцениваться для каждой строки вывода с помощью операции "Просмотр" или "диапазон". Это соответствует оператору фильтра. Тем не менее, для повышения производительности SQL Server может применить фильтр к самому оператору доступа к таблице. Несмотря на то, что этот подход повышает производительность в целом, в некоторых условиях (например, в случае неточной оценки кратности, связанной с чувствительностью к параметру), фильтр сканирования ниже может обрабатывать большее количество строк, чем ожидалось. Этот факт может быть скрытым при устранении неполадок с производительностью запросов при использовании фактического плана выполнения, так как фактическое количество возвращаемых строк будет соответствовать количеству строк после применения остатка, а не фактического числа строк, которые проверяются из таблицы или индекса.
Решение
Чтобы улучшить диагностику сценария, описанного в разделе проблемы, SQL Server 2012 с пакетом обновления 3 (SP3) и SQL Server 2014 (SP2) вводят новый атрибут Showplan XML, фактические строки считаны. Этот атрибут предоставляет сведения о том, сколько строк было считано оператором перед применением остатка предикатов. Эта функция была кулачки представлена в следующих пакетах обновления для SQL Server.
Дополнительные сведения о SQL Server 2012 с пакетом обновления 3 (SP3) можно найти в статьях ошибки, исправленные в SQL server 2012 с пакетом обновления 3.
Пакет обновления 2(SP2) для SQL Server для sql Server 2014 SQL Server 2016 с пакетом обновления 1 (SP1) Сведения о пакетах обновления для SQL ServerПакеты обновления являются накопительными. Каждый новый пакет обновления включает все исправления из предыдущих пакетов обновления вместе с новыми исправлениями. Наши рекомендации относятся к установке последнего пакета обновления и последнего накопительного обновления для этого пакета обновления. Перед установкой последнего пакета обновления вам не нужно устанавливать предыдущий пакет обновления. С помощью таблицы 1 в следующей статье вы узнаете, как найти дополнительные сведения о последнем пакете обновления и новейшем накопительном обновлении.Определение версии, выпуска и уровня обновления SQL Server и его компонентов