Symptom
Anta att du använder förberäknade partitioner i Sammanslagningsreplikering med parametriserade och Join-filter i Microsoft SQL Server 2012 eller Microsoft SQL Server 2014. När du försöker använda insert -uttrycket i tabeller i roten av filtret (på Publisher-sidan) kan du uppleva sämre prestanda på Infoga.
Lösning
När du har installerat den här snabb korrigeringen måste du köra sp_vupgrade_mergeobjects proceduren manuellt på den publicerade databasen. Den kan hjälpa dig att återskapa de artikel specifika utlösarna, lagrade procedurer och vyer som används för att spåra och tillämpa data ändringar för Sammanslagningsreplikering. Problemet är först åtgärdat i den kumulativa uppdateringen av SQL Server.
Kumulativ uppdatering 5 för SQL Server 2014 /en-us/help/3011055
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:
Mer information
Infoga i<tabell> utlösare slå samman infoga utlösare MSmerge_ins_XXXXoch utlösare anropar proceduren MSmerge_expand_sp_XXXX. Om du stöter på det här problemet kommer du att märka att följande insert/Select DISTINCT- uttryck för MSmerge_expand_sp_XXXX proceduren för slå samman ökning är mycket tid. I den här situationen är det bara att lägga till minskningar.
insert into dbo.MSmerge_current_partition_mappings with (rowlock) (publication_number, tablenick, rowguid, partition_id) select distinct 1, mc.tablenick, mc.rowguid, v.partition_id from dbo.MSmerge_contents mc with (rowlock) JOIN dbo.[MSmerge_dynamic_filter_merge_new_settings_PARTITION_VIEW] v with (rowlock) ON mc.tablenick = <tablenick> and mc.rowguid = v.[rowguid] and mc.marker = @child_marker and v.partition_id in (select partition_id from dbo.MSmerge_current_partition_mappings cpm with (rowlock) JOIN dbo.MSmerge_contents mc2 with (rowlock) ON cpm.rowguid = mc2.rowguid and mc2.marker = @marker) where not exists (select * from MSmerge_current_partition_mappings with (readcommitted, rowlock, readpast) where publication_number = 1 and tablenick = <tablenick> and rowguid = v.[rowguid] and partition_id = v.partition_id)
Status
Microsoft har bekräftat att det här är ett problem i Microsoft-produkterna som nämns i "gäller".