Společnost Microsoft distribuuje Microsoft SQL Server 2008 R2 opravy jako jeden soubor ke stažení. Protože jsou opravy kumulativní, každá nová verze obsahuje všechny opravy hotfix a všechny opravy zabezpečení, které byly součástí předchozího SQL serveru 2008 R2 fix release.
Příznaky
V Microsoft SQL serveru 2008 R2 se může při spuštění složitého dotazu, který používá operátor Apply , zobrazit nekonzistentní výsledky. Poznámka Správný výsledek v tomto scénáři se zobrazí, pokud v dotazu použijete pomocný Tip pro dotaz na pořadí .
Příčina
K tomuto problému dochází, protože Optimalizátor dotazů vybere pro dotaz nesprávný plán provedení. Optimalizátor dotazů zpracovává predikát Group by pro více sloupců v fyzickém operátoru v plánu provádění. Operátor ale vyprodukuje všechny seskupené sloupce ve výstupním seznamu a neseskupí všechny tyto sloupce. Dotaz proto možná vrátí nesprávný výsledek. Poznámka Příkladem fyzického operátoru je agregační operátor. Optimalizátor dotazu například generuje klauzuli Group by Cola, ColB interně na následující tabulku:
ColA |
ColB |
---|---|
0,30 |
0,30 |
0,30 |
0,1 |
Optimalizátor dotazů smí nesprávně generovat plán provádění, který vrací sloupec Cola i ColB . Tyto sloupce jsou seskupeny podle sloupce Cola v seznamu výstupů. V tomto příkladu může dotaz ve sloupci ColB náhodně vrátit hodnotu 0 nebo 1 , pokud mají hodnoty ve sloupci Colahodnotu 0.
Řešení
Informace o kumulativní aktualizaci
SQL Server 2008 R2
Oprava pro tento problém byla poprvé vydána v kumulativní aktualizaci 5. Další informace o tom, jak získat tento kumulativní balíček aktualizací pro SQL Server 2008 R2, najdete v následujícím článku znalostní báze Microsoft Knowledge Base:
2438347 Kumulativní aktualizace 5 pro SQL Server 2008 R2 Poznámka Vzhledem k tomu, že buildy jsou kumulativní, každá nová oprava obsahuje všechny opravy hotfix a všechny opravy zabezpečení, které byly součástí předchozího SQL serveru 2008 R2 fix release. Doporučujeme zvážit použití nejnovější opravy, která obsahuje tuto opravu hotfix. Další informace naleznete v následujícím článku znalostní báze Microsoft Knowledge Base:
981356 Buildy SQL Server 2008 R2 vydaná po vydání SQL serveru 2008 R2
Stav
Společnost Microsoft potvrzuje, že se jedná o problém v produktech této společnosti, které jsou uvedeny v části Informace v tomto článku jsou určeny pro produkt.
Další informace
Chcete-li ověřit, že se jedná o tento problém, zkontrolujte plán provádění problematického dotazu a pak zaškrtněte políčka skupiny. Podívejte se například na operátor agregace toku, agregační operátor hash, jedinečný operátor řazení a operátor segmentu. Pokud je seznam výstupních sloupců delší než seznam seskupených sloupců, dochází k tomuto problému.
Odkazy
Další informace o modelu přírůstkové obsluhy pro SQL Server najdete v následujícím článku znalostní báze Microsoft Knowledge Base:
935897 Model přírůstkové obsluhy je dostupný od týmu SQL serveru a poskytuje opravy hotfix pro nahlášené problémy.Další informace o schématu přidělování názvů pro aktualizace systému SQL Server najdete v následujícím článku znalostní báze Microsoft Knowledge Base:
822499Nové schéma přidělování názvů balíčkům aktualizací softwaru pro Microsoft SQL ServerDalší informace o terminologii aktualizací softwaru najdete v následujícím článku znalostní báze Microsoft Knowledge Base:
824684 Popis standardní terminologie používané při popisu aktualizací softwaru společnosti Microsoft