Síntomas
Suponga que usa particiones precalculadas en la duplicación de mezcla con filtros parametrizados y de combinación en Microsoft SQL Server 2012 o Microsoft SQL Server 2014. Al intentar usar la instrucción Insert en las tablas de la raíz del filtro (en Publisher), es posible que experimente un rendimiento reducido al Insertar.
Resolución
Después de aplicar este hotfix, debe ejecutar el procedimiento sp_vupgrade_mergeobjects manualmente en la base de datos publicada. Puede ayudar a regenerar los desencadenadores específicos del artículo, los procedimientos almacenados y las vistas que se usan para realizar un seguimiento y aplicar cambios de datos para la replicación de mezcla. El problema se solucionó por primera vez en la siguiente actualización acumulativa de SQL Server.
Actualización acumulativa 5 para SQL Server 2014 /en-us/help/3011055
Actualización acumulativa 3 para SQL Server 2012 SP2 /en-us/help/3002049
Cada actualización acumulativa para SQL Server contiene todas las revisiones y todas las revisiones de seguridad incluidas en la actualización acumulativa anterior. Consulte las últimas actualizaciones acumulativas para SQL Server:
Más información
Insert into<tabla> desencadena MSmerge_ins_XXXXdesencadenador de inserción de mezcla, y el desencadenador llama al procedimiento MSmerge_expand_sp_XXXX. Si se produce este problema, observará que la siguiente instrucción Insert o SELECT DISTINCT del procedimiento de expansión de la combinación MSmerge_expand_sp_XXXX consume mucho tiempo. En este caso, el rendimiento de la inserción disminuye.
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)
Estado
Microsoft ha confirmado que se trata de un problema de los productos de Microsoft recogidos en la sección "Se aplica a".