КОРЕКЦИЯ: Противоречиви резултати, когато изпълнявате сложна заявка, която използва оператор за СВЪРЗВАНЕ в SQL Server 2008 R2

Прилага се за: SQL Server 2008 R2 EnterpriseSQL Server 2008 R2 DatacenterSQL Server 2008 R2 Developer

Microsoft разпространява корекциите за Microsoft SQL Server 2008 R2 като един файл за изтегляне. Тъй като корекциите са сборни, всяка нова версия съдържа всички актуални корекции и всички корекции на защитата, които са били включени в предишните SQL Server 2008 R2 fix съобщение.

Симптоми


Microsoft SQL Server 2008 R2 може да получите противоречиви резултати изпълняването на сложни заявка, която използва оператор за СВЪРЗВАНЕ .

Забележка: Получавате правилния резултат в този случай, ако използвате подсещане СИЛА ЗА търсене в заявка.

Причина


Този проблем възниква, защото оптимизатора на заявката избира неправилно изпълнение план за заявката.

Оптимизатор на заявката обработва на ГРУПА ОТ първоначалния за няколко колони физически оператор на план за изпълнение. Обаче операторът извежда всички групирани колони в списъка за възпроизвеждане и не група тези колони. Затова заявка може да върне неправилен резултат.

Забележка: Пример за физически оператор е оператор на Общия поток .

Например заявката Оптимизатор генерира ГРУПА ОТ кола, ColB клауза вътрешно срещу следната таблица:
КолаColB
00
01
Оптимизатор на заявката неправилно може да генерира план за изпълнение, която връща ColA и ColB колони. Тези колони са групирани ColA колона в списъка за възпроизвеждане. В този пример заявката случайно може да върне 0 или 1 в колоната ColB ако стойностите в колоната ColA са 0.

Решение


Информация за сборна актуализация

SQL Server 2008 R2

Решение за този проблем излезе първо в сборна актуализация 5. За повече информация как да получите този Сборен пакет за SQL Server 2008 R2, щракнете върху следния номер на статия в базата знания на Microsoft:
2438347 сборния пакет за актуализация 5 за SQL Server 2008 R2
Забележка: Тъй като компилациите са сборни, всяка нова версия на корекцията съдържа всички актуални корекции и всички корекции на защитата, които са били включени в предишните SQL Server 2008 R2 fix съобщение. Препоръчително е да приложите най-новата версия на корекцията, който ще съдържа тази корекция. За повече информация щракнете върху следния номер на статия в базата знания на Microsoft:
981356 SQL Server 2008 R2 компилации, издадени след издаването на SQL Server 2008 R2

Статус


Microsoft потвърждава, че това е проблем в продуктите на Microsoft, изброени в раздела "Отнася се за".

Допълнителна информация


За да проверите дали имате този проблем, прегледайте план за изпълнение на заявка за проблеми и проверете на групата оператори. Например Проверете оператор на общия поток, хеш общия оператор, различен вид оператор и оператор сегмент. Ако списъкът на изходните колони повече от списъка на групирани колони, имате този проблем.

Препратки


За повече информация за модела на постъпково обслужване за SQL Server щракнете върху следния номер на статия в базата знания на Microsoft:

935897 Моделът за постъпково обслужване се предлага от екипа на SQL Server за предоставяне на спешни корекции за съобщени проблеми

За повече информация за схемата за именуване на актуализации за SQL Server щракнете върху следния номер на статия в базата знания на Microsoft:

822499 Нова схема за именуване на пакети за актуализация на софтуера на Microsoft SQL Server
За повече информация относно терминологията за актуализация на софтуера щракнете върху следния номер на статия, за да я видите в базата данни на Microsoft:
824684 описание на стандартната терминология, използвана за описание на софтуерните актуализации на Microsoft