-
46 11

Очистка памяти MS SQL

alex на Mego-forum
Просмотров14102
04.10.16 11:08

Подскажите, можно ли как то очистить не рестартуя службу MS SQL, из памяти закешированные данные? А вообще возможно очищать данные только для выбранной БД?

У меня много маленьких БД на сервере и одна большая, соот-но она вся в памяти и в результате все маленькие долго грузятся. Если бы можно было как то запретить может для нее использовать Ram что ли, посоветуйте что нибудь пожалуйста

Не нравится
  • mr.anderson на Mego-forum
    04.10.16 16:53

    Тут можно пойти 2 путями:

    1. Это просто задать серверу память меньше используемой, применить настройки и ждать пока он выргузит все что на кешировал.

    2. Это программно:

    T-SQL:

     

    DBCC FREESYSTEMCACHE ('ALL', default);  
    У меня гдето был скрипт позволяющий показать, какая из БД сколько на себя памяти взяла, сейчас поищу
    Цитировать
    Не нравится
  • mr.anderson на Mego-forum
    04.10.16 16:55
    T-SQL:
     
    SELECT count(*)AS cached_pages_count,(count(*) * 8) as KB 
        ,CASE database_id 
            WHEN 32767 THEN 'ResourceDb' 
            ELSE db_name(database_id) 
            END AS Database_name 
    FROM sys.dm_os_buffer_descriptors 
    GROUP BY db_name(database_id) ,database_id 
    ORDER BY cached_pages_count DESC;
    В таком виде, только отсортируй как будет удобней для просмотра
    Цитировать
    Не нравится
  • mrweep на Mego-forum
    05.10.16 07:25

    Я все проверил, отсортировал конечно как надо. Попробовал так очистить и нифига

    Цитировать
    Не нравится
  • mrweep на Mego-forum
    05.10.16 07:27

    Народ жалуется, мол подвисает, сейчас попробовал сажать, параметрами уже самого SQL сервера, т.е. как ты предложил изначально указать значение меньшее что бы сервер сам очистил память.

    Сейчас попробую

    Цитировать
    Не нравится
  • mr.anderson на Mego-forum
    05.10.16 07:33

    Ок, давай. 

    Знаешь еще можно попробовать у этой БД установить значение AutoClose = true.

    С версии после 2014 обещают убрать этот параметр, что бы сам сиквел уже контролил все, но если у тебя версии с этим параметром, укажи для своей огромной БД, что бы закрытие было, судя по мануалу и описанию MSDN, ресурсы занимаемые скажем для выборки должны после dispose или close, на самом сервере высвобождаться, тогда для твоих маленьких БД будет место в памяти.

    Цитировать
    Не нравится
  • mrweep на Mego-forum
    05.10.16 07:42

    Так, высвобождение самим серверов прошло на ура, более того, после того как уменьшил, народ странным образом и жаловаться то перестал. Абсурд, но пишу как есть)))

    Теперь установив значение 2\3 от того что было, память начинает набирать снова, ну хоть народ не жалуется.

     

    Ок, давай. 

    Знаешь еще можно попробовать у этой БД установить значение AutoClose = true.

    С версии после 2014 обещают убрать этот параметр, что бы сам сиквел уже контролил все, но если у тебя версии с этим параметром, укажи для своей огромной БД, что бы закрытие было, судя по мануалу и описанию MSDN, ресурсы занимаемые скажем для выборки должны после dispose или close, на самом сервере высвобождаться, тогда для твоих маленьких БД будет место в памяти.

    Сейчас попробуем и будем наблюдать 
    Цитировать
    Не нравится
  • Kolyayan на Mego-forum
    22.10.16 14:19

    А есть более подробная инструкция?

    Цитировать
    Не нравится
  • mr.anderson на Mego-forum
    22.10.16 14:50

    боюсь что MS SQL имеет только текущий параметр auto close, где то был скрин обратите внимание на него и с свойствах БД укижите параметр True.

    Или Вас интересует какая то другая инструкция?

    Цитировать
    Не нравится
  • mr.anderson на Mego-forum
    22.10.16 15:01

    В таком варианте у Вас должно стоять True если хотите освобждать ресуры

    Цитировать
    Не нравится
Задайте свои вопрос или создайте свою тему на форуме!
Для этого войдите или зарегистрируйтесь.
Регистрация на форуме не заимет больше 2 минут.
Успешно сохранено!
Закрыть окно
Загрузка Пожалуйста, подождите!
Тут будут отображаться Ваши сообщения
[Content_popup_message]
Top
Закрыть окно
Введите Ваше сообщение: