Должен ли файл журнала Tempdb находиться на диске, отличном от файлов данных, для лучшей производительности?
У нас есть временная база данных на своем диске, разделенная на несколько файлов для повышения производительности. У нас есть файлы журналов БД на дисках без данных. Мы задаемся вопросом, должны ли мы помещать файл журнала tempDB на диск журнала для всех БД или где-либо еще, но отдельно от файлов данных temdb.
4 ответа
Я никогда не беспокоился об этом. Взглянув на сайт MS, он говорит, что регистрация для tempdb сведена к минимуму. Это может быть не проблема для вас. И, конечно, не стоит преждевременно оптимизировать, т. Е. Перед тестированием текущей среды под реальной нагрузкой. Не существует единой передовой практики для конфигов SQL для всех условий.
Да, лучше разместить файлы журналов и данных TempDB на разных дисках. как обычно, мы помещаем файлы данных для всех БД и файлы журналов всех БД на отдельные диски, так как транзакции записывают в оба файла одновременно. То же самое относится и к файлам TempDB.
Речь идет о бинарном журнале транзакций или просто файле журнала приложения? Общая рекомендация для рабочих нагрузок базы данных - хранить журналы транзакций на другом физическом диске из хранилища данных; Это обеспечивает последовательную запись в журнал транзакций и повышает частоту обращений к кэшу на обоих томах за счет минимизации оттока кеша.
Традиционное представление состоит в том, что файлы данных пользовательских баз данных должны находиться на одном диске, файлы журналов пользовательских баз данных на другом диске (это диск, который действительно должен иметь быстрые задержки), а TempDB - на отдельном диске. Помимо изоляции их друг от друга, журналы и файлы данных имеют очень разные характеристики ввода-вывода.
С появлением SAN все изменилось, поскольку администраторы SAN обычно давали администраторам баз данных фрагменты больших кусков диска - различия в производительности были не столь очевидны.
Виртуализация изменила ситуацию еще больше, поскольку администратор БД мог подумать, что он отделил свои файлы данных от своих журналов от своей базы данных TempDB, но администратор виртуальной машины поместил все эти разные "диски" на один и тот же физический диск - в мире виртуальных машин эти диски просто файлы.
Я считаю, что по-прежнему хорошо хранить отдельные файлы данных, файлы журналов и файлы TempDB - если один из них раздувается, у вас, надеюсь, будет немного больше времени для его исправления - и это не уничтожит все.
Если вы можете сделать это, лучше всего сохранить ваши файлы данных и файлы журналов отдельно - и если вы тоже можете хранить отдельные базы данных TempDB, то отлично. Некоторые приложения, особенно использующие Read Committed Snapshot Isolation, интенсивно используют TempDB.