Мы пытаемся выяснить основную причину медленного выполнения запросов к серверу sql, попадающих / извлекающих данные из одной из баз данных, размером 300 ГБ, размещенной на сервере со следующей конфигурацией:
Windows Server 2003 R2, SP2, Enterprise Edition, 16 ГБ оперативной памяти, 12-битный процессор 32
SQL Server 2005, SP4, Enterprise Edition, 32-разрядная.
Мы уже сообщили бизнесу о переходе на 64-разрядную версию, которая займет более месяца.
Но что касается текущей проблемы, мы пытаемся собрать данные, если сможем решить проблему нехватки памяти или, наконец, придем к выводу об увеличении ОЗУ.
Действие выполнено: Переиндексация и обновление статистики подходят для этой БД.
Как показано ниже, мы замечали тип ожидания семафора в течение последних 5 дней, запускаемых в часы загрузки:
Немного информации после запросов ниже: размер буфера = 137272
SELECT SUM(virtual_memory_committed_kb)
FROM sys.dm_os_memory_clerks
WHERE type='MEMORYCLERK_SQLBUFFERPOOL'
и семафорная память = 644024 на запрос ниже
SELECT SUM(total_memory_kb)
FROM sys.dm_exec_query_resource_semaphores
Ниже еще информация собрана из dm_exec_query_resource_semaphores
и sys.dm_exec_query_memory_grants
DMV годов
Таким образом, из вышеприведенной информации, собранной в соответствии с данными SP_Blitz, семафор ресурса, кажется, является проблемой.
Память 'target_memory_kb', выделенная для идентификатора семафора ресурса, слишком мала по сравнению с 16 ГБ доступной оперативной памяти.
Примечание * на анализ за 8 часов работы 'target_memory_kb' всегда меньше 1 ГБ по сравнению с 16 ГБ?
что может быть проблема здесь и как решить, пожалуйста, предложите
Благодарность