AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / dba / Perguntas / 75326
Accepted
Ben Durkin
Ben Durkin
Asked: 2014-08-30 06:18:54 +0800 CST2014-08-30 06:18:54 +0800 CST 2014-08-30 06:18:54 +0800 CST

Management Studio System.OutOfMemoryException

  • 772

Estou usando o Microsoft SQL Server 2012 e tentando executar uma consulta simples nele no Management Studio. Estou recebendo o seguinte erro (no SSMS, em execução no servidor):

Ocorreu um erro ao executar o lote. A mensagem de erro é: Exceção do tipo 'System.OutOfMemoryException' foi lançada.

O sistema tem 24 GB de RAM instalados, mas olhando no gerenciador de tarefas o processo sqlservr.exe está usando apenas 2,9 GB.

Existe uma configuração em algum lugar que está restringindo seu uso de RAM?

sql-server sql-server-2012
  • 6 6 respostas
  • 156450 Views

6 respostas

  • Voted
  1. Best Answer
    Mike Stankavich
    2014-08-30T06:48:05+08:002014-08-30T06:48:05+08:00

    Este erro indica que o Management Studio está ficando sem memória, não o serviço SQL Server. Mesmo se você instalou o SQL Server de 64 bits, o executável do SQL Server Management Studio é um aplicativo de 32 bits.

    Isso provavelmente é causado pelo tamanho do conjunto de resultados que você está retornando ao Management Studio. Você está executando algo como SELECT * FROM really_big_table? Consulte http://support.microsoft.com/kb/2874903 para obter mais informações.

    • 40
  2. Aaron Bertrand
    2014-08-30T07:58:21+08:002014-08-30T07:58:21+08:00

    Mike está certo de que a mensagem de erro que você está recebendo é do próprio aplicativo Management Studio, e não do SQL Server. É a memória em sua estação de trabalho local que foi esgotada, provavelmente devido à tentativa de puxar 16 bilhões de linhas para o aplicativo cliente (renderizar tantos dados em uma grade é bastante caro em termos de memória, então tente limitar suas consultas usando TOPetc. - Eu não sei que coisas práticas você poderia fazer com dados suficientes para usar toda a sua memória local de qualquer maneira).

    Mas quero resolver outro problema: usar o Gerenciador de Tarefas para avaliar a quantidade de memória que o SQL Server está usando. Não faça isso; é um mentiroso descarado. Copiando desta resposta (sua pergunta é dupla, então não posso fechá-la como uma duplicata):


    Você NUNCA, NUNCA, pode confiar no Gerenciador de Tarefas para informar quanta memória o SQL Server está usando. Pare de usar o Gerenciador de Tarefas para isso, ponto final. Use o contador de desempenho - você também pode consultar o contador de desempenho usando DMVs:

    SELECT object_name, cntr_value 
      FROM sys.dm_os_performance_counters
      WHERE counter_name = 'Total Server Memory (KB)';
    

    Você pode salvar isso como um atalho de consulta em Ferramentas > Opções > Ambiente > Teclado > Atalhos de consulta e obter resultados precisos em uma janela de consulta muito mais rápido do que obter resultados imprecisos do Gerenciador de tarefas.

    Você também pode verificar a pressão da memória (e se pode fazer algo a respeito) usando estas consultas:

    SELECT object_name, cntr_value
      FROM sys.dm_os_performance_counters
      WHERE counter_name IN ('Total Server Memory (KB)', 'Target Server Memory (KB)');
    
    -- SQL Server 2012:
    SELECT physical_memory_kb FROM sys.dm_os_sys_info;
    
    -- Prior versions:
    SELECT physical_memory_in_bytes FROM sys.dm_os_sys_info;
    
    EXEC sp_configure 'max server memory';
    
    • 19
  3. Baz Guvenkaya
    2015-03-26T21:55:30+08:002015-03-26T21:55:30+08:00

    Foi o mesmo caso comigo. Meu SQL Server Management Studio ficou aberto por alguns dias. Reiniciei e resolveu.

    • 15
  4. Trevor
    2016-11-06T13:08:09+08:002016-11-06T13:08:09+08:00

    Descobri que desligar o IntelliSense ajudou. Também recomendo verificar todos os suplementos que você possui (coisas como ferramentas RedGate e ApexSQL também exacerbaram o problema para mim).

    Esse problema me atormentou por dias e, para ser honesto, é bastante fraco da Microsoft. Eles realmente deveriam ter conjuntos de ferramentas de 64 bits, já que estamos lidando com big data atualmente, servidores de 64 bits e ambientes de desktop.

    • 9
  5. David Bridge
    2016-11-17T02:35:43+08:002016-11-17T02:35:43+08:00

    Para SQL 2008 R2, os comandos de consulta de memória (da postagem de Aaron Bertrand) são os seguintes

    SELECT object_name, cntr_value
    FROM sys.dm_os_performance_counters
    WHERE counter_name = 'Total Server Memory (KB)';
    
    SELECT object_name, cntr_value
    FROM sys.dm_os_performance_counters
    WHERE counter_name IN ('Total Server Memory (KB)', 'Target Server Memory (KB)');
    
    -- SQL Server 2012:
    SELECT physical_memory_in_bytes FROM sys.dm_os_sys_info;
    
    -- Prior versions:
    SELECT physical_memory_in_bytes FROM sys.dm_os_sys_info;
    

    Observe também que o comando

    EXEC sp_configure 'max server memory';
    

    pode não funcionar a menos que você tenha as opções avançadas habilitadas. por exemplo, faça isso primeiro

    EXEC sp_configure 'show advanced options',1
    RECONFIGURE
    
    • 1
  6. David Bridge
    2016-11-17T02:53:39+08:002016-11-17T02:53:39+08:00

    Observe que há um problema de conexão da Microsoft para isso como um vazamento de memória do SSMS. Eles acham que resolveram isso na v16.5

    Veja o problema em Connect.microsoft.com clicando aqui

    Se você instalar o mais recente e ainda tiver o problema, vote nele para ser reaberto.

    SSMS v16.5 aqui

    Conecte o problema indicando vazamento de memória corrigido em 16.5 aqui

    • 1

relate perguntas

  • SQL Server - Como as páginas de dados são armazenadas ao usar um índice clusterizado

  • Preciso de índices separados para cada tipo de consulta ou um índice de várias colunas funcionará?

  • Quando devo usar uma restrição exclusiva em vez de um índice exclusivo?

  • Quais são as principais causas de deadlocks e podem ser evitadas?

  • Como determinar se um Índice é necessário ou necessário

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host

    • 12 respostas
  • Marko Smith

    Como fazer a saída do sqlplus aparecer em uma linha?

    • 3 respostas
  • Marko Smith

    Selecione qual tem data máxima ou data mais recente

    • 3 respostas
  • Marko Smith

    Como faço para listar todos os esquemas no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Listar todas as colunas de uma tabela especificada

    • 5 respostas
  • Marko Smith

    Como usar o sqlplus para se conectar a um banco de dados Oracle localizado em outro host sem modificar meu próprio tnsnames.ora

    • 4 respostas
  • Marko Smith

    Como você mysqldump tabela (s) específica (s)?

    • 4 respostas
  • Marko Smith

    Listar os privilégios do banco de dados usando o psql

    • 10 respostas
  • Marko Smith

    Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Como faço para listar todos os bancos de dados e tabelas usando o psql?

    • 7 respostas
  • Martin Hope
    Jin conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane Como faço para listar todos os esquemas no PostgreSQL? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh Por que o log de transações continua crescendo ou fica sem espaço? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland Listar todas as colunas de uma tabela especificada 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney O MySQL pode realizar consultas razoavelmente em bilhões de linhas? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx Como posso monitorar o andamento de uma importação de um arquivo .sql grande? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison Como você mysqldump tabela (s) específica (s)? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas Como posso cronometrar consultas SQL usando psql? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas Como faço para listar todos os bancos de dados e tabelas usando o psql? 2011-02-18 00:45:49 +0800 CST

Hot tag

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve