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