La mémoire système est insuffisante dans le pool de ressources par défaut pour exécuter cette requête

15

J'utilise SQL Server 2014 - 12.0.2269.0 (X64) sur Windows Server 2012 et je rencontre des problèmes de mémoire. Lorsque j'exécute une procédure stockée qui effectue un calcul assez "lourd", j'obtiens une erreur après quelque chose comme 10 minutes:

La mémoire système est insuffisante dans le pool de ressources «par défaut» pour exécuter cette requête.

Mon SQL Server possède plusieurs bases de données (comme 15, mais elles ne sont pas toujours utilisées en même temps). J'ai regardé le fichier journal de SQL Server (après avoir obtenu l'erreur) et j'ai vu beaucoup de lignes comme celle-ci:

2015-12-17 12: 00: 37.57 spid19s Interdiction des allocations de page pour la base de données 'Database_Name' en raison d'une mémoire insuffisante dans le pool de ressources 'par défaut'. Voir « http://go.microsoft.com/fwlink/?LinkId=330673 » pour plus d'informations.

Un rapport est généré dans le journal avec la mémoire utilisée par chaque composant (je pense). Si j'interprète correctement le rapport, nous pouvons voir qu'il y a beaucoup de mémoire consommée par MEMORYCLERK_SQLBUFFERPOOL. Vous pouvez trouver le rapport ici: http://pastebin.com/kgmk9dPH

J'ai également généré un rapport avec un graphique qui montre la même "conclusion":

![utilisation de la mémoire

Voici peut-être un autre rapport utile:

entrez la description de l'image ici

entrez la description de l'image ici

Notez que j'ai également vu cette erreur dans le journal:

2015-12-17 12: 04: 52.37 spid70 Échec de l'allocation de la page en raison de la pression de la mémoire de la base de données: FAIL_PAGE_ALLOCATION 8

Voici quelques informations concernant la mémoire du serveur:

  • Mémoire totale sur le serveur: 16 Go

  • Mémoire allouée au serveur SQL: 12288 Mo

  • Mémoire physique utilisée (à partir de sys.dm_os_process_memory): 9287 Mo

Si cela peut aider, le serveur n'héberge aucune base de données SharePoint.

tatchi
la source
Quelle est la mémoire maximale et la RAM totale sur le serveur?
Kin Shah

Réponses:

6

Bien que ce ne soit probablement pas une réponse exacte à votre problème, je le publierai de toute façon en espérant que cela puisse vous aider en quelque sorte.

Ce que vous voyez n'est pas le, MEMORYCLERK_SQLBUFFERPOOLmais la MEMORYCLERK_SQLLOGPOOLprise de toute la mémoire.

Il existe un problème connu avec SQL 2012 SQL Server 2012 rencontre des erreurs de mémoire insuffisante . Même si vous exécutez 2014, il est possible que vous rencontriez le même problème (même si je n'ai pas trouvé d'élément de connexion pour 2014).

Il existe également ce problème connu pour 2014 et 2012 impliquant les reconstructions d'index et always on. Vous n'avez pas spécifié que vous l'utilisiez, mais le même bogue a peut-être d'autres déclencheurs: CORRECTIF: la mémoire cache SQL diminue et l'utilisation du processeur augmente lorsque vous reconstruisez un index pour une table dans SQL Server

Donc, ma meilleure suggestion pour l'instant est de mettre à jour la dernière CU et de voir si cela se produit toujours, car il y a eu quelques correctifs MEMORYCLERK_SQLLOGPOOLrécemment. Étant donné que vous exécutez RTM avec 2 correctifs de sécurité uniquement qui pourraient avoir un sens, il existe un SP1 + plusieurs CU disponibles.

Puisqu'il y a également une utilisation de mémoire assez élevée MEMORYCLERK_XTPutilisée par in-memory OLTPcet article peut vous aider à dépanner: Surveiller et dépanner l' utilisation de la mémoire

Tom V - essayez topanswers.xyz
la source