none
MS SQL 2012 и tempdb RRS feed

  • Общие обсуждения

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

    Есть сервер MS SQL 2012 на котором крутится база для 1С 8.3. Размер базы - 140 Гб и есть также несколько тестовых баз. База лижит на диске D: а база tempdb - на C: в каталоге установки по умолчанию. Наблюдаю странную картину - размер базы tempdb - 34 Гб и так же создались 6 баз tempdb0N по 30 Гб. Я не большой специалист по базам - объясните плиз это нормальное поведение базы или что-то не правильно настроено? Где об этом можно почитать?

    Сервер железный - 2 проца Intel(R) Xeon(R) CPU E5-2697 v3 @ 2.60GHz. Гипертрейдинг включен. 56 логических ядер.

    Заранее всем спасибо!

    9 февраля 2017 г. 6:57

Все ответы

  • База данных tempdb является временной рабочей областью. Сервер SQL Server использует базу данных tempdb для выполнения многих задач. Вот некоторые из них:
    • хранение временных таблиц, созданных явным образом;
    • хранение рабочих таблиц, содержащих результаты, созданные в процессе обработки запросов и сортировки;
    • хранение материализованных статических курсоров;
    • хранение записей о версиях при использовании уровней изоляции моментальных снимков или уровней изоляции моментальных снимков зафиксированного чтения.

    По умолчанию база данных tempdb настроена на автоматическое увеличение размера по мере необходимости. Таким образом, со временем размер этой базы данных может превысить желаемый. Простой перезапуск сервера SQL Server устанавливает размер базы данных равным последнему заданному значению. 

    Без перезагрузки сервера можно воспользоваться командой

    DBCC SHRINKFILE
    Позволяет уменьшить размер отдельных файлов.

    9 февраля 2017 г. 7:22
  • ну это то я знаю. меня интересует почему он насоздавал 6 файлов по 30 Гб?
    9 февраля 2017 г. 7:29
  • Добрый день.

    В логах всё чисто. Диски норм. Собраны в рейд.

    9 февраля 2017 г. 7:49
  • Вы сами проводили установку и настройку сервера?

    Несколько файлов для tempdb может быть обусловлено тем, что кто-то пытался оптимизировать работу SQL. Есть рекомендация по созданию количества файлов данных базы tempdb по числу процессоров (или ядер). Это не обязательно, но многие считают, раз так написано, то обязательно надо выполнять. В большинстве случаев такое разделение не дает прироста производительности, а только увеличивает накладные расходы на администрирование и обслуживание.


    Innovation distinguishes between a leader and a follower - Steve Jobs

    9 февраля 2017 г. 8:00
  • Кол-во файлов для tempdb равно кол-ву процессоров на момент инсталляции sql сервера.

    UPD: да, это верно для sql 2016, как поправил Илья.

    9 февраля 2017 г. 9:47
  • Только начиная с 2016, если не ошибаюсь

    Innovation distinguishes between a leader and a follower - Steve Jobs

    9 февраля 2017 г. 9:53
  • Вы сами проводили установку и настройку сервера?

    Несколько файлов для tempdb может быть обусловлено тем, что кто-то пытался оптимизировать работу SQL. Есть рекомендация по созданию количества файлов данных базы tempdb по числу процессоров (или ядер). Это не обязательно, но многие считают, раз так написано, то обязательно надо выполнять. В большинстве случаев такое разделение не дает прироста производительности, а только увеличивает накладные расходы на администрирование и обслуживание.


    Innovation distinguishes between a leader and a follower - Steve Jobs

    Спасибо за ответ.

    Установку и настройку производил не я. У меня всего 2 процессора и 56 ядер. Почему тогда создалось 6 файлов?


    • Изменено Igor3000 9 февраля 2017 г. 10:07
    9 февраля 2017 г. 10:06