Вот что я исследовал из разных источников.
Для оптимизации производительности базы данных 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.
Ссылки: