Назад | Перейти на главную страницу

Должен ли файл журнала Tempdb находиться на другом диске, чем файлы данных, для лучшей производительности?

У нас есть собственная база данных tempdb, разделенная на несколько файлов для повышения производительности. У нас есть файлы журналов БД на дисках без данных. Мы сомневаемся, следует ли помещать файл журнала tempDB на диск журнала для всех БД или где-то еще, но отдельно от файлов данных temdb.

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

Мы говорим о двоичном журнале транзакций или просто текстовом файле журнала приложения? Общая передовая практика для рабочих нагрузок базы данных - хранить журналы транзакций на физическом диске, отличном от вашего хранилища данных; это сохраняет последовательные записи в журнале транзакций и повышает частоту попаданий в кэш на обоих томах за счет минимизации оттока кеша.

Традиционная точка зрения состоит в том, что файлы данных пользовательских баз данных должны находиться на одном диске, файлы журналов пользовательских баз данных - на другом диске (это тот диск, который действительно должен иметь короткие задержки), а TempDB - на отдельном диске. Помимо изоляции друг от друга, журналы и файлы данных имеют очень разные характеристики ввода-вывода.

Все изменилось с появлением сетей SAN, поскольку администраторы SAN обычно предоставляли администраторам баз данных вырезанные части из больших кусков диска - различия в производительности были не столь очевидны.

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

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

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

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