Applies To
SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Standard

Symptoms

Assume that you use precomputed partitions in merge replication with parameterized and join filters in Microsoft SQL Server 2012 or Microsoft SQL Server 2014. When you try to use the INSERT statement in tables at the root of the filter (on Publisher side), you may experience decreased performance on INSERT.

Each new cumulative update for SQL Server contains all the hotfixes and all the security fixes that were included with the previous cumulative update. Check out the latest cumulative updates for SQL Server:

More Information

INSERT into <Table> triggers Merge INSERT trigger MSmerge_ins_XXXX, and the trigger calls the procedure MSmerge_expand_sp_XXXX.If you encounter this issue, you will notice that the following Insert/Select Distinct statement of the Merge expansion procedure MSmerge_expand_sp_XXXX consumes much time. In this situation, the performance of INSERT decreases.

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 has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.

Need more help?

Want more options?

Explore subscription benefits, browse training courses, learn how to secure your device, and more.