KB2428310-Fix: inkonsistente Ergebnisse beim Ausführen einer komplexen Abfrage, die den APPLY-Operator in SQL Server 2008 R2 verwendet

Gilt für: SQL Server 2008 R2 EnterpriseSQL Server 2008 R2 DatacenterSQL Server 2008 R2 Developer

Microsoft vertreibt Microsoft SQL Server 2008 R2-Fixes als eine herunterladbare Datei. Da die Fixes kumulativ sind, enthält jede neue Version alle Hotfixes und alle Sicherheitsupdates, die mit der vorherigen Version von SQL Server 2008 R2 behoben wurden.

Problembeschreibung


In Microsoft SQL Server 2008 R2 erhalten Sie möglicherweise inkonsistente Ergebnisse, wenn Sie eine komplexe Abfrage ausführen, die den Apply -Operator verwendet. Hinweis In diesem Szenario erhalten Sie das richtige Ergebnis, wenn Sie den Abfragehinweis Force Order in einer Abfrage verwenden.

Ursache


Dieses Problem tritt auf, weil der Abfrageoptimierer einen falschen Ausführungsplan für die Abfrage auswählt. Der Abfrageoptimierer behandelt das Group by -Prädikat für die mehrere Spalten in einem physikalischen Operator des Ausführungsplans. Der Operator gibt allerdings alle gruppierten Spalten in der Ausgabeliste aus und gruppiert nicht alle diese Spalten. Daher gibt die Abfrage möglicherweise ein falsches Ergebnis zurück. Hinweis Ein Beispiel für einen physikalischen Operator ist der Stream-Aggregat Operator. Der Abfrageoptimierer generiert beispielsweise intern eine Group by Cola-ColB -Klausel für die folgende Tabelle:
ColAColB
00
01
Der Abfrageoptimierer kann fälschlicherweise einen Ausführungsplan generieren, der sowohl die Cola -als auch die ColB -Spalte zurückgibt. Diese Spalten werden in der Ausgabeliste nach der Spalte " Cola " gruppiert. In diesem Beispiel gibt die Abfrage nach dem Zufallsprinzip 0 oder 1 in der Spalte ColB zurück, wenn die Werte in der Spalte Cola0sind.

Fehlerbehebung


Informationen zum kumulativen Update

SQL Server 2008 R2

Der Fix für dieses Problem wurde erstmals im kumulativen Update 5 veröffentlicht. Wenn Sie weitere Informationen zum beziehen dieses kumulativen Updatepakets für SQL Server 2008 R2 benötigen, klicken Sie auf die folgende Artikelnummer, um den Artikel in der Microsoft Knowledge Base anzuzeigen:
2438347 Kumulatives Update Paket 5 für SQL Server 2008 R2
Hinweis Da die Builds kumulativ sind, enthält jede neue Fix-Version alle Hotfixes und alle Sicherheitsupdates, die mit der vorherigen Version von SQL Server 2008 R2 behoben wurden. Wir empfehlen, dass Sie die neueste Fix-Version anwenden, die diesen Hotfix enthält. Weitere Informationen finden Sie im folgenden Artikel der Microsoft Knowledge Base:
981356 Die SQL Server 2008 R2-Builds, die nach der Veröffentlichung von SQL Server 2008 R2 veröffentlicht wurden

Status


Microsoft hat bestätigt, dass es sich hierbei um ein Problem bei den in diesem Artikel genannten Microsoft-Produkten handelt.

Weitere Informationen


Wenn Sie überprüfen möchten, ob dieses Problem auftritt, überprüfen Sie den Ausführungsplan der problematischen Abfrage, und überprüfen Sie dann die Gruppen Operatoren. Überprüfen Sie beispielsweise den Datenstrom Aggregate-Operator, den Hash Aggregate-Operator, den eindeutigen Sortieroperator und den Segment Operator. Wenn die Liste der Ausgabespalten länger als die Liste der gruppierten Spalten ist, tritt dieses Problem auf. 

Informationsquellen


Wenn Sie weitere Informationen zum inkrementellen Wartungsmodell für SQL Server erhalten möchten, klicken Sie auf die folgende Artikelnummer, um den Artikel in der Microsoft Knowledge Base anzuzeigen:
935897 Ein inkrementelles Wartungsmodell steht im SQL Server-Team zum Bereitstellen von Hotfixes für gemeldete Probleme zur Verfügung.
Wenn Sie weitere Informationen zum Benennungsschema für SQL Server-Updates erhalten möchten, klicken Sie auf die folgende Artikelnummer, um den Artikel in der Microsoft Knowledge Base anzuzeigen:
822499 Neues Benennungsschema für Microsoft SQL Server-Softwareupdatepakete
Wenn Sie weitere Informationen zur Terminologie für Softwareupdates erhalten möchten, klicken Sie auf die folgende Artikelnummer, um den Artikel in der Microsoft Knowledge Base anzuzeigen:
824684 Beschreibung der Standardterminologie, die zum Beschreiben von Microsoft-Softwareupdates verwendet wird