Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Exceção de falta de memória no SQL 2008


De acordo com um artigo muito bom da base de conhecimento da Microsoft (link aqui) isso é causado por uma consulta que requer mais RAM alocada do que a disponível.

Em outras palavras, você precisa de mais RAM ou precisa reprojetar a consulta para dividir o processo em partes menores.

Este é um resumo do artigo completo. O original contém links para conteúdo para explicar com mais detalhes o processo pelo qual você deve seguir suas sugestões.

Você pode receber a mensagem de erro "System.OutOfMemoryException" ao usar o SQL Server Reporting Services

Para resolver esse problema, use um dos seguintes métodos.

Método 1

Adicione memória física suficiente ao computador.

Observação Se você tiver mais de 2 gigabytes (GB) de memória, poderá habilitar a opção /3GB no arquivo Boot.ini para obter melhor desempenho. Para obter mais informações sobre como usar a opção /3GB no SQL Server.

Método 2

Agende relatórios para serem executados fora do horário comercial quando as restrições de memória forem menores.

Método 3

Ajuste a configuração MemoryLimit de acordo.

Observação:quando você renderiza um relatório por meio do serviço Web Reporting Services, o serviço Web Reporting Services obtém a configuração MemoryLimit do arquivo Machine.config. No entanto, um relatório agendado é processado pelo serviço Report Server Windows. O serviço Report Server Windows obtém a configuração MemoryLimit do arquivo RSReportServer.config.

Método 4

Atualize para uma versão de 64 bits do Microsoft SQL Server 2005 Reporting Services para permitir que o Reporting Services utilize mais memória.

Método 5

Redesenhe o relatório. Para fazer isso, use um dos seguintes métodos.

Redesenhe as consultas de relatório. Você pode reduzir o consumo de memória redesenhando as consultas de relatório das seguintes maneiras:
  • Retorne menos dados nas consultas do relatório.
  • Use uma restrição melhor na cláusula WHERE das consultas do relatório.
  • Mova agregações complexas para a fonte de dados.

Método B

Exporte o relatório para um formato diferente. Você pode reduzir o consumo de memória usando um formato diferente para exibir o relatório.

Método C

Simplifique o design do relatório.

Você pode reduzir o consumo de memória simplificando o design do relatório das seguintes maneiras:
  • Inclua menos regiões de dados ou controles no relatório.
  • Use um relatório de detalhamento para exibir detalhes.