Bei Microsoft anmelden
Melden Sie sich an, oder erstellen Sie ein Konto.
Hallo,
Wählen Sie ein anderes Konto aus.
Sie haben mehrere Konten.
Wählen Sie das Konto aus, mit dem Sie sich anmelden möchten.

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

Stellen Sie sich folgendes Szenario vor:

  • Eine Anwendung führt eine Abfrage aus, die auf einige temporäre Tabellen in Microsoft SQL Server 2008 und in Microsoft SQL Server 2008 R2 verweist. Die temporären Tabellen werden in einer Sitzung anstatt in einer gespeicherten Prozedur erstellt.

  • Der Abfrageplan wird zwischengespeichert.

  • Viele Benutzer führen dieselbe Abfrage in einer stark parallelen Umgebung aus. Viele Benutzer verwenden beispielsweise eine Anwendung, die die folgende Abfrage ausführt:

    create table #x (col1 int) go insert into #x values (1) go select * from #x where col1 = 1 go

In diesem Szenario stößt die Anwendung auf Leistungsprobleme.Hinweis Weitere Informationen dazu, wie Sie dieses Problem identifizieren können, finden Sie im Abschnitt "Weitere Informationen".

Ursache

Dieses Problem tritt auf, weil dieselben Abfragepläne im gleichen Hash Bucket für jeden Benutzer in den Cache eingefügt werden, wenn der Abfragetext identisch ist. Wenn eine große Anzahl von Plänen mit dem gleichen Bucket (auch als hashkette bezeichnet) Hashed wird, wird die Zeit zum Nachschlagen eines Plans im Cache erheblich erhöht, und die Leistungsprobleme können auftreten. Darüber hinaus kann es bei Arbeitsthreads zu schwerwiegenden Spinlock-Konflikten kommen, und andere Threads sind davon betroffen, wenn diese Arbeitsthreads die richtigen Planungs Erträge nicht ausführen.

Fehlerbehebung

Hinweis Derzeit steht nur das Update für SQL Server 2008 R2 zur Verfügung. Informationen zu SQL Server 2008 finden Sie im Abschnitt "Problemumgehung", um dieses Problem zu umgehen.

Informationen zum kumulativen Update

SQL Server 2008 R2 Service Pack 1

Der Fix für dieses Problem wurde erstmals im kumulativen Update 1 für SQL Server 2008 R2 Service Pack 1 veröffentlicht. Wenn Sie weitere Informationen zum Abrufen dieses kumulativen Updatepakets benötigen, klicken Sie auf die folgende Artikelnummer, um den Artikel in der Microsoft Knowledge Base anzuzeigen:

2544793 Kumulatives Update Paket 1 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 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:

2567616 Die SQL Server 2008 R2-Builds, die nach dem Veröffentlichen von SQL Server 2008 R2 Service Pack 1 veröffentlicht wurden

SQL Server 2008 R2

Der Fix für dieses Problem wurde erstmals im kumulativen Update 7 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:

2507770 Kumulatives Update Paket 7 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.

Problemumgehung

Um dieses Problem in SQL Server 2008 und in SQL Server 2008 R2 zu umgehen, verschieben Sie alle Bezüge temporärer Tabellen in gespeicherte Prozeduren.

Weitere Informationen

Weitere Informationen zum Erstellen und Ändern von Tabellen Grundlagen finden Sie auf der folgenden MSDN-Website:

Erstellen und Ändern von Tabellen GrundlagenSpinLock-Konflikte können aus der sys.dm_os_spinlock_stats Dynamic Management View (DMV) identifiziert werden, die eine starke Konflikt Rate auf dem SOS_CACHESTORE Spinlock. Um dieses Problem zu identifizieren, führen Sie eine Abfrage aus, die der folgenden ähnelt:

select cp.bucketid, count(cp.bucketid) as BucketCount, st.text from sys.dm_exec_cached_plans cp cross apply sys.dm_exec_sql_text(cp.plan_handle) as st group by cp.bucketid, st.text having count(cp.bucketid) >1 order by BucketCount descWenn die folgenden Bedingungen erfüllt sind, wenn Sie diese Abfrage ausführen, können die Leistungsprobleme auftreten:

  • Mit dieser Abfrage wird derselbe Abfragetext generiert.

  • Die Anzahl für dieselbe Bucket -Zahl ist groß.Hinweis Eine große Anzahl für dieselbe Bucket -Zahl ist in der Regel mehr als 1000.

  • Die Abfragen verweisen auf temporäre Tabellen

Benötigen Sie weitere Hilfe?

Möchten Sie weitere Optionen?

Erkunden Sie die Abonnementvorteile, durchsuchen Sie Trainingskurse, erfahren Sie, wie Sie Ihr Gerät schützen und vieles mehr.

In den Communities können Sie Fragen stellen und beantworten, Feedback geben und von Experten mit umfassendem Wissen hören.

War diese Information hilfreich?

Wie zufrieden sind Sie mit der Sprachqualität?
Was hat Ihre Erfahrung beeinflusst?
Wenn Sie auf "Absenden" klicken, wird Ihr Feedback zur Verbesserung von Produkten und Diensten von Microsoft verwendet. Ihr IT-Administrator kann diese Daten sammeln. Datenschutzbestimmungen.

Vielen Dank für Ihr Feedback!

×