Sono un po 'curioso, uno di SQL 2012 Enterprise Edition con 128 GB di RAM di database di 370 GB e crescente, quantità di memoria utilizzata dall'impiegato della memoria dei blocchi (OBJECTSTORE_LOCK_Manager) che mostra 7466016 KB. Posso anche confermare che guardando il contatore perfselect * from sys.dm_os_performance_counters where counter_name = 'Lock Memory (KB)'
Tuttavia, quando eseguo query
select count(*) from sys.dm_tran_locks
mostra solo 16 blocchi. Quindi, cosa sta usando oltre 7 GB di blocchi. C'è un modo per scoprirlo?
Significa che se una volta allocata la memoria per i blocchi SQL non l'ha ancora deallocata? Nelle ultime 1 ora non vedo il conteggio dei blocchi superiore a 500 ma la memoria dei blocchi rimane invariata.
La memoria massima del server è di 106 GB, non utilizziamo pagine di blocco in memoria e non vedo alcuna pressione della memoria o errori nel registro degli errori nelle ultime 12 ore. Il contatore MBytes disponibili mostra più di 15 GB di memoria disponibile.
Il monitor attività mostra costantemente 0 attività in attesa, quindi ovviamente nessun blocco.
Considerando che il blocco del server SQL richiede circa 100 byte di memoria 7 GB è molta memoria e sta cercando di scoprire chi lo sta utilizzando.
Eseguo una relazione principale del dashboard del server in base al conteggio dei blocchi che dice "al momento non sono in esecuzione transazioni di blocco sul sistema. Tuttavia, la memoria di blocco mostra ancora come indicato sopra. DB è più occupato durante le ore notturne.