Microsoft vertreibt die Fixes für Microsoft SQL Server 2008 R2 Service Pack 1 als eine herunterladbare Datei. Da die Fixes kumulativ sind, enthält jede neue Version alle Hotfixes und alle Sicherheitsupdates, die in der vorherigen Version von SQL Server 2008 R2 Service Pack 1 enthalten waren.
Problembeschreibung
Nachdem Sie ein Upgrade von Microsoft SQL Server 2008 auf Microsoft SQL Server 2008 R2 durchgeführt haben, stellen Sie möglicherweise fest, dass die Leistung sinkt, wenn Sie eine Abfrage ausführen, die Parallelität im Abfrageausführungsplan in SQL Server 2008 R2 verwendet. HinweisWenn Sie den Abfrageplan überprüfen, sehen Sie, dass es mehr rekursiven Hash-Join-Operationen als in SQL Server 2008 gibt. Je größer die Zahl der in der Abfrage verwendeten DOP-Zahl (degree of parallelism), desto größer die Anzahl der rekursiven Hash-Join-Vorgänge, die im Abfrageplan verwendet werden.
Ursache
Dieses Problem tritt aufgrund einiger Änderungen in der Kardinalitäts-Schätzung auf. Wenn die tatsächliche Speicherauslastung den Speichergrenzwert überschritten hat, kann eine kleine Änderung der Kardinalitäts-Schätzung zu verschütten auslösen.HinweisDieses Problem tritt häufiger auf, wenn Sie eine größere DOP-Nummer in einer Abfrage verwenden.
Fehlerbehebung
Nachdem Sie den Hotfix angewendet haben, ist die Anzahl der Hash Join-Partitionen, die von der Verfügbarkeit des Arbeitsspeichers abhängig sind, limitiert. Dieser Fix kann das Problem jedoch nicht in allen Situationen beheben.
Informationen zum kumulativen Update
SQL Server 2008 R2 Service Pack 2
Die Fehlerbehebung für dieses Problem wurde erstmals im kumulativen Update 3 veröffentlicht. Wenn Sie weitere Informationen zum beziehen dieses kumulativen Updatepakets für SQL Server 2008 R2 Service Pack 2 erhalten möchten, klicken Sie auf die folgende Artikelnummer, um den Artikel in der Microsoft Knowledge Base anzuzeigen:
2754552 Kumulatives Updatepaket 3 für SQL Server 2008 R2 Service Pack 2 Hinweis Da die Builds kumulativ sind, enthält jede neue Fix-Version alle Hotfixes und alle Sicherheitsupdates, die in der vorherigen Version von SQL Server 2008 R2 Service Pack 2 enthalten waren. 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:
2730301 Die SQL Server 2008 R2-Builds, die nach dem Veröffentlichen von SQL Server 2008 R2 Service Pack 2 veröffentlicht wurden
SQL Server 2008 R2 Service Pack 1
Der Fix für dieses Problem wurde erstmals im kumulativen Update 8 veröffentlicht. Wenn Sie weitere Informationen zum beziehen dieses kumulativen Updatepakets für SQL Server 2008 R2 Service Pack 1 benötigen, klicken Sie auf die folgende Artikelnummer, um den Artikel in der Microsoft Knowledge Base anzuzeigen:
2723743 Kumulatives Updatepaket 8 für SQL Server 2008 R2 Service Pack 1Hinweis Da die Builds kumulativ sind, enthält jede neue Fix-Version alle Hotfixes und alle Sicherheitsupdates, die in der vorherigen SQL Server 2008 R2 Service Pack 1 Fix-Version enthalten waren. 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:
2567616 Die SQL Server 2008 R2-Builds, die nach dem Veröffentlichen von SQL Server 2008 R2 Service Pack 1 veröffentlicht wurden
Status
Microsoft hat bestätigt, dass es sich hierbei um ein Problem bei den in diesem Artikel genannten Microsoft-Produkten handelt.
Problemumgehung
Um dieses Problem zu umgehen, verringern Sie die DOP-Nummer, um die rekursiven Hash-Join-Vorgänge zu verringern. Dies kann jedoch dazu führen, dass der Abfrageoptimierer die serielle Ausführung verwendet, und die Kosten für die serielle Ausführung sind groß.
Weitere Informationen
Weitere Informationen zu Hash-Joins finden Sie auf der folgenden Microsoft Developer Network (MSDN)-Website:
Grundlegendes zu HashverknüpfungenWeitere Informationen zur SQL Server-Speicherzuteilung finden Sie auf der folgenden MSDN-Blogs-Website: