Как большой журнал транзакций влияет на производительность? - PullRequest
8 голосов
/ 09 августа 2009

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

По мере увеличения журнала, как это повлияет на производительность базы данных и производительность приложений, обращающихся к базе данных?

JD

Ответы [ 6 ]

7 голосов
/ 09 августа 2009

Рекомендуется назначать файлу журнала транзакций SQL Server собственный диск или LUN.

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

Идеальный сценарий состоит в том, чтобы ваш администратор БД выделил достаточно места для журнала для вашей среды базы данных заранее, то есть выделил, скажем, x ГБ данных за один раз. На выделенном диске это создаст непрерывное распределение, что позволит избежать фрагментации.

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

Вам также следует НЕ сжимать файл журнала транзакций, так как повторное сжатие и автоматический рост могут привести к фрагментации файла данных на диске.

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

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

1 голос
/ 09 августа 2009

Двумя способами.

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

Вам необходимо связаться с вашим администратором баз данных (или, может быть, вы администратор баз данных?) И выполнять частые периодические резервные копии журналов. Сохраните их с вашего сервера в другой выделенной системе резервного копирования. При резервном копировании журнала пространство в существующем файле журнала будет освобождено, что не позволит журналу стать намного больше. Резервное копирование журнала транзакций также позволит вам восстановить базу данных в определенный момент времени после последнего полного или разностного резервного копирования, что значительно сократит потери данных в случае сбоя сервера.

0 голосов
/ 14 июля 2018

Для повышения производительности желательно отделить файл журнала SQL-сервера от файла данных sql-сервера, чтобы оптимизировать эффективность ввода-вывода. Метод записи в файл данных является случайным, но SQL Server выполняет последовательную запись в журнал транзакций. Благодаря последовательному вводу-выводу SQL Server может читать / записывать данные без изменения положения головки диска.

0 голосов
/ 18 февраля 2013

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

вот статья, которая показывает, как это исправить: http://www.sqlserveroptimizer.com/2013/02/how-to-speed-up-sql-server-log-file-by-reducing-number-of-virtual-log-file/

0 голосов
/ 09 августа 2009

Если вы не очищаете журнал транзакций периодически, выполняя резервные копии, журнал заполняется и занимает все доступное дисковое пространство.

0 голосов
/ 09 августа 2009

Если журнал становится фрагментированным или должен расти, это замедлит работу приложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...