Sintomas
Suponha que você use partições precalculadas na replicação de mesclagem com parâmetros de junção e parametrizada no Microsoft SQL Server 2012 ou no Microsoft SQL Server 2014. Quando você tenta usar a instrução Insert em tabelas na raiz do filtro (no lado do Publisher), pode ocorrer um desempenho reduzido durante a inserção.
Resolução
Depois de aplicar esse hotfix, você deve executar o procedimento sp_vupgrade_mergeobjects manualmente no banco de dados publicado. Ele pode ajudar a gerar novamente os gatilhos específicos do artigo, os procedimentos armazenados e os modos de exibição que são usados para controlar e aplicar as alterações de dados da replicação de mesclagem. O problema foi corrigido primeiro na atualização cumulativa a seguir do SQL Server.
Atualização cumulativa 5 para SQL Server 2014 /en-us/help/3011055
Atualização cumulativa 3 para SQL Server 2012 SP2 /en-us/help/3002049
Cada nova atualização cumulativa do SQL Server contém todos os hotfixes e todas as correções de segurança incluídas na atualização cumulativa anterior. Confira as atualizações cumulativas mais recentes do SQL Server:
Informações adicionais
Inserir em<tabela> gatilhos de inserção de inserção de gatilho MSmerge_ins_XXXXe o gatilho chama o procedimento MSmerge_expand_sp_XXXX. Se você encontrar esse problema, observará que a seguinte instrução Insert/SELECT DISTINCT do procedimento de expansão de mesclagem MSmerge_expand_sp_XXXX consome muito tempo. Nessa situação, o desempenho da inserção diminui.
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
A Microsoft confirmou que este é um problema nos produtos Microsoft listados na seção "Aplicável a".