Советы по оптимизации SQL Server tempdb для нового сервера?

Я планирую новую установку SQL Server 2005 на новой машине, которую я должен заказать. Я знаю это настройка tempdb очень важно для общего производительность экземпляра SQL Server.

Я читал, что лучше всего создавать столько файлов tempdb, сколько у вас есть CPU (или ядер?). Это верно? Есть ли другие рекомендации, например, для настройки жесткого диска / RAID, я должен обратить внимание чтобы?

спасибо!

5 ответов


Если бы мне пришлось выбрать одного человека, которому я доверяю за советом по настройке сервера, это был бы Денни черри. Он написал статью, объясняющую это.

http://searchsqlserver.techtarget.com/tip/0,289483,sid87_gci1307255,00.html


вот что я исследовал сам из различных источников.

для оптимизации производительности tempdb обратите внимание на конфигурацию физического диска, конфигурацию файла, а также некоторые настройки в базе данных.

конфигурация физического диска

tempdb должен находиться на его собственные выделенные физические диски. Это позволяет разделить транзакции ввода-вывода из оставшихся томов на SQL Сервер.

чтобы переместить tempdb на новый диск, используйте ALTER DATABASE. Это ключевая команда T-SQL для выполнения этой операции. Microsoft предлагает хороший пример в электронной документации по SQL Server 2005. Имя статьи-ALTER DATABASE (Transact-SQL), а конкретный раздел -'G. перемещение базы данных tempdb в новое место.'

база данных tempdb является очень высокой записи. Таким образом, массив RAID 5 не является подходящим местом для него. Вы должны поставить tempdb на RAID 0 или RAID 10 массив поскольку они оптимизированы для приложений с высокой записью. Если вы можете позволить себе дополнительные массивы RAID 0 или RAID 10 для каждого физического файла базы данных для tempdb, вы получите повышенную производительность.

файлы базы данных

вы должны есть!--12-->один физический файл на ядро процессора на сервере. Итак, если у вас есть двухчиповый двухъядерный сервер, у вас должно быть четыре физических файла базы данных для базы данных tempdb. При добавлении базы данных файлы, важно настроить файлы на тот же начальный размер и с теми же настройками роста. Таким образом, SQL Server будет записывать данные в файлы как можно более равномерно.

размер файла базы данных

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

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

  1. установить автозапуск для tempdb (в тестовой среде!).
  2. выполнение отдельных запросов или файлов трассировки рабочей нагрузки и мониторинг использования пространства tempdb.
  3. выполнение операций обслуживания индекса, таких как перестроение индексов и мониторинг пространства tempdb.
  4. используйте значения использования пространства из предыдущих шагов для прогнозирования общего использования рабочей нагрузки; настройте это значение для прогнозируемого параллельного действие, а затем установить размер tempdb соответственно.

рекомендации по минимальному размеру для tempdb следующие:

   Envir. Size  DB Size (MB)  Log Size (MB)
   -----------  ------------  -------------
   Small                1024            256
   Medium               5120           1024
   Large               10024           2048

параметры базы данных

вы можете дополнительно увеличить производительность tempdb на отключение автоматического обновления статистика, который сохранит вашу tempdb некоторую работу. Вы также можете установить автоматическое создание статистики опция false.

отказ от ответственности: настройки должны быть изменены осторожно. В зависимости от вида нагрузки, которую вы размещаете на tempdb, изменение настроек может негативно повлиять на производительность системы.

для достижения оптимальной производительности tempdb следуйте инструкциям и рекомендациям, приведенным в оптимизация производительности базы данных tempdb.

как контролировать использование tempdb?

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

можно использовать sys.dm_db_file_space_usage динамическое представление управления для мониторинга дискового пространства, используемого этими функциями в файлах tempdb. Кроме того, чтобы отслеживать действие выделения или освобождения страниц в базе данных tempdb на уровне сеанса или задачи, можно использовать sys.dm_db_session_space_usage и sys.dm_db_task_space_usage динамические административные представления.

эти представления можно использовать для идентификации больших запросов, временные таблицы или табличные переменные, использующие много дискового пространства tempdb. Существует также несколько счетчиков, которые можно использовать для мониторинга свободного пространства, доступного в tempdb, а также ресурсов, использующих tempdb.

ссылки:


из того, что я прочитал, лучше всего поместить tempDB на собственный физический диск (или массив). Для максимальной скорости вы можете ввести массив raid 0. Однако в случае сбоя одного из дисков сервер БД выйдет из строя. Если вы хотите больше избыточности, поместите ее в массив raid 10. Реальный ключ, похоже, отделяет его от других баз данных, потому что в TempDB может быть так много активности.

насколько далеко вы идете, зависит от других баз данных на сервере и делают ли они это много работы с временными таблицами и т. д.

Я ничего не слышал о нескольких файлах, основанных на количестве процессоров или ядер.


Смотрите также эту публикацию RAID журнала транзакций SQL Server который содержит обсуждение макета сервера, которое затрагивает некоторые проблемы вокруг tempdb.


Я бы рекомендовал создать файлы данных между 1/2 и 1/4 * количество ядер. вы должны разместить эти файлы на самый быстрый диск

для получения дополнительной информации вы можете посмотреть здесь: конфигурация SQL Server tempdb