У нас есть экземпляр SQL Server (2008 г.), на котором запущено наше программное обеспечение, с тем, что мы считаем небольшим количеством пользователей (около 30 одновременно подключенных к серверу в любой момент времени)
Как поставщик мы не являемся администраторами баз данных SQL и предлагаем только базовый набор навыков для решения подобных проблем. У большинства клиентов есть собственный администратор баз данных SQL, который выполняет эту роль, но иногда нам приходится вмешиваться и помогать, если клиент не имеет адекватной поддержки.
Хотя они используют этот сервер не только для SQL, и это проблема, которую нужно решать отдельно, мы недавно заметили, что процесс sqlservr.exe этого клиента использует намного больше оперативной памяти, чем мы ожидаем увидеть для нашего программного обеспечения.
Во-первых, позвольте мне начать с упоминания, что я понимаю, что по умолчанию максимальная память сервера SQL в основном настроена на использование всего, что есть на сервере. Мы изменили это значение на 10 ГБ, так как ожидаем, что им в любой момент времени потребуется всего около 4-6 ГБ, учитывая их размер и части программного обеспечения, которое они используют.
Некоторые фрагменты информации, которые могут иметь или не иметь отношения к моему вопросу:
На данный момент я только предполагаю, что это как-то связано с огромной моделью журналов / восстановления или с некоторыми настройками SQL, относящимися к кешированию. Возможно, это нормальное поведение, которое специалист по SQL планировал бы увидеть, но, учитывая наш ограниченный опыт работы с нашим программным обеспечением на SQL Server, это ненормально для установки такого размера.
Итак, чтобы свести все это к одному TLDR:
Влияет ли модель восстановления SQL Server 2008 и размер журнала на использование памяти процессом sqlservr.exe? Если да, то является ли мое описание нашей «проблемы» нормальным для SQL, и мы просто не сталкивались с ней раньше? Если ответ отрицательный, что еще вы бы посоветовали изучить, чтобы решить мою проблему?
Насколько велика эта база данных? SQL Server любит помещать всю базу данных в память. Судя по вашему вопросу, это звучит так, как будто это MDF на 200 МБ с LDF на 250 ГБ или что-то в этом роде ужасающее.
Модель восстановления не входит в него, если только они не пренебрегают базой данных, что явно так.
Я лично не стал бы тратить время на изучение чего-либо еще, пока вы не реализуете базовое обслуживание базы данных (хотя 10 ГБ кажутся мне скудным выделением памяти для SQL Server).