Solução de problemas de desempenho do conjunto de importação
Revise esses problemas de desempenho para solucionar problemas e melhorar o desempenho dos trabalhos do conjunto de importação.
Executando regras de negócio durante a transformação
A execução de regras de negócios durante a transformação pode fazer com que a transformação demore mais do que o esperado ou que a instância fique mais lenta.
Se torna um problema : Ao importar uma quantidade muito grande de dados. Por exemplo, importar todos os dados de um sistema antigo.
Sintomas : A transformação leva muito mais tempo do que o esperado. Toda a instância pode ficar lenta durante esse tempo.
Scripts de transformação lenta
Usar várias consultas GlideRecord ou loops grandes pode tornar scripts de transformação mais lentos.
Se torna um problema : Quando os scripts de transformação estão usando várias consultas GlideRecord ou fazendo loop em grandes coleções de objetos para cada linha. Este problema pode aparecer quando o script de transformação não é eficiente. Na maioria dos casos, os objetivos de script podem ser alcançados usando a funcionalidade integrada na aplicação Conjunto de importação. Por exemplo, você pode criar script aglutinar com distinção entre maiúsculas e minúsculas Em vez de escrever scripts que usam consultas GlideRecord. As consultas GlideRecord normalmente atrasam a importação.
Sintomas : A transformação leva muito mais tempo do que o esperado. Dependendo do script, a instância inteira pode ficar lenta durante esse tempo.
Como evitar isso : Use a funcionalidade do sistema de base sempre que possível em vez de escrever scripts personalizados e, se você escrever scripts, evite escrever scripts complicados que usam consultas GlideRecord.
Importando dados que não foram alterados
A importação repetida de dados que não foram alterados leva a muitas linhas ignoradas.
Se torna um problema : Quando você está importando dados de uma tabela muito grande e a maioria dos registros não está sendo atualizada regularmente.
Sintomas : O conjunto de importação leva mais tempo do que o esperado. Em , espere ver uma importação com um Contagem total isso é muito alto com um Contagem ignorada também é muito alto - isso é encontrado sob Mensagem coluna. Indicando que a maioria dos registros importados não foi realmente alterada. Esses registros não precisavam ser importados.
Como evitar isso : Se você estiver executando uma importação JDBC, use a opção de data/hora da última execução em seu conjunto de importação Fonte de dados . Para um tipo de importação de arquivo, certifique-se de que o que está gerando seus arquivos está adicionando apenas dados novos ou que foram alterados.
Aglutinação em campos não indexados
Aglutinar campos não indexados com uma grande quantidade de dados pode fazer com que as transformações fiquem lentas.
Se torna um problema Ao corresponder campos que não estão indexados, isso faz com que a fase de transformação de uma importação seja executada lentamente. No entanto, isso só se torna um problema se houver uma quantidade grande de dados. Em casos extremos, isso causa problemas de desempenho com o banco de dados devido à carga adicionada.
Sintomas : O tempo gasto na fase de transformação da importação é grande em relação ao tempo necessário para carregar os dados. Tempos de transformação altos.
Como evitar isso : Se possível, você deve aglutinar em um campo exclusivo e já indexado. Para determinar se um campo já está indexado, navegue até e encontre a tabela. Na lista de colunas dessa tabela, uma coluna indexada tem um ícone azul com um i ao lado dela, se indexada. Para obter assistência na indexação de um contato de campo ServiceNow Suporte técnico.
Executando importações simultaneamente
Executar importações simultaneamente pode causar carga excessiva no banco de dados.
Se torna um problema : Ao importar grandes quantidades de dados, coloca uma carga adicional no banco de dados. Por exemplo, importar 500 000 usuários e importar 200 000 itens de configuração ao mesmo tempo. Isso pode ter um impacto significativo no desempenho em todas as consultas no sistema devido ao aumento da carga no banco de dados. Este problema é especialmente grave quando duas importações estão importando para a mesma tabela. Nesse caso, há um possível problema de contenção para a tabela. Além disso, dependendo de qual tabela está envolvida no processamento, isso pode prejudicar gravemente o desempenho da importação e da instância.
Sintomas Várias importações simultâneas executadas lentamente combinadas com o carregamento no banco de dados. Você vê um grande número de inserções e atualizações; e se houver carga ou contenção suficiente, tempos de espera de E/S altos.
Como evitar isso : Escalonar suas importações para que elas não se sobreponham.
Grandes tabelas de conjuntos para importação
Não limpar tabelas de conjunto de importação pode fazer com que essas tabelas se tornem desordenadas e lentas.
Se torna um problema : Quando Excluidor do conjunto de importação o trabalho não está em execução.
Sintomas : Este é um problema de tamanho. Se os conjuntos de importação não forem limpos regularmente (uma limpeza é recomendada após sete dias de dados), a tabela será preenchida, causando a interrupção das importações.
Como evitar isso : Verifique Excluidor do conjunto de importação o trabalho está em execução. Se não estiver em execução no momento, entre em contato com Suporte e atendimento ao cliente pois eles truncarão todas as tabelas de conjuntos de importação antes de habilitar este trabalho.
Alterando esquema de tabela durante a importação
Mudar o esquema da tabela, como importar uma nova coluna bloqueia a tabela do conjunto de importação.
Se torna um problema : Sempre que uma nova coluna é importada, toda a tabela de conjunto de importação é bloqueada durante essa mudança de esquema e, dependendo do tamanho da tabela, pode levar entre cinco e dez minutos. Nenhum dado pode ser selecionado ou inserido durante esse tempo. Se essa tabela não for usada com frequência, isso pode não causar problemas. No entanto, se essa tabela for usada com frequência, por exemplo, a tabela de importação LDAP, poderão surgir problemas.
Sintomas : Os sintomas deste problema podem variar. Em nosso exemplo da tabela de importação LDAP, todas as transações que exigem uma consulta da tabela de importação LDAP terão que aguardar até que a mudança de esquema seja concluída.
Como evitar isso Trunque a tabela de importação antes de importar com uma nova coluna.
Importação de conjuntos de dados muito grandes
Importar um conjunto de dados muito grande leva mais tempo do que importar vários conjuntos de dados menores.
Se torna um problema : Quando conjuntos de dados muito grandes são importados em um único trabalho.
Sintomas : O trabalho de importação leva muito tempo para ser concluído.
Como evitar isso Divida um conjunto de dados muito grande em vários trabalhos menores para obter resultados mais rápidos. Considere conjuntos de importação com 100 000 registros como diretriz. Por exemplo, a importação de 10 conjuntos de 100 000 registros é concluída mais rápido do que uma importação de 1 milhões de registros, embora o total de dados importados seja o mesmo.
Grandes importações de dados com muitos campos de referência
Importar um alto volume de dados com muitas referências para resolver pode levar mais tempo do que o esperado ou fazer com que o banco de dados fique lento.
Se torna um problema : Ao usar um mapa de transformação para importações de dados de alto volume com muitos campos de referência.
Sintomas : A transformação leva muito mais tempo do que o esperado. Todo o banco de dados fica mais lento durante a importação.
Como evitar isso : Use armazenamento secundário para pesquisar referências. O armazenamento secundário usa um banco de dados secundário para resolução de referência. Isso permite que algumas consultas de leitura sejam redirecionadas para o banco de dados secundário, reduzindo a carga no banco de dados primário.
- Ative o plug-in Secondary Database Pools [com.glide.secondary_db_pools]. Para obter mais informações, consulte Request a plugin.
- Confirme se a categoria import_reference_resoultion na tabela Categorias de banco de dados secundário [sys_db_category] foi configurada e habilitada. Quando você solicita o plug-in, ServiceNow o suporte configura esta categoria para você.
Depois que o plug-in for ativado e sua categoria de armazenamento secundária tiver sido configurada e habilitada, haverá um Usar armazenamento secundário para referências caixa de seleção no formulário para Crie um mapa de transformação. Use esta caixa de seleção para habilitar ou desabilitar o armazenamento secundário.
Ao usar armazenamento secundário, defina Ação de escolha campo no campo mapear para ignorar ou rejeitar . Definindo o. Ação de escolha . criar pode fazer com que várias cópias de um registro sejam criadas porque a resolução de referência não detecta registros recém-criados imediatamente. Para obter mais informações sobre ações de escolha, consulte Crie um mapa de campo.
Um banco de dados secundário está sempre um pouco desatualizado em comparação com o banco de dados primário. Se a importação exigir dados completamente atualizados, não use o armazenamento secundário.