Categorias
dicas mem??ria sql server

Problema no uso de mem??ria no SQL Server 2008

Se em algum momento, quando em trabalho, estiver recebendo uma das seguintes mensagens abaixo, voc?? est?? tendo s??rios problemas de uso de mem??ria:

“There is insufficient system memory in resource pool ‘internal’ to run this query” *
ou
“H?? mem??ria de sistema insuficiente no pool de recursos internos para executar essa consulta” *

Isso ocorre quando h?? v??rias instru????es SQL sendo executadas em seq????ncia. Como o pool n??o aguenta, os dados, em algumas vezes, podem travar… Mesmo que fisicamente eles estejam l??, n??o se pode mais ser utilizados at?? que o banco seja reiniciado. Para corrigir esse problema h?? duas formas: instalar o hotfix que a Microsoft disponibilizou ou reduzir quantidade de instru????es a serem executadas por vez.

1) Instalar o HotFix

O arquivo est?? dispon??vel em um pack cumulativo p??s SP1 do SQL Server 2008. Para mais informa????es e download, clique aqui.

2) Reduzir a quantidade de instru????es SQL

Fazendo um teste de v??rios UPDATE’s seguidos, consegui obter tal erro. Gerei um arquivo .sql com quase 100mil updates e mandei o SQL Server executar, da?? obtive o erro. Nunca tente isso! Se desejar executar v??rios UPDATE’s ou INSERT’s de vez fragmente a execu????o das instru????es em blocos (nem t??o grandes e nem t??o pequenos) dando uma pausa entre as execu????es. Pode-se utilizar uma Store Procedure buscando os dados em um tabela tempor??ria e executar a instru????o de forma gen??rica (INSERT com SELECT, por exemplo). Tamb??m pode-se usar um artif??cio do ASP.NET, Batch Update, para executar a instru????o de forma gen??rica com alto desempenho.

* A depender da configura????o do SQL Server, ao inv??s de ser o recurso interno (ou internal) pode ser o recurso default.