Bonjour,

J'ai de temps en temps une erreur sur la sauvegarde des journaux de mes bdds :

"There is insufficient system memory in ressource pool 'internal' to run this query ..."

Je suis en version Entreprise, MSSQL Serveur 2008 SP3 : 10.0.5500.00.

J'ai cherché pas mal sur google, je suis tombé sur ce site avec pas mal de requête pour voir d’où vient le problème mais j'ai un peu de mal à comprendre les résultats et à corriger l'erreur.

http://blogs.msdn.com/b/sqlserverfaq...ql-server.aspx

Résultat des requêtes :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
--1. Will tell you the size of the biggest contiguous block in VAS
SELECT convert(varchar,getdate(),120) as [Timestamp]
		,max(region_size_in_bytes)/1024 [Total max contiguous block size in KB]
from sys.dm_os_virtual_address_dump 
	where region_state = 0x00010000 --- MEM_FREE
Timestamp - Total max contiguous block size in KB
2012-04-04 15:12:54 - 1856

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
 
--2. Will also tell us size of largest contiguous block plus the region marked as MEM_RESERVE 
--(this is your non-BPool area reserved during SQL Startup, sometimes referred to as MTL - MemToLeave)
With VASummary(Size,Reserved,Free) AS
(SELECT
    Size = VaDump.Size,
    Reserved =  SUM(CASE(CONVERT(INT, VaDump.Base)^0)
					WHEN 0 THEN 0 ELSE 1 END),
	Free = SUM(CASE(CONVERT(INT, VaDump.Base)^0)
					WHEN 0 THEN 1 ELSE 0 END)
FROM
(
    SELECT  CONVERT(VARBINARY, SUM(region_size_in_bytes))
		AS Size, region_allocation_base_address AS Base
    FROM sys.dm_os_virtual_address_dump 
		WHERE region_allocation_base_address <> 0x0
    GROUP BY region_allocation_base_address 
 
 UNION  
 
    SELECT CONVERT(VARBINARY, region_size_in_bytes), region_allocation_base_address
    FROM sys.dm_os_virtual_address_dump
		WHERE region_allocation_base_address  = 0x0
 
)
AS VaDump
GROUP BY Size)
SELECT SUM(CONVERT(BIGINT,Size)*Free)/1024 AS [Total avail Mem, KB] ,CAST(MAX(Size) AS BIGINT)/1024 AS [Max free size, KB] 
FROM VASummary 
WHERE Free <> 0
Total avail Mem, KB - Max free size, KB
21392 - 1856

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
--3. The below query will identify the memory reserved by non-BPool components in SQL Server
select SUM(virtual_memory_reserved_kb)/1024 as virtual_memory_reserved_mb 
from sys.dm_os_memory_clerks
	where type not like '%bufferpool%'
virtual_memory_reserved_mb
95

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
--4. To identify if any of the space used is by SQL Server procedure cache itself, you can use this query
SELECT SUM(PAGESUSED)*8/1024 'MB of MemToLeave memory consumed by procedures'
FROM MASTER.DBO.SYSCACHEOBJECTS WHERE PAGESUSED >1
MB of MemToLeave memory consumed by procedures
2

PS : Je sauvegarde mes journaux toutes les 2 heures et aujourd'hui toutes les sauvegardes ont planté