Sümptomid
Oletame, et olete oma arvutisse rakendanud Microsoft SQL Server 2012 Service Pack 2 (SP2). Helistate cdc.fn_cdc_get_net_changes_<capture_instance> muuta andmete püüdmise (CDC) päringu sp_executesql salvestatud protseduuri ja see võib pärineda rakenduse allikas (nt SQL Server Management Studio server (SSMS), CDC ise või SQL serveri Integration Services (SSIS) paketid. Selles olukorras ilmneb kehv jõudlus SQL Server 2012.Märkus.Jõudluse vähenemine võib olla suur. Näiteks saab päring lõpetada mõne sekundiga SQL Server 2012 hoolduspaketis SP1. Samas päringus võib SQL Server 2012 SP2 käitamiseks kuluda mitu tundi. Lisaks ei aita statistika värskendamine probleemile kaasa.
Põhjus
See probleem ilmneb probleemi tõttu, mis mõjutab oluliselt cdc.fn_cdc_get_net_changes_<capture_instance> päringu jõudlust.
Lahendus
Probleem parandati esmakordselt SQL serveri järgmises koondvärskenduses.
Kumulatiivne värskendus 3 SQL Server 2012 SP2 jaoks /en-us/help/3002049
Iga uus koondvärskenduses SQL Server sisaldab kõiki käigultparandused ja kõik turvaparandusi, mis kuulusid eelmise koondvärskenduse. Vaadake SQL serveri kumulatiivseid värskendusi.
Lahendus
Selle probleemi lahendamiseks saate päringus kasutada suvandit (KOMPILEERI) . Kui päring käivitatakse SSIS CDC komponentidest, võib suvand (KOMPILEERI) vihjet sundida, luues plaani juhendi järgmises näites: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)'; Märkus.Peate asendama päringuga päringu, millele teil on probleeme. Seda saab haarata ka Profiler jälgedest, seega pole lisamärki kogemata lisatud. Lisaks veenduge, et päringu Select (päring) pannakse ühte reale (nt ei tohiks olla ühtegi veo tagastust ega liini kanalit), nii et plaani juhend töötaks edukalt. Võite kasutada ka DBCC FREEPROCCACHE , et vana leping vahemälust eemaldada.
Olek
Microsoft on kinnitanud, et see probleem esineb jaotises "kehtib järgmiste toodete kohta" loetletud Microsofti toodetes.