Подтвердить что ты не робот

Как распространить tempdb на несколько файлов?

В этом блоге http://blogs.msdn.com/sqlserverstorageengine/archive/2009/01/04/managing-tempdb-in-sql-server-tempdb-configuration.aspx говорится, что это хорошая идея: "Распространять TempDB по меньшей мере столько же файлов одинакового размера, сколько есть CORE или ЦП."

Итак, мой основной вопрос: каким образом я могу настроить свой SQL-сервер для этого. Итак, я нажимаю правой кнопкой мыши на tempdb, выбираю свойства, файлы, а затем добавляю файл для каждого процессора? Как он знает, что он должен распространять tempdb через эти файлы? есть ли флаг, который я должен установить?

Я неправильно понял статью?

4b9b3361

Ответ 1

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

Вы действительно можете сделать то, что вы говорите, и работа будет автоматически распространяться по файлам данных TempDB. Это также может быть написано как таковое:

ALTER DATABASE tempdb
ADD FILE (NAME = tempdev2, FILENAME = 'W:\tempdb2.mdf', SIZE = 256);
ALTER DATABASE tempdb
ADD FILE (NAME = tempdev3, FILENAME = 'X:\tempdb3.mdf', SIZE = 256);
ALTER DATABASE tempdb
ADD FILE (NAME = tempdev4, FILENAME = 'Y:\tempdb4.mdf', SIZE = 256);
GO

чтобы получить три дополнительных файла (т.е. 4 ядра процессора и 4 физических диска).

Ответ 2

Я знаю, что это довольно поздно, но совет по созданию одного файла для каждого процессора на самом деле является мифом о том, что Пол Рэндал развенчивает в своем блоге:

http://www.sqlskills.com/blogs/paul/post/A-SQL-Server-DBA-myth-a-day-%281230%29-tempdb-should-always-have-one-data-file-per-processor-core.aspx

Базовый совет из статьи: If you have > 8 cores, use 8 files and if you're seeing in-memory contention, add 4 more files at a time.