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

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

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

Спасибо!

Ответ 1

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

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

Ответ 2

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

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

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

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

Чтобы переместить 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, вы получите увеличенную производительность.

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

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

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

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

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

  • Установить автозагрузку для tempdb (в тестовой среде!).
  • Выполнять отдельные запросы или файлы трассировки рабочей нагрузки и контролировать использование пространства tempdb.
  • Выполнять операции обслуживания индекса, такие как восстановление индексов и контроль пространства tempdb.
  • Используйте значения использования пространства из предыдущих шагов для прогнозирования общего использования рабочей нагрузки; отрегулируйте это значение для прогнозируемой параллельной активности, а затем установите размер 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 Server и может предотвратить запуск приложений, выполняющихся после завершения операций.

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

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

Ссылки:

Ответ 3

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

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

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

Ответ 4

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

Ответ 5

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

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