Корпорация Майкрософт распространяет Microsoft SQL Server 2008 с пакетом обновления 3 (SP3) и один из загружаемых файлов. Поскольку исправления являются кумулятивными, каждый новый выпуск содержит все исправления и все исправления для системы безопасности, которые были включены в предыдущий выпуск исправлений для SQL Server 2008 с пакетом обновления 3 (SP3).
Проблемы
Предположим, что вы выполняете запрос, использующий параллелизм в плане выполнения запроса в SQL Server 2008, в SQL Server 2008 R2 или SQL Server 2012. План запроса отвечает указанным ниже условиям.
-
план выполнения запроса включает оператор точечного рисунка и либо хэш-соединение, либо соединение слиянием.
-
Предикат соединения для хэш-соединения или слияния содержит Сравнение для столбцов, которые могут быть пустыми.
В этом сценарии запрос возвращает неверные результаты.
Причина
Эта проблема возникает из-за того, что значение NULL отбрасывается, когда SQL Server использует фильтрацию по точечным рисункам в просмотре таблицы или в просмотре индекса.
Решение
Сведения о накопительном пакете обновления
Накопительный пакет обновления 1 (SP1) для SQL Server 2012 с пакетом обновления 1 (SP1)
Исправление для этой проблемы впервые выпущено в накопительном обновлении 1. За дополнительными сведениями о том, как получить этот накопительный пакет обновления для SQL Server 2012 с пакетом обновления 1 (SP1), щелкните следующий номер статьи базы знаний Майкрософт:
2765331 Накопительный пакет обновления 1 (SP1) для SQL Server 2012 с пакетом обновления 1 (SP1)Примечание. Так как сборки являются кумулятивными, каждый новый выпуск исправлений содержит все исправления и все исправления безопасности, которые были включены в предыдущий выпуск исправлений для SQL Server 2012. Рекомендуется установить последнюю версию исправления, которая включает это исправление. Дополнительные сведения см. в следующей статье базы знаний Майкрософт:
2772858 Сборки SQL Server 2012, выпущенные после выпуска пакета обновления 1 (SP1) для SQL Server 2012
SQL Server 2008 R2 с пакетом обновления 2 (SP2)
Исправление для этой проблемы впервые выпущено в накопительном обновлении 2 для SQL Server 2008 R2 с пакетом обновления 2. Для получения дополнительных сведений о том, как получить этот накопительный пакет обновления, щелкните следующий номер статьи базы знаний Майкрософт:
2740411 Накопительный пакет обновления 2 для SQL Server 2008 R2 с пакетом обновления 2 (SP2)Примечание. Поскольку сборки являются кумулятивными, каждый новый выпуск исправлений содержит все исправления и все исправления безопасности, которые были включены в предыдущий выпуск исправлений для SQL Server 2008 R2. Рекомендуется установить последнюю версию исправления, которая включает это исправление. Дополнительные сведения см. в следующей статье базы знаний Майкрософт:
2730301 Сборки SQL Server 2008 R2, выпущенные после выпуска SQL Server 2008 R2 с пакетом обновления 2 (SP2)
SQL Server 2008 R2 с пакетом обновления 1 (SP1)
Исправление для этой проблемы впервые выпущено в накопительном обновлении 8. Для получения дополнительных сведений о том, как получить этот накопительный пакет обновления для SQL Server 2008 R2 с пакетом обновления 1 (SP1), щелкните следующий номер статьи базы знаний Майкрософт:
2723743 Накопительный пакет обновления 8 для SQL Server 2008 R2 с пакетом обновления 1 (SP1)Примечание. Поскольку сборки являются кумулятивными, каждый новый выпуск исправлений содержит все исправления и все исправления системы безопасности, которые были включены в предыдущий выпуск исправлений для SQL Server 2008 R2 с пакетом обновления 1 (SP1). Рекомендуется установить последнюю версию исправления, которая включает это исправление. Дополнительные сведения см. в следующей статье базы знаний Майкрософт:
2567616 Сборки SQL Server 2008 R2, выпущенные после выпуска сервера SQL Server 2008 R2 с пакетом обновления 1 (SP1)
SQL Server 2012
Исправление для этой проблемы впервые выпущено в накопительном обновлении 3 для SQL Server 2012. Чтобы получить дополнительные сведения об этом накопительном пакете обновления, щелкните следующий номер статьи базы знаний Майкрософт:
2723749 Накопительный пакет обновления 3 для SQL Server 2012Примечание. Так как сборки являются кумулятивными, каждый новый выпуск исправлений содержит все исправления и все исправления безопасности, которые были включены в предыдущий выпуск исправлений для SQL Server 2012. Корпорация Microsoft рекомендует установить последнюю версию исправления, которая включает это исправление. Дополнительные сведения см. в следующей статье базы знаний Майкрософт:
2692828 Сборки SQL Server 2012, выпущенные после выпуска SQL Server 2012 Вы должны применить исправление SQL Server 2012 к установке SQL Server 2012.
SQL Server 2008 с пакетом обновления 3
Исправление для этой проблемы впервые выпущено в накопительном обновлении 6 для SQL Server 2008 с пакетом обновления 3. Чтобы получить дополнительные сведения об этом накопительном пакете обновления, щелкните следующий номер статьи базы знаний Майкрософт:
2715953 Накопительный пакет обновления 6 для SQL Server 2008 с пакетом обновления 3 (SP3)Примечание. Так как сборки являются кумулятивными, каждый новый выпуск исправлений содержит все исправления и все исправления безопасности, которые были включены в предыдущий выпуск исправлений для SQL Server 2008. Рекомендуется установить последнюю версию исправления, которая включает это исправление. Дополнительные сведения см. в следующей статье базы знаний Майкрософт:
2629969 Сборки SQL Server 2008, выпущенные после выпуска пакета обновления 3 (SP3) для SQL Server 2008 Исправления Microsoft SQL Server 2008 создаются для конкретных пакетов обновления для SQL Server. Вы должны применить исправление SQL Server 2008 с пакетом обновления 3 (SP3) к установке SQL Server 2008 с пакетом обновления 3 (SP3). По умолчанию любое исправление, предоставленное в пакете обновления SQL Server, входит в следующий пакет обновления для SQL Server.
Статус
Корпорация Майкрософт подтверждает наличие этой проблемы в своих продуктах, которые перечислены в разделе "Применяется к".
Обходное решение
Чтобы обойти эту ошибку, не используйте для запроса параллелизм, применяя один из этих методов.
-
Добавьте параметр подсказки MAXDOP 1 для запроса.
-
Задайте для параметра « Максимальная степень параллелизма » значение 1.
Дополнительная информация
Дополнительные сведения об параллельных хэш-соединениях можно найти на веб-сайте MSDN blogs:
Общие сведения об параллельных хэш-соединенияхДополнительные сведения о фильтрах точечных рисунков для выполнения запросов можно найти на веб-сайте блогов MSDN по адресу:
Общие сведения о фильтрах точечных рисунков выполнения запроса