Должен ли диск журнала транзакций быть таким же быстрым, как диск базы данных? - PullRequest
7 голосов
/ 24 ноября 2010

Мы говорим нашему клиенту поместить файл базы данных SQL Server (mdf) на физический диск, отличный от файла журнала транзакций (ldf). Техническая компания (нанятая нашим клиентом) хотела поместить журнал транзакций на более медленный (например, более дешевый) диск, чем диск базы данных, потому что с журналами транзакций вы просто последовательно записываете в файл журнала.

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

Сказав это, я понял, что не совсем уверен в этом. Влияет ли скорость диска журнала транзакций на производительность? Если диск с базой данных быстрый?

Ответы [ 4 ]

5 голосов
/ 24 ноября 2010

Скорость диска журнала является наиболее важным фактором для интенсивной записи базы данных.Обновления не могут происходить быстрее, чем может быть записан журнал, поэтому ваш диск должен поддерживать вашу максимальную частоту обновления, наблюдаемую при скачке.И все обновления генерируют логи.Обновления файла базы данных (MDF / NDF) могут обеспечивать более низкую скорость записи из-за двух факторов:

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

. Таким образом, вы правы, чтоПропускная способность журнала имеет решающее значение.

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

Но все это сопровождается некоторыми серьезными предупреждениями:

  • более медленный диск (или RAIDкомбинация) должна действительно обеспечивать высокую последовательную пропускную способность
  • диск должен видеть записи журнала из одной и только одной базы данных и ничего больше.Любая другая операция, которая может помешать текущему положению головки диска, повредит вашей производительности записи и приведет к снижению производительности базы данных
  • . Журнал должен быть только для записи, а не для чтения.Имейте в виду, что некоторые компоненты должны читать из журнала, и поэтому они будут перемещать механику диска в другие позиции, чтобы они могли читать ранее записанный журнал:
    • репликация транзакций
    • зеркальное отображение базы данных
    • резервная копия журнала
2 голосов
/ 24 ноября 2010

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

Это ОЧЕНЬ упрощенный взгляд на внутреннюю часть Журнала транзакций, которой посвящены целые книги, но элементарный пункт остается.

Теперь, если система хранения, с которой вы работаете, может предоставить IOPS, который вам необходим для поддержки как ваших Журнала транзакций, так и файлов данных базы данных, тогда общий диск / LUN удовлетворит ваши потребности.

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

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

0 голосов
/ 24 ноября 2010

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

0 голосов
/ 24 ноября 2010

Что ж, журнал транзакций является основной структурой, которая предоставляет ACID, может стать большим узким местом для производительности, и если вы регулярно выполняете резервное копирование, его требуемое пространство имеет верхний предел, поэтому я бы поместил его в безопасный, быстрый диск сдостаточно места + немного запаса.

...