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.

Problembeschreibung

Angenommen, Sie haben Microsoft SQL Server 2012 Service Pack 2 (SP2) auf Ihrem Computer installiert. Sie rufen die CDC.fn_cdc_get_net_changes_<capture_instance> Change Data Capture (CDC)-Abfrage in der sp_executesql gespeicherten Prozedur auf, und Sie kann aus einer Anwendungsquelle wie SQL Server Management Studio Server (SSMS), CDC selbst oder den SQL Server Integration Services (SSIS)-Paketen stammen. In diesem Fall tritt eine schlechte Leistung in SQL Server 2012 auf.HinweisDer Leistungsrückgang kann beträchtlich sein. Eine Abfrage kann beispielsweise in SQL Server 2012 SP1 in wenigen Sekunden abgeschlossen werden. Die Ausführung der gleichen Abfrage kann jedoch mehrere Stunden in SQL Server 2012 SP2 dauern. Darüber hinaus hilft die Statistikaktualisierung nicht beim Problem.

Ursache

Dieses Problem tritt aufgrund eines Problems in der Kardinalitäts-Schätzung auf, das die Leistung der CDC.fn_cdc_get_net_changes_<capture_instance> Abfrage stark beeinträchtigt.

Jedes neue kumulative Update für SQL Server enthält alle Hotfixes und alle Sicherheitsupdates, die im vorherigen kumulativen Update enthalten waren. Schauen Sie sich die neuesten kumulativen Updates für SQL Server an:

Problemumgehung

Um dieses Problem zu umgehen, verwenden Sie den Abfragehinweis für die Option (neu kompilieren) in der Abfrage. Wenn die Abfrage von SSIS-CDC-Komponenten ausgelöst wird, kann der Option (neu kompilieren) -Hinweis durch Erstellen einer Planhinweisliste wie im folgenden Beispiel erzwungen werden:Exec sp_create_plan_guide @name = N'CDC_Query1_PlanGuide', @stmt = N'select [__$start_lsn],[__$operation],[__$update_mask],[Column1],[Column2],[Column3] from [cdc].[fn_cdc_get_net_changes_dbo_Table1](CONVERT(binary(10), @cs, 1), CONVERT(binary(10), @ce, 1), @mode)',@type = N'SQL',@module_or_batch = NULL, @params = N'@ce nvarchar(22),@mode nvarchar(14),@cs nvarchar(22)', @hints = N'OPTION (RECOMPILE)'; HinweisSie müssen die Beispielabfrage durch die Abfrage ersetzen, mit der Sie Probleme haben. Sie kann aus der Profiler -Ablaufverfolgung gepackt werden, sodass kein zusätzliches Zeichen versehentlich hinzugefügt wird. Stellen Sie außerdem sicher, dass die Auswahl Abfrage in eine einzelne Zeile gesetzt wird (beispielsweise sollte es keine Wagenrücklauf-oder Zeilenvorschübe geben), damit die Planhinweisliste erfolgreich funktionieren kann. Möglicherweise müssen Sie auch DBCC FREEPROCCACHE verwenden, um den alten Plan aus dem Cache abzuklopfen.

Status

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

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!

×