Разделение TempDB на несколько файлов, равное количеству процессоров

8

В статье SQL Server tempdb Best Practices Повышение производительности предлагается, чтобы я разбился tempdbна количество файлов, равное количеству ядер. Таким образом, для 4 ядер вы получаете 4 файла.

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

Хотя это звучит хорошо в теории, действительно ли это так хорошо, как общая оптимизация? Это то, что может применяться только для конкретных систем, где IO очень высока?

Прит Сангха
источник

Ответы:

13

Соотношение от 1/4 до 1/2 числа файлов данных TempDB к ядрам машин долгое время было рекомендацией ...

Но теперь есть еще лучшее руководство. На PASS в 2011 году мой хороший друг Боб Уорд, который является лучшим в Службе поддержки продуктов SQL, поддержал новую формулу: если у вас менее 8 ядер, используйте #files = #cores. Если у вас более 8 ядер, используйте 8 файлов и, если вы видите конфликт в памяти, добавляйте еще 4 файла за раз. [ссылка на сайт]

Последнее предложение всегда было актуальным. Если вы не видите конкуренции, зачем добавлять дополнительные файлы? Чтобы играть безопасно, большинство добавит 2-4 файла в качестве отправной точки для большинства сборок, но кроме того, измерять и реагировать.

Марк Стори-Смит
источник
10

Как и большинство общих рекомендаций, это упрощение в самом лучшем свете. В лучшем случае это хорошая отправная точка (при условии, что вы не соблюдаете соотношение 1: 1 ядро: файл данных с большим количеством ядер).

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

Устранение конфликтов с TempDB (часть 1)
Устранение конфликтов с TempDB (часть 2)
Анализ конкуренции с
Tempdb Оптимизация конфигурации tempdb с помощью расширенных событий SQL Server 2012

Но, чтобы ответить на ваш вопрос, нет, это не просто и быстро настроить и забыть часть базы данных tempdb .

Томас Стрингер
источник