none
Добавление ram RRS feed

  • Вопрос

  • Всем привет.

    В сервер с ms sql решили добавить ram. Сейчас 96, в настройках памяти sql MAX - 80. Как я понял 80 - это выделено для буферного пула. Т.е все планы, область сортировки и тд. хранятся в других областях, которые никак не регулируются, на автомате всё. 

    Если через диспетчер задач смотреть там 87 всегда использовано (без ресур монитора)

    Памяти планируют добавить до 256. Размер бд~ 500гб среда OLTP (отчётов нет). Я понимаю что это не показатель.

    Я хочу отдать под буферный пул 200, а остальное под другие области и нужды ос.

    Вопрос в чём -  можно ли в ms sql указать какие таблицы, индексы например загружать в память, и как быть с свопом? Своп сейчас на авто, и под него отдельный диск выделен.


    MCITP:EA. MCSA. MCTS:Exchange Configuring

    1 августа 2013 г. 11:40

Ответы

  • Вы не до конца правильно понимаете. Планы хранятся там же, например(читать про procedure cache). 

    В большинстве нормальных ситуаций вам не стоит особо лазать в эти настройки. Если сервер не занят какой-то иной деятельностью, нет сложных и объёмных расчётов в SQLCLR и пр., то оставьте всё на автомате - он справится, скорее всего, лучше, чем вы с текущим уровнем знаний.

    К примеру, почему вы сейчас решили добавить памяти? Потому что это можно сделать относительно недорого? В целом, это не самая  плохая и справедливая для нашего времени мотивация, но лучше принимать такие решения не вслепую. А то не исключено, что вам и 256 мало будет.  Каков, к примеру, показатель page life expectancy у вашего сервера СЕЙЧАС?

    1 августа 2013 г. 19:58
  • можно ли в ms sql указать какие таблицы, индексы например загружать в память


    закрепить никак нельзя, но вы можете при старте полностью загрузить объект в память и он там будет "жить" пока его не выместят более актуальными данными (к которым идёт реальное обращение)

    http://www.t-sql.ru

    2 августа 2013 г. 4:37
    Отвечающий

Все ответы

  • Забыл sql 2008 r2 sp1 ent и Win server 2008r2 sp1 ent

    MCITP:EA. MCSA. MCTS:Exchange Configuring

    1 августа 2013 г. 11:41
  • Вы не до конца правильно понимаете. Планы хранятся там же, например(читать про procedure cache). 

    В большинстве нормальных ситуаций вам не стоит особо лазать в эти настройки. Если сервер не занят какой-то иной деятельностью, нет сложных и объёмных расчётов в SQLCLR и пр., то оставьте всё на автомате - он справится, скорее всего, лучше, чем вы с текущим уровнем знаний.

    К примеру, почему вы сейчас решили добавить памяти? Потому что это можно сделать относительно недорого? В целом, это не самая  плохая и справедливая для нашего времени мотивация, но лучше принимать такие решения не вслепую. А то не исключено, что вам и 256 мало будет.  Каков, к примеру, показатель page life expectancy у вашего сервера СЕЙЧАС?

    1 августа 2013 г. 19:58
  • можно ли в ms sql указать какие таблицы, индексы например загружать в память


    закрепить никак нельзя, но вы можете при старте полностью загрузить объект в память и он там будет "жить" пока его не выместят более актуальными данными (к которым идёт реальное обращение)

    http://www.t-sql.ru

    2 августа 2013 г. 4:37
    Отвечающий
  • Алексей, а как это сделать?? Т.е если есть активно используемая таблица в 60 gb и я её хочу при старте в память грузить.

    PLE - 3623

    через мин стало 3829

    Такое огранечение (по памяти)предыдущий админ поставил, мотивировал что  это максимум что для sql доступно будет, остальное под ос. Но я как понял (да и по факту) sql памяти больше может потребялть чем в этом ограничении указано.


    MCITP:EA. MCSA. MCTS:Exchange Configuring





    • Изменено Kir86 2 августа 2013 г. 7:03
    2 августа 2013 г. 6:49
  • Алексей, а как это сделать?? Т.е если есть активно используемая таблица в 60 gb и я её хочу при старте в память грузить.





    Просто считать её всю...она поднимется с диска в кэш, после этого она будет там, пока её страницы не будут вымещены другими объектами

    http://www.t-sql.ru

    2 августа 2013 г. 9:08
    Отвечающий
  • select * from .......Хитро)) А если индекс только?


    MCITP:EA. MCSA. MCTS:Exchange Configuring


    • Изменено Kir86 2 августа 2013 г. 9:27
    2 августа 2013 г. 9:27
  • select * from .......Хитро)) А если индекс только?


    MCITP:EA. MCSA. MCTS:Exchange Configuring



    соответственно запустить скан вашего индекса

    http://www.t-sql.ru

    2 августа 2013 г. 10:18
    Отвечающий
  • Лучше не делать select *, т.к. с его гигантским результатом надо что-то делать. Напишите select count(distinct col) from table, где col - неуникальная колонка, не входящая ни в один из некластерных индексов. Сервер вынужден будет просканить весь ваш кластерный индекс. :)
    2 августа 2013 г. 11:57