Symptom
Anta att du har installerat Microsoft SQL Server 2012 Service Pack 2 (SP2) på datorn. Du kan ringa till cdc.fn_cdc_get_net_changes_<capture_instance> ändra en CDC-fråga (data capture) i den sp_executesql lagrade proceduren, och den får komma från en program källa, till exempel SQL Server Management Studio Server (SSMS), CDC eller SQL Server Integration Services (SSIS). I den här situationen får du dåliga prestanda i SQL Server 2012.Obs! Den minskade prestandan kan vara stor. En fråga kan till exempel avslutas om några sekunder i SQL Server 2012 SP1. Samma fråga kan ta flera timmar att köra i SQL Server 2012 SP2. Dessutom hjälper inte statistik uppdateringen dig med problemet.
Orsak
Det här problemet uppstår på grund av ett problem med kardinalitet som påverkar prestanda i cdc.fn_cdc_get_net_changes_<capture_instance> fråga.
Lösning
Problemet är först åtgärdat i den kumulativa uppdateringen av SQL Server.
Kumulativ uppdatering 3 för SQL Server 2012 SP2 /en-us/help/3002049
Varje ny kumulativ uppdatering för SQL Server innehåller alla snabb korrigeringar och alla säkerhets korrigeringar som ingick i den föregående kumulativa uppdateringen. Kolla in de senaste kumulativa uppdateringarna för SQL Server:
Lösning
Undvik det här problemet genom att använda frågetipset för alternativet (RECOMPILE) i frågan. Om frågan utlöses från SSIS CDC Components kan alternativet (RECOMPILE)- tipset tvingas genom att skapa en plan guide som i följande exempel: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)'; Obs! Du måste ersätta exempel frågan med frågan som du har problem med. Den kan fångas från profilens trace så inget extra tecken läggs till oavsiktligt. Se dessutom till att Select -frågan placeras på en enda rad (till exempel om den inte ska innehålla vagn RETUR eller rad matning) så att plan guiden kan fungera. Du kan också behöva använda DBCC FREEPROCCACHE för att stänga av det gamla abonnemanget.
Status
Microsoft har bekräftat att det här är ett problem i Microsoft-produkterna som nämns i "gäller".