Update: Geringe Leistung, wenn ein AFTER-Trigger für eine partitionierte Tabelle in SQL Server 2008 R2 oder SQL Server 2012 läuft

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 2606883 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Alles erweitern | Alles schließen

Auf dieser Seite

Problembeschreibung

Szenarien Sie die folgenden:
  • Sie können in Microsoft SQL Server 2008 R2 oder in Microsoft SQL Server 2012 Partitionen für eine Tabelle erstellen.
  • Sie erstellen ein NACH Trigger für alle EINFÜGEN oder LÖSCHEN Operation, die in der Tabelle ausgeführt wird.
  • Sie führen ein EINFÜGEN oder LÖSCHEN der Vorgang in der Tabelle.

In diesem Szenario möglicherweise Leistungseinbußen auftreten. Möglicherweise viele logische Lesevorgänge auftreten, wenn Sie SQL Profiler ausführen.

Ursache

Dieses Problem tritt aus den folgenden Gründen:
  • Das Speichermodul verwaltet intern eine einzelne versionskette for each-Anweisung.
  • Die Ausführung die Abfrage sucht nach Partitionen der gesamte versionskette finden Sie die Zeilen, die eingefügt werden, für eine der Partitionen.

Lösung

Um dieses Problem zu beheben, wenden Sie den folgenden Hotfix, und verwenden Sie dann das T2470 Ablaufverfolgungsflag -

Kumulatives Update-Informationen

SQL Server-2012 Die Fehlerbehebung für dieses Problem wurde zuerst im kumulativen Update 1 für SQL Server 2012 veröffentlicht. Weitere Informationen über dieses kumulative Updatepaket finden Sie in folgendem Artikel der Microsoft Knowledge Base anzuzeigen:
2679368 Kumulatives Updatepaket 1 für SQL Server 2012
Hinweis Da die Builds kumulativ sind, jede neue Version enthält alle Hotfixes und alle die Sicherheitsupdates, die mit der vorherigen SQL Server 2012 enthalten waren. Microsoft empfiehlt, dass Sie sich die neueste Version, die diesen Hotfix enthält. Weitere Informationen finden Sie in folgendem Artikel der Microsoft Knowledge Base anzuzeigen:
2692828 Die SQL Server 2012 erstellt, die nach der Freigabe von SQL Server 2012
Sie müssen einen SQL Server 2012-Hotfix auf eine Installation von SQL Server 2012 anwenden.

SQL Server 2008 R2 Servicepack 1

Kumulatives Update-Informationen

Die Fehlerbehebung für dieses Problem wurde zuerst im kumulativen Update 3 für SQL Server 2008 R2 Service Pack 1 veröffentlicht. Weitere Informationen dazu, wie Sie dieses kumulative Updatepaket zu erhalten finden Sie in folgendem Artikel der Microsoft Knowledge Base anzuzeigen:
2591748 Kumulatives Updatepaket 3 für SQL Server 2008 R2 Service Pack 1
Hinweis Da die Builds kumulativ sind, jede neue Version enthält alle Hotfixes und alle die Sicherheitsupdates, die mit dem vorherigen SQL Server 2008 R2 enthalten waren. Wir empfehlen, dass Sie sich die neueste Version, die diesen Hotfix enthält. Weitere Informationen finden Sie in folgendem Artikel der Microsoft Knowledge Base anzuzeigen:
2567616 Die SQL Server 2008 R2 erstellt, die nach dem SQL Server 2008 R2 Service Pack 1 veröffentlicht wurden

Hotfix-Informationen

Ein unterstützter Hotfix ist von Microsoft erhältlich. Dieser Hotfix soll jedoch nur das Problem zu beheben, das in diesem Artikel beschrieben wird. Wenden Sie diesen Hotfix nur auf Systemen, bei die dieses spezielle Problem auftritt.

Wenn der Hotfix zum Download zur Verfügung steht, ist es ein Abschnitt "Hotfixdownload available" (Hotfixdownload verfügbar"am oberen Rand dieser Knowledge Base-Artikel. Wenn in diesem Abschnitt nicht angezeigt wird, senden Sie eine Anforderung an Microsoft Customer Service und Support, um den Hotfix zu erhalten.

Hinweis Wenn weitere Probleme auftreten oder wenn eine Problembehandlung erforderlich ist, müssen Sie möglicherweise eine separate Serviceanfrage erstellen. Die normalen Supportkosten gelten für zusätzliche Supportfragen und Probleme, die für diesen speziellen Hotfix nicht qualifizieren. Eine vollständige Liste der Microsoft-Kundendienst und Support-Telefonnummern oder eine separate Serviceanfrage erstellen finden Sie auf die folgende Microsoft-Website:
http://support.Microsoft.com/contactus/?WS=Support
Hinweis Das Formular "Hotfixdownload available" zeigt die Sprachen für die der Hotfix verfügbar ist. Wenn Ihre Sprache nicht angezeigt wird, ist es, da ein Hotfix nicht für diese Sprache verfügbar ist.

Voraussetzungen

Um diesen Hotfix anwenden zu können, müssen Sie Microsoft SQL Server 2008 R2 Service Pack 1 (SP1) installiert haben.

Neustart erforderlich ist.

Sie haben nicht den Computer neu starten, nachdem Sie diesen Hotfix anwenden.

Ersetzte Hotfixes

Dieser Hotfix ersetzt keine zuvor veröffentlichten Hotfix.

Dateiinformationen

Die globale Version dieses besitzt die Dateiattribute (oder höher), die in der folgenden Tabelle aufgelistet sind. Die Datums- und Uhrzeitangaben für diese Dateien sind in Coordinated Universal Time (UTC) aufgelistet. Wenn Sie die Dateiinformationen anzeigen, wird es in die lokale Zeit konvertiert. Um die Differenz zwischen UTC und der Ortszeit zu ermitteln, verwenden die Zeitzone die Registerkarte der Datum und Uhrzeit Element in der Systemsteuerung.

Für alle unterstützten x 86-basierten Versionen von SQL Server 2008 R2 SP1
Tabelle minimierenTabelle vergrößern
DateinameVersion der DateiDateigrößeDatumZeitPlattform
Sqlservr.exe2009.100.2776.043,053,92015-Sep-201101: 47X 86

Für alle unterstützten x 64-basierten Versionen vonSQL Server 2008 R2 SP1

Tabelle minimierenTabelle vergrößern
DateinameVersion der DateiDateigrößeDatumZeitPlattform
Sqlservr.exe2009.100.2776.062,176,60815-Sep-201100: 57X 64

Für alle unterstützten IA-64-basierte VersionenSQL Server 2008 R2 SP1

Tabelle minimierenTabelle vergrößern
DateinameVersion der DateiDateigrößeDatumZeitPlattform
Sqlservr.exe2009.100.2776.0122,105,69615-Sep-201100: 23IA-64


Abhilfe

Um dieses Problem zu umgehen, Ändern des AFTER -Triggers an einen INSTEAD OF INSERT -Trigger oder INSTEAD OF DELETE -Trigger.

Angenommen, Sie führen die folgenden Anweisungen, um einen AFTER -Trigger zu erstellen:
CREATE TRIGGER TR_Test ON Test FOR INSERT AS BEGIN DECLARE @groupe INT SELECT TOP 1 @groupe=Groupe FROM INSERTED END GO
In diesem Szenario ändern Sie den AFTER -Trigger, INSTEAD OF INSERT mithilfe der folgenden Anweisungen:
CREATE TRIGGER TR_Test ON Test INSTEAD OF INSERT AS BEGIN DECLARE @groupe INT SELECT TOP 1 @groupe=Groupe FROM INSERTED INSERT INTO Test (Groupe) SELECT @groupe FROM INSERTED END

Status

Microsoft hat bestätigt, dass dies ein Problem in Microsoft-Produkten, die im Abschnitt "Gilt für" aufgeführt sind.

Eigenschaften

Artikel-ID: 2606883 - Geändert am: Montag, 16. April 2012 - Version: 3.0
Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft SQL Server 2008 R2 Datacenter
  • Microsoft SQL Server 2008 R2 Developer
  • Microsoft SQL Server 2012 Developer
Keywords: 
kbqfe kbhotfixserver kbfix kbexpertiseadvanced kbsurveynew kbautohotfix kbmt KB2606883 KbMtde
Maschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 2606883
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.

Ihr Feedback an uns

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com