KB2989478 – FIX: nekvalitní cdc.fn_cdc_get_net_changes_<capture_instance> v systému SQL Server 2012 SP2

Microsoft 365 vám umožní pracovat odkudkoli a z libovolného zařízení

Upgradujte na Microsoft 365, ať můžete kdekoli používat nejnovější funkce a vylepšení.

Upgradovat hned

Příznaky

Předpokládejme, že jste na počítači použili aktualizaci Microsoft SQL Server 2012 Service Pack 2 (SP2). Zavoláte cdc.fn_cdc_get_net_changes_<capture_instance> příkaz change data zachytávation (CDC) v uložené proceduře sp_executesql a může považovat ze zdroje aplikací, jako je SQL Server Management Studio Server (SSMS), samotného CDC nebo balíčků služby SQL Server Integration Services (SSIS). V tomto případě dochází k slabému výkonu SQL serveru 2012.PoznámkaPokles výkonu může být velký. V systému SQL Server 2012 SP1 může být třeba dokončit během několika sekund. Spuštění jednoho dotazu v SQL serveru 2012 SP2 však může trvat několik hodin. Aktualizace statistiky navíc nepomáhá s tímto problémem.

Příčina

K tomuto problému dochází kvůli problému s odhadem mohutnosti, který značně ovlivňuje výkon cdc.fn_cdc_get_net_changes_<capture_instance> dotazu.

Každá nová kumulativní aktualizace pro SQL Server obsahuje všechny opravy hotfix a všechny opravy zabezpečení, které byly součástí předchozí kumulativní aktualizace. Podívejte se na nejnovější kumulativní aktualizace SQL serveru:

Alternativní řešení

Tento problém vyřešíte pomocí nápovědy Možnosti dotazu (RECOMPILE) v dotazu. V případě, že se dotaz spouští ze součástí SSIS CDC, může být průvodcem (RECOMPILE) vynucený vytvořením průvodce plánem, jako v následujícím příkladu: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)'; PoznámkaPříklad dotazu je třeba nahradit dotazem, který vám vystavil. Může být převzata z trasování profileru , takže nebude omylem přidáno žádné další znaky. Navíc se ujistěte, že je výběrový dotaz uložený na jednom řádku (například by neměl mít žádnou návratnou čáru), aby průvodce plánem fungoval úspěšně. Je také možné, že budete muset pomocí příkazu DBCC FREEPROCCACHE vyseknout starý plán z mezipaměti.

Stav

Společnost Microsoft potvrzuje, že se jedná o problém v produktech této společnosti, které jsou uvedeny v části Informace v tomto článku jsou určeny pro produkt.

Potřebujete další pomoc?

Rozšiřte své znalosti a dovednosti
Projít školení
Získejte nové funkce jako první
Připojit se k programu Microsoft Insider

Byly tyto informace užitečné?

Děkujeme za váš názor!

Děkujeme vám za váš názor! Pravděpodobně bude užitečné, když vás spojíme s některým z našich agentů podpory Office.

×