Переопределяет ли параметр «Включить расширенную производительность» FILE_FLAG_WRITETHROUGH в Win 2k3 / SQL Server 2005 - PullRequest
1 голос
/ 29 января 2009

SQL Server открывает файлы с помощью FILE_FLAG_WRITETHROUGH, который, по-видимому, инициирует запись на физический диск. На языке SQL Server это называется «Принудительный доступ к единице (FUA)»; белую книгу, обсуждающую это, можно найти здесь . Многие SAN, кажется, соблюдают это, и это может объяснить низкую производительность процесса ETL, который я разрабатываю на сервере, связанном с акулой IBM.

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

Кто-нибудь точно знает, так ли это на самом деле или что на самом деле делает эта опция?

1 Ответ

1 голос
/ 30 января 2009

Это не тот случай. В SQL Server всегда будет включена сквозная запись для открываемых файлов. Это гарантирует, что любые записи не буферизируются в локальном дисковом кэше Windows. Все, что находится за пределами этого на контроллере диска (RAID-контроллере и т. Д.) Или в сети SAN, будет иметь свой собственный кэш (возможно, с резервным питанием от батареи и зеркальным отражением) и будет иметь отдельную политику кэширования независимо от того, как файлы были открыты в ОС. Никогда не включайте обратную запись в кэш, у которого нет резервной батареи. Если вы потеряете питание во время записи, ваша база данных будет повреждена.

...