Корпорация Майкрософт распространяет исправления Microsoft SQL Server 2008 R2 как один файл для загрузки. Поскольку исправления являются кумулятивными, каждый новый выпуск содержит все исправления и исправления для системы безопасности, которые были включены в предыдущий выпуск исправлений для SQL Server 2008 R2.
Проблемы
В Microsoft SQL Server 2008 R2 при выполнении сложного запроса, использующего оператор Apply , могут быть получены неправильные результаты. Примечание. В этом случае вы получите правильный результат в этом сценарии, если в запросе используется подсказка запроса принудительного заказа .
Причина
Эта проблема возникает из-за того, что оптимизатор запросов выбирает неверный план выполнения для запроса. Оптимизатор запросов обрабатывает предикат Group By для нескольких столбцов в физическом операторе плана выполнения. Однако оператор выводит все сгруппированные столбцы в списке вывода и не группируют все эти столбцы. Таким образом, запрос может вернуть неверный результат. Примечание. Примером физического оператора является агрегатный Оператор Stream . Например, оптимизатор запросов создает внутреннее предложение Group By Cola, ColB в соответствии с приведенной ниже таблицей.
ColA |
ColB |
---|---|
до |
до |
до |
1 |
Оптимизатор запросов может ошибочно создать план выполнения, который возвращает столбцы Cola и ColB . Эти столбцы группируются по столбцу Cola в списке вывода. В этом примере запрос может случайным образом возвращать 0 или 1 в столбец ColB , если значения в столбце Cola — 0.
Решение
Сведения о накопительном пакете обновления
SQL Server 2008 R2
Исправление для этой проблемы впервые выпущено в накопительном обновлении 5. Для получения дополнительных сведений о том, как получить этот накопительный пакет обновления для SQL Server 2008 R2, щелкните следующий номер статьи базы знаний Майкрософт:
2438347 Накопительный пакет обновления 5 для SQL Server 2008 R2 Примечание. Поскольку сборки являются кумулятивными, каждый новый выпуск исправлений содержит все исправления и все исправления безопасности, которые были включены в предыдущий выпуск исправлений для SQL Server 2008 R2. Рекомендуется установить последнюю версию исправления, которая включает это исправление. Дополнительные сведения см. в следующей статье базы знаний Майкрософт:
981356 Сборки SQL Server 2008 R2, выпущенные после выпуска SQL Server 2008 R2
Статус
Корпорация Майкрософт подтверждает наличие этой проблемы в своих продуктах, которые перечислены в разделе "Применяется к".
Дополнительная информация
Чтобы убедиться в том, что вы столкнулись с этой проблемой, ознакомьтесь с планом выполнения проблемного запроса и проверьте операторы Group. Например, можно установить флажок статистического оператора Stream, статистического оператора для сортировки и оператора сегмента. Если список выходных столбцов длиннее списка сгруппированных столбцов, это значит, что у вас возникла эта проблема.
Ссылки
Чтобы получить дополнительные сведения о модели добавочного обслуживания для SQL Server, щелкните следующий номер статьи базы знаний Майкрософт:
935897 Модель обслуживания изменений, используемая рабочей группой SQL Server, предоставляет модель ISM для распространения исправлений обнаруженных проблемЧтобы получить дополнительные сведения о схеме присвоения имен обновлениям SQL Server, щелкните следующий номер статьи базы знаний Майкрософт:
822499Новая схема присвоения имен пакетам обновлений программного обеспечения Microsoft SQL ServerЧтобы получить дополнительные сведения о терминологии обновления программного обеспечения, щелкните следующий номер статьи базы знаний Майкрософт:
824684 Стандартные термины, используемые при описании обновлений программных продуктов Майкрософт