OPRAVA: Nekonzistentní výsledky při spuštění složitý dotaz, který používá operátor POUŽÍT SQL Server 2008 R2

Společnost Microsoft distribuuje opravy Microsoft SQL Server 2008 R2 jako jeden soubor ke stažení. Protože jsou kumulativní opravy, každá nová verze tedy obsahuje všechny opravy hotfix a opravit všechny opravy zabezpečení, které byly součástí předchozích SQL Server 2008 R2 release.

Příznaky

V Microsoft SQL Server 2008 R2 můžete obdržet nekonzistentní výsledky při spuštění složitý dotaz, který používá operátor POUŽÍT .

Poznámka: Zobrazí správný výsledek v tomto scénáři při použití dotazu nápovědy FORCE ORDER v dotazu.

Příčina

K tomuto problému dochází, protože optimalizaci dotaz vybere plán nesprávné spuštění dotazu.

Optimalizace dotazů zpracovává predikát SESKUPIT PODLE více sloupců ve fyzické operátor prováděcího plánu. Provozovatel však výstup všechny seskupené sloupce v seznamu výstupních a nikoli seskupit tyto sloupce. Proto může dotaz vrátit nesprávný výsledek.

Poznámka: Je například fyzické operátor Agregační datového proudu operátor.

Například optimalizace dotazů generuje klauzuli SKUPINY tak, ŽE ColA, ColB vnitřně proti v následující tabulce:
ColAColB
00
01
Optimalizace dotazů může způsobit nesprávné provádění plánu, který vrací se ColA a ColB sloupce. Tyto sloupce jsou seskupeny podle ColA sloupce v seznamu výstupních. V tomto příkladu dotaz může náhodně vrátit hodnotu 0 nebo 1 ColB sloupce Pokud jsou hodnoty ve sloupci ColA 0.

Řešení

Informace o kumulativní aktualizaci

SQL Server 2008 R2

Oprava tohoto problému byla vydána nejprve v kumulativní aktualizaci 5. Další informace o možnostech získání tohoto balíčku kumulativní aktualizace pro SQL Server 2008 R2 klepněte na následující číslo článku databáze Microsoft Knowledge Base:
2438347 kumulativní aktualizace 5 pro SQL Server 2008 R2
Poznámka: Vzhledem k tomu, sestavení jsou kumulativní, každá nová verze oprava obsahuje všechny opravy hotfix a opravit všechny opravy zabezpečení, které byly součástí předchozích SQL Server 2008 R2 release. Doporučujeme zvážit použití nejnovější vydání oprava, která obsahuje tuto opravu hotfix. Další informace získáte v následujícím článku znalostní báze Microsoft Knowledge Base:
981356 SQL Server 2008 R2 sestavení, které byly vydány po vydání SQL Server 2008 R2

Stav

Společnost Microsoft potvrdila, že se jedná o problém v produktech společnosti Microsoft, které jsou uvedeny v části "Platí pro".

Další informace

Chcete-li ověřit, že se jedná o problém, zkontrolujte plán vykonání problematické dotazu a zkontrolujte skupiny operátorů. Zkontrolujte například agregační datového proudu operátor, hash agregační operátor, operátor distinct řazení a operátor segmentu. Pokud je delší než seznam seskupené sloupce v seznamu výstupních sloupců, dochází k tomuto problému.

Odkazy

Další informace o přírůstkové Model servis pro SQL Server získáte v následujícím článku znalostní báze Microsoft Knowledge Base:

935897 dílčí Model obsluhy je k dispozici z týmu SQL Server doručit opravy hotfix pro nahlášené potíže

Další informace o schéma názvů pro aktualizace serveru SQL Server klepněte na následující číslo článku databáze Microsoft Knowledge Base:

822499 Nové schéma přidělování názvů balíčkům aktualizací softwaru Microsoft SQL Server pro
Pro další informace o terminologii používané v aktualizacích softwaru, klepněte na následující číslo článku k zobrazení článku v databázi Microsoft Knowledge Base:
824684 Popis standardní terminologie používané při popisu aktualizací softwaru společnosti Microsoft
Vlastnosti

ID článku: 2428310 - Poslední kontrola: 8. 1. 2017 - Revize: 1

Váš názor