Управление SQL Server CLR зарезервированной памяти - PullRequest
4 голосов
/ 27 апреля 2009

Я недавно включил CLR на своем 64-битном компьютере с SQL Server 2005 для использования около 3 процедур. Когда я запускаю следующий запрос, чтобы собрать некоторую информацию об использовании памяти ...

select single_pages_kb+ multi_pages_kb + virtual_memory_committed_kb as TotalMemoryUsage, virtual_memory_reserved_kb 
from sys.dm_os_memory_clerks 
where type = 'MEMORYCLERK_SQLCLR'

Я получаю

129 МБ MemoryUsage и Виртуальная память 6,3 ГБ зарезервирована

Общая память машины составляет 21 гиг. Что конкретно означает зарезервированная виртуальная память и как я могу контролировать размер, который выделяется? 6 гигабайтов - это излишне для того, что мы делаем, и память будет гораздо лучше использоваться sproc-кэшем Я обеспокоен тем, что эта зарезервированная память приведет к обмену на файл подкачки.

Пожалуйста, помогите мне вернуть контроль над памятью!

Спасибо

1 Ответ

1 голос
/ 09 марта 2010

Вы используете 64-битную версию, поэтому VAS (виртуальная память) не проблема.

Виртуальная память фактически не используется или не выделяется. Он просто зарезервировал диапазон адресов.

...