O processo de tempo de execução do SSIS 2008 falha quando você executa o pacote do SSIS 2008 em uma condição de pouca memória

Traduções deste artigo Traduções deste artigo
ID do artigo: 977190 - Exibir os produtos aos quais esse artigo se aplica.
A Microsoft distribui correções do Microsoft SQL Server 2008 como um arquivo para download. Como as correções são cumulativas, cada versão nova contém todos os hotfixes e todas as correções de segurança que foram incluídas com o SQL Server 2008 anteriores corrigir lançamento.
Expandir tudo | Recolher tudo

Neste artigo

Sintomas

Você precisa de um pacote do Microsoft SQL Server 2008 Integration Services (SSIS 2008). O pacote contém uma tarefa de fluxo de dados. Quando você executar o pacote em um servidor que está sob uma condição de pouca memória, ocorre uma violação de acesso e, em seguida, o processo de tempo de execução do SSIS 2008 falha. Além disso, você recebe avisos sobre falta de memória que se parecem com o seguinte no log do aplicativo do SSIS 2008:
Nome do evento: OnInformation

Descrição: O Gerenciador de buffer falha uma chamada de alocação de memória para 10484760 bytes, mas não pôde alternar qualquer buffers para aliviar a pressão de memória. 305 buffers foram considerados e 295 foram bloqueadas. Qualquer memória insuficiente está disponível para o pipeline porque insuficiente estão instalados, outros processos foram usá-lo ou excesso de buffers estão bloqueados.

Nome do evento: OnInformation

Descrição: O Gerenciador de buffer alocou 10485608 bytes, mesmo que a pressão de memória foi detectada e tentativas repetidas para trocar buffers falharam.


Observação: Os vários processos em tempo de execução que executar pacotes SSIS 2008 são DTExec.exe, DTSHost.exe ou DTSDebugHost.exe. O processo que executa o pacote do SSIS 2008 é determinado pelas condições que o pacote está em. O processo DTExec.exe executa pacotes do pai. O processo DTSHost.exe executa pacotes filho. O processo DtsDebugHost.exe executa pacotes que são depurados de Business Intelligence Design Studio.

Causa

2008 SSIS é notificado que o servidor está em uma condição de pouca memória. Uma condição de pouca memória ocorre quando há apenas 128 megabytes (MB) 256 MB de memória. Em seguida, o processo de tempo de execução SSIS 2008 começa a troca de buffers de pipeline de fluxo de dados para a pasta temporária que é especificada pela propriedade BufferTempStoragePath.

A situação mencionada na seção ? Sintomas ?, os dados em um buffer são copiados internamente para um buffer de destino por uma transformação. Por exemplo, os dados em um buffer são copiados por uma transformação Merge Join. Essa operação ocorre enquanto o servidor está em uma condição de pouca memória. No entanto, a transformação não reconhece que um thread fora a transformação trocados, de repente, o buffer de destino. Portanto, a operação de cópia falhará e, em seguida, faz com que a violação de acesso.

Resolução

Esse hotfix bloqueia explicitamente o buffer de destino durante uma operação de cópia. Esse comportamento impede que outros threads trocar o buffer de destino quando a operação de cópia está sendo executado.Correção para esse problema foi lançada pela primeira vez na atualização cumulativa 6 para o SQL Server 2008 Service Pack 1. Para obter mais informações sobre esse pacote de atualizações cumulativas, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
977443Pacote de atualização cumulativa 6 para SQL Server 2008 Service Pack 1
Observação: Como as compilações são cumulativas, cada nova versão de correção contém todos os hotfixes e todas as correções de segurança que foram incluídas com o SQL Server 2008 anteriores corrigir lançamento. Recomendamos que você considere a aplicação a versão mais recente de correção que contém esse hotfix. Para obter mais informações, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
970365Compilações do SQL Server 2008 que foram lançadas lançamento após o lançamento do SQL Server 2008 Service Pack 1
Microsoft SQL Server 2008 hotfixes são criados para service packs do SQL Server específicos. Você deve aplicar um hotfix do SQL Server 2008 Service Pack 1 para uma instalação do SQL Server 2008 Service Pack 1. Por padrão, qualquer hotfix fornecidas em um service pack do SQL Server está incluído no próximo service pack do SQL Server.

Como Contornar

Para contornar esse problema, resolva a condição de pouca memória. A quantidade de memória que pode disparar esse problema varia para computadores diferentes. Em geral, essa quantidade é entre MB 32 e 64 MB. Portanto, recomendamos que você configure o servidor para alocar mais de 64 MB de memória disponível para SSIS 2008.

A quantidade padrão de memória disponível que sinaliza um evento de notificação do recurso de economia de memória flutua. A memória disponível varia de 32 MB a 64 MB para cada 4 gigabytes (GB). Esse problema é difícil evitar porque flutua memória disponível em servidores de produção ocupado. Além disso, a memória pode diminuir por vários outros motivos. Para obter mais informações sobre as notificações de recurso de memória, visite o seguinte site da Microsoft Developer Network (MSDN):
Function that creates memory resource notification objects
Para reduzir a freqüência esse problema, use um dos seguintes métodos.

Método 1

Adicione mais memória física ao computador.

Método 2

Execute o pacote do SSIS 2008 em um computador que não está executando uma instância do SQL Server.

Método 3

Quando você executa o pacote do SSIS 2008, defina a opção máximo de memória de servidor para a instância do SQL Server 2008 para um valor menor. Esse comportamento aumenta a memória disponível.

Método 4

Sair dos aplicativos que consomem muita memória ao executar o pacote do SSIS 2008 que contém tarefas de fluxo de dados.

Método 5

Execute o pacote do SSIS 2008 e as tarefas de fluxo de dados de série em vez de em paralelo para diminuir o uso da memória.


Método 6

Use o método descrito na subseção "Como monitorar o consumo de memória para SSIS" da seção "Mais informação" para solucionar a condição de pouca memória. Em seguida, otimize o uso da memória para SSIS 2008.

Situação

A Microsoft confirmou que este é um problema nos produtos da Microsoft listados na seção "Aplica-se a".

Mais Informações

Como monitorar o consumo de memória para SSIS

Monitorar a memória para medir o pico de uso para vários processos de tempo de execução do SQL Server Integration Services calcular o uso máximo da memória

Monitorar o uso de memória de pico de vários processos de tempo de execução de SSIS (SQL Server Integration Services) usando o Private Bytes contador do processo do objeto no Monitor de desempenho. O processo DTExec.exe e o processo DTSHost.exe são exemplos de processos de tempo de execução do SSIS.

Quando os pacotes do SSIS estão executando, encontrar o valor máximo para o Private Bytes contador. Quando vários pacotes estão executando em paralelo, some os valores máximos de todos os processos em execução para obter o valor máximo para o uso de memória.

Monitorar processos externos para encontrar picos e vales

Monitorar o uso de memória de pico de processos fora o serviço do SQL Server e o serviço SSIS usando o Private Bytes contador do processo do objeto no Monitor de desempenho. Procure os horários de pico de uso que podem diminuir a memória disponível para SSIS. Por exemplo, horários de pico são quando vários usuários usam o RDP (Remote Desktop Protocol) para se conectar ao servidor ou quando o software de backup está sendo executado.

Monitorar o uso da memória do SQL Server para localizar os picos e vales

Se a mensagem "Using protegido páginas para o pool de buffers" não estiver no arquivo de log de erro mais recente, o Private Bytes contador para o processo de sqlservr.exe pode indicar a quantidade de memória é consumida pelos serviços do SQL Server.

Se a mensagem "Using protegido páginas para o pool de buffers" estiver incluída no arquivo de log de erro mais recente, use a Memória Total do servidor (KB) de contador a SQL Server: Gerenciador de memória objeto de desempenho para medir o uso de memória de pool de buffer do SQL Server. Além disso, use o Private Bytes contador para que o processo de sqlservr.exe encontrar as alocações de memória fora do pool de buffer (MemToLeave). A soma do valor de contador Memória Total do servidor (KB) e o valor de MemToLeave é uma boa estimativa da quantidade total de memória pelo SQL Server.

O Monitor de desempenho e o Gerenciador de tarefas não exibem a memória é consumida por essas páginas de pool do buffer quando uma das seguintes condições for verdadeira:
  • O direito de usuário Bloquear páginas na memória é atribuído à conta de inicialização do serviço SQL Server.
  • O AWE memória está ativada.
Observação: Quando uma das seguintes condições for verdadeira, o Private Bytes contador para o processo de sqlservr.exe deve indicar a quantidade de memória é consumida pelos serviços do SQL Server para várias instâncias do SQL Server.

Monitorar o valor mínimo de memória disponível no Windows

Para monitorar a quantidade de memória está disponível no Windows, use um dos seguintes métodos:
  • Use o MBytes disponíveis contador no Monitor de desempenho para indicar a quantidade de memória está disponível.
  • Exibir valor de Memória física (MB) ? disponível na guia Performance do Task Manager.

    Observação: Em alguns sistemas operacionais, a Memória física (MB) ? disponível valor é rotulada como o valor de Memória física (K) ? disponível.

Referências

Para obter informações sobre o modelo de serviços incrementais para SQL Server, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
935897Há um modelo de serviços incrementais da equipe do SQL Server para fornecer hotfixes para problemas relatados


Para obter mais informações sobre o esquema de nomeação para atualizações do SQL Server, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
822499Novo esquema para nomeação dos pacotes de atualização de software Microsoft SQL Server


Para obter mais informações sobre a terminologia da atualização, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
824684Descrição da terminologia padrão usada para descrever as atualizações de software

Propriedades

ID do artigo: 977190 - Última revisão: sexta-feira, 29 de janeiro de 2010 - Revisão: 1.1
A informação contida neste artigo aplica-se a:
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2008 Workgroup
Palavras-chave: 
kbmt kbexpertiseadvanced kbfix kbsurveynew kbqfe kbhotfixserver KB977190 KbMtpt
Tradução automática
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: 977190

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com