Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.
Quando você executa o Microsoft Dynamics CRM 4.0, a tabela AsyncOperationBase aumenta para ser muito grande. Quando a tabela contém milhões de registros, o desempenho é lento.
Além disso, erros semelhantes aos seguintes são registrados no servidor do Microsoft Dynamics CRM no log de eventos do aplicativo:
Tipo de evento: erro Origem do evento: MSCRMDeletionService Categoria do evento: nenhum IDENTIFICAÇÃO de evento: 16387 Data: 2009/01/26 Tempo: 11:41:54 AM Usuário: N/d Computador: SERVIDOR_CRM Descrição: Erro: o serviço de exclusão falhou ao limpar tabela = CleanupInactiveWorkflowAssembliesProcedure para obter mais informações, consulte o Centro de Ajuda e suporte em http://go.microsoft.com/fwlink/events.asp.
Para resolver esse problema, execute uma limpeza da tabela AsyncOperationBase executando o script a seguir em relação a <OrgName> _MSCRM, onde <orgname> é um espaço reservado para o nome real da sua organização.
Aviso: antes limpando os dados, observe que concluída sistema trabalhos têm valor comercial em alguns casos e precisam ser armazenados por um longo período, portanto, por favor discutir primeiro com a equipe de administração da sua organização.
Trabalhos de sistema afetados:
Coleta de dados SQM. Métrica de qualidade de software - que coleta dados para o cliente enfrentar o programa.
Estados do contrato de atualização SQL trabalho. Este trabalho será executado uma vez por dia à meia-noite. Este trabalho define os contratos expirados em um estado de expirado.
Organização total índice de catálogo de texto - preenche o índice de texto completo no banco de dados para pesquisar artigos de kb no CRM.
Se trabalhos recorrentes foram cancelados eles serão removidos.
anotações
O script SQL neste artigo é apenas esforço único. Você pode adicionar isso como um trabalho SQL a ser executado em uma base recorrente em uma base noturna, semanal ou mensal. como a execução CRM , você precisará de um se aplicam a este artigo em uma base semanal dependendo de sua empresa precisa, ou aplicar a solução por writting trabalhos de BULK DELETE personalizados (consulte nossa documentação do SDK do CRM na propriedade BulkDeleteRequest.QuerySet, classe BulkDeleteRequest e ordem de exclusão).
Certifique-se que os registros de AsyncOperation para fluxos de trabalho e os registros correspondentes são excluídos do objeto WorkflowLogBase .
Certifique-se que todos os registros correspondentes bulkdeletefailure são excluídos.
Verifique se que somente os seguintes tipos de operação de assíncrono serão excluídos se o código de estado dos tipos é 3 e o código de status dos tipos é 30 ou 32:
Tarefa de expansão de fluxo de trabalho (1)
Coletar dados SQM (9)
PersistMatchCode (12)
FullTextCatalogIndex (25)
UpdateContractStates (27)
Fluxo de trabalho (10)
IF EXISTS (SELECT name from sys.indexes
WHERE name = N'CRM_AsyncOperation_CleanupCompleted')
DROP Index AsyncOperationBase.CRM_AsyncOperation_CleanupCompleted
GO
CREATE NONCLUSTERED INDEX CRM_AsyncOperation_CleanupCompleted
ON [dbo].[AsyncOperationBase] ([StatusCode],[StateCode],[OperationType])
GO
declare @DeleteRowCount int
Select @DeleteRowCount = 2000
declare @DeletedAsyncRowsTable table (AsyncOperationId uniqueidentifier not null primary key)
declare @continue int, @rowCount int
select @continue = 1
while (@continue = 1)
begin
begin tran
insert into @DeletedAsyncRowsTable(AsyncOperationId)
Select top (@DeleteRowCount) AsyncOperationId
from AsyncOperationBase
where OperationType in (1, 9, 12, 25, 27, 10) AND StateCode = 3 AND StatusCode in (30, 32)
Select @rowCount = 0
Select @rowCount = count(*) from @DeletedAsyncRowsTable
select @continue = case when @rowCount <= 0 then 0 else 1 end
if (@continue = 1)
begin
delete WorkflowLogBase from WorkflowLogBase W, @DeletedAsyncRowsTable d
where W.AsyncOperationId = d.AsyncOperationId
delete BulkDeleteFailureBase From BulkDeleteFailureBase B, @DeletedAsyncRowsTable d
where B.AsyncOperationId = d.AsyncOperationId
delete AsyncOperationBase From AsyncOperationBase A, @DeletedAsyncRowsTable d
where A.AsyncOperationId = d.AsyncOperationId
delete @DeletedAsyncRowsTable
end
commit
end
--Drop the Index on AsyncOperationBase
DROP INDEX AsyncOperationBase.CRM_AsyncOperation_CleanupCompleted
Para melhorar o desempenho geral do Microsoft CRM, agende o serviço de exclusão do Microsoft CRM para executar durante horários de menor movimento para o Microsoft CRM. Por padrão, o serviço é executado no momento em que Microsoft CRM foi instalado. No entanto, você pode executar o serviço seja executado às 10: 00 em vez de ao tempo padrão. Para fazer isso, use o Editor de trabalho do Microsoft CRM ScaleGroup. Para obter mais informações, visite o seguinte site da MSDN:
Observação Esta ação não afeta diretamente o desempenho do script.
Para melhorar o desempenho dos scripts de exclusão neste artigo e melhorar o código do Microsoft CRM DeletionService que executa exclusões semelhantes, adicionar os seguintes índices three para o banco de dados OrganizationName_MSCRM antes de executar o script de exclusão neste artigo:
CREATE NONCLUSTERED INDEX CRM_WorkflowLog_AsyncOperationID ON [dbo].[WorkflowLogBase] ([AsyncOperationID])
GO
CREATE NONCLUSTERED INDEX CRM_DuplicateRecord_AsyncOperationID ON [dbo].[DuplicateRecordBase] ([AsyncOperationID])
GO
CREATE NONCLUSTERED INDEX CRM_BulkDeleteOperation_AsyncOperationID ON [dbo].[BulkDeleteOperationBase]
(AsyncOperationID)
GO
Observação se você não adicionar esses índices, o script de exclusão pode levar horas para ser executado.
Parar o serviço processamento do Microsoft CRM assíncrona enquanto você executar esse script.
OPTIONAL: reconstruir os seguintes índices e atualizar estatísticas:
-- Rebuild Indexes & Update Statistics on AsyncOperationBase Table
ALTER INDEX ALL ON AsyncOperationBase REBUILD WITH (FILLFACTOR = 80, ONLINE = OFF,SORT_IN_TEMPDB = ON, STATISTICS_NORECOMPUTE = OFF)
GO
-- Rebuild Indexes & Update Statistics on WorkflowLogBase Table
ALTER INDEX ALL ON WorkflowLogBase REBUILD WITH (FILLFACTOR = 80, ONLINE = OFF,SORT_IN_TEMPDB = ON, STATISTICS_NORECOMPUTE = OFF)
GO
OPTIONAL: Atualizar estatísticas com verificação total em todas as tabelas envolvidas com esta consulta usando o abaixo comandos (preferencialmente em fora de pico):
UPDATE STATISTICS [dbo].[AsyncOperationBase] WITH FULLSCAN
UPDATE STATISTICS [dbo].[DuplicateRecordBase] WITH FULLSCAN
UPDATE STATISTICS [dbo].[BulkDeleteOperationBase] WITH FULLSCAN
UPDATE STATISTICS [dbo].[WorkflowCompletedScopeBase] WITH FULLSCAN
UPDATE STATISTICS [dbo].[WorkflowLogBase] WITH FULLSCAN
UPDATE STATISTICS [dbo].[WorkflowWaitSubscriptionBase] WITH FULLSCAN
OPTIONAL : alterar o modelo de recuperação do banco de dados MSCRM para simples evitar o excesso de geração de logs do servidor SQL. Para SQL server 2005, logon para o Microsoft SQL Server Management Studio como administrador, direito clique em seu _MSCRM <org_name>, clique em Propriedades , clique em Opções e clique em Modelo de recuperação . Marcar simples e, em seguida, clique em OK . após executar esse script tempo inicial, o modelo de recuperação <org_name> _MSCRM banco de dados deve ser alternado para FULL para o melhor modelo de recuperação de dados.
Para determinar o número de registros a ser excluído pelo script neste artigo, execute o seguinte script contagem no banco de dados OrganizationName_MSCRM:
Select Count(AsyncOperationId)
from AsyncOperationBase WITH (NOLOCK)
where OperationType in (1, 9, 12, 25, 27, 10)
AND StateCode = 3 AND StatusCode IN (30,32)
Para obter mais informações, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
954929
(http://support.microsoft.com/kb/954929/
)
A entidade de AsyncOperation consome uma parte significativa do banco de dados [Org] _MSCRM e causa baixo desempenho no Microsoft Dynamics CRM
Para obter mais informações, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
957871
(http://support.microsoft.com/kb/957871/
)
Os registros de tarefas do fluxo de trabalho expansão causar tabela AsyncOperationBase no banco de dados MSCRM para crescer muito grande no Microsoft Dynamics CRM 4.0
Para obter mais informações sobre terminologia de atualização de software, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
824684
(http://support.microsoft.com/kb/824684/LN/
)
Descrição da terminologia padrão que é usada para descrever as atualizações de software
Para obter mais informações sobre terminologia para pacote de hotfix e atualização do software do Microsoft Business Solutions CRM, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
887283
(http://support.microsoft.com/kb/887283/
)
Padrões de nomenclatura do pacote de Microsoft Business Solutions CRM software hotfix e atualização
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 968520
(http://support.microsoft.com/kb/968520/en-us/
)
Quanto esforço foi necessário para seguir os procedimentos deste artigo?
Muito baixo
Baixo
Moderado
Alto
Muito alto
Diga-nos o porque e o que podemos fazer para melhorar esta informação
Obrigado! Seus comentários são usados para nos ajudar a aperfeiçoar o conteúdo de suporte. Para obter mais opções de ajuda, visite a Home Page de Ajuda e Suporte.