2014-11-19 4 views
2

У меня установлен SQL Server 2012 на компьютере с 64 ГБ ОЗУ. На этом компьютере не установлено ничего, кроме SQL Server.Потребление памяти SQL Server

SQL Server занимает всю физическую память, и это приводит к исключению тайм-аута в моем веб-приложении.

Когда я перезапускаю SQL Server, он становится до 15 ГБ, а затем он увеличивается постепенно, и примерно через две недели он достигает 50 ГБ, что приводит к исключению тайм-аута.

Может ли кто-нибудь предложить решение для этого, так как не рекомендуется перезапускать SQL Server каждые две недели?

Благодаря

+1

Это ** дизайн ** - если вы специально не ограничивают SQL Server, он всегда будет использовать столько памяти, сколько он может получить, чтобы получить максимальную производительность. Если на этой машине ничего не работает - где проблема? –

ответ

1

SQL Server будет продолжать планы запросов кэширования, таблицы и т.д., пока не достигнет максимальной полезной памяти, ОС обеспечивает или пока он не достигнет MAX MEMORY настройки. Поэтому, пожалуйста, проверьте настройки MAX MEMORY и при необходимости уменьшите их. Для справки, пожалуйста, проверьте THIS.

Я воспроизводя Examples дано:

Пример

Следующий пример устанавливает максимальный параметр памяти сервера 4 ГБ:

sp_configure 'show advanced options', 1; 
GO 
RECONFIGURE; 
GO 
sp_configure 'max server memory', 4096; 
GO 
RECONFIGURE; 
GO 

Пример В. Определение текущего распределения памяти

Следующий запрос возвращает информацию о текущей выделенной памяти.

SELECT 
(physical_memory_in_use_kb/1024) AS Memory_usedby_Sqlserver_MB, 
(locked_page_allocations_kb/1024) AS Locked_pages_used_Sqlserver_MB, 
(total_virtual_address_space_kb/1024) AS Total_VAS_in_MB, 
process_physical_memory_low, 
process_virtual_memory_low 
FROM sys.dm_os_process_memory; 

Во-вторых, существуют ли какие-либо компоненты CLR? Они будут использовать дополнительную память и могут продолжать удерживаться.

В-третьих, проверьте клиентское приложение, использующее SQL-сервер. Могут быть открытые соединения, содержащие данные.

1

Вы можете настроить максимальную память на ui.

Перейти к SSMS -> выбрать имя сервера -> щелкните правой кнопкой мыши -> перейти на вкладку памяти, а в правой части - максимальный размер. По умолчанию он неограничен, означает, что если sql требует память, а процессор имеет память, sqlserver потребляет все.

http://technet.microsoft.com/en-us/library/ms191144%28v=sql.105%29.aspx

Тем не менее, если у вас есть проблемы, то нажмите кнопку «Использовать AWE Чтобы выделить память».

http://msdn.microsoft.com/en-us/library/ms178067.aspx

http://technet.microsoft.com/en-us/library/ms180797%28v=sql.105%29.aspx

Смежные вопросы