2012-09-20 4 views
1

J'ai installé sur mon ordinateur de bureau (avec Windows 7) SQLServer 2008 R2 Express. Je n'ai qu'un seul serveur local en cours d'exécution (./SQLEXPRESS) mais le processus sqlserver prend TOUTE la RAM possible. Avec une machine avec 3 Go de RAM, les choses commencent à ralentir, donc j'ai limité la quantité maximale de RAM dans le serveur, et maintenant, le SQLServer donne constamment des messages d'erreur que la mémoire n'est pas suffisante. Il utilise 1 Go de RAM avec un seul serveur local avec 2 bases de données complètement vide, comment 1 Go de RAM n'est pas suffisant? Lorsque le processus démarre, il utilise une quantité de mémoire vraiment acceptable (environ 80 Mo) mais il continue d'augmenter jusqu'à ce qu'il atteigne la valeur maximale définie et commence à se plaindre de ne pas avoir suffisamment de mémoire disponible. À ce stade, je dois redémarrer le serveur pour l'utiliser à nouveau.SQLServer utilisant trop de mémoire

J'ai lu au sujet d'un correctif pour résoudre l'une des erreurs que j'ai reçu de SQLServer:

There is insufficient system memory in resource pool 'internal' to run this query 

Mais il est déjà installé sur mon SQLServer.

Pourquoi utilise-t-il autant de mémoire?

+1

Veuillez afficher les requêtes que vous exécutez ce résultat dans ce message d'erreur. Publiez également leurs plans d'exécution réels. – usr

+0

Je n'ai pas les requêtes, la base de données locale est juste pour Unit Test d'une application web, donc les requêtes sont vraiment obscurcies sous de nombreuses couches de code. Mais par exemple si je laisse le serveur fonctionner pendant un certain temps (plus de 2 heures) j'ai des problèmes seulement pour essayer d'actualiser mon serveur sur SQLServer Management Studio – IPValverde

+0

Je ne pense pas que le problème est avec SQL Server. SQL Server ne fuit pas la mémoire en interne, du moins pas pour les chemins de code bien testés. Je ne pense pas que l'on puisse répondre à cette question sans beaucoup plus d'informations. Capturez les requêtes SQL avec SQL Profiler. – usr

Répondre

0

Vous pouvez essayer de configurer l'option de configuration 'mémoire serveur max':

Pour plus de détails vérifier:

http://technet.microsoft.com/en-us/library/ms178067(v=sql.105).aspx http://support.microsoft.com/kb/321363 http://social.msdn.microsoft.com/Forums/en-US/sqldatabaseengine/thread/df51cd87-68ce-439a-87fa-d5e5cd93ab31

+0

Je l'utilise déjà ... et les erreurs de mémoire indisponible se produisent exactement lorsque le SQLServer atteint la quantité maximale de mémoire utilisée. – IPValverde

0

J'ai eu le problème comme ça. Vous pouvez augmenter la taille du cache de la base de données. Sur les propriétés du serveur MSSQL, choisissez la mémoire, il y a "mémoire maximale du serveur (en Mo)" Vous pouvez augmenter cette cellule.

Ou même chose avec la requête:

EXEC sp_configure'Show Options avancées, 1; GO RECONFIGURE; GO EXEC sp_configure'max mémoire du serveur (Mo) ', 3500; GO RECONFIGURE; GO

Questions connexes