Andrew Sagulin писал(а):В двух словах (как я понял): если между тем, как приложение запросило увеличение размера файла и получило Ok от WinAPI, и тем, как драйвер NTFS полностью зафиксировал изменения на диске, сделать Reset, то размер файла может не измениться, а все добавленные данные потеряются. При следующей загрузке СУБД "будет думать", что файл увеличился, а на самом деле это не так, и... "а пацаны-то не знают".
Не будет FB так думать, если FW=on - ссылок на потерянные страницы нигде не будет.
Вот простой пример:
Делаем insert, места в таблице нет, места в середине PIP нет
а) помечаем в последней PIP младший свободный бит (это номер страницы вне файла БД, сама PIP конечно внутри файла)
б) пишем в новую страницу данные
в) записываем номер новой страницы в PP таблицы
если сбой будет в момент
а) ничего не поломается, т.к. ссылок на новую страницу нигде нет и никто никогда не захочет её прочитать
б) аналогично, только страница будет помечена как занятая
в) аналогично
kdv писал(а):"Вот в системе есть АБЦ. А вы ее не используете. Ну почему, почему, почему? я сам не в курсе тонкостей АБЦ, но считаю эту штуку очень полезной - ведь зачем-то же ее сделали? а разработчики ваши, очевидно, среднего ума, раз не используют АБЦ"
Угу это я и хотел написать, только не сформулировал так корректно
iSerge писал(а):А кроме FW еще что-нибудь?
Читай про careful write и подумай о том, почему FW=OFF его херит
В MSDN нет (да и не может быть) API для "использования особенностей ЖФС".