Цитата: amadey ➤ А физически в файл информация не попадет еще примерно 15 минут.
Сознайтесь, откуда Вы это все берете? :) :)
Цитата: amadey ➤ Сброс (закрытие) кэша винчестера и делается когда вы нажимаете Пуск-Выключение. Ну или через 15 минут если обращение от приложения к файлу прекращено а файл приложением закрыт.
Проведите любопытный для себя эксперимент. Включите компьютер, откройте документацию к своей программе, напишите "Я - БАКЛАН!" в самом начале, сохраните, потом подождите 5 минут и выдерните кабель питания :) Если Вы себе верите, то документация останется целой, так ведь? Если не правы - оставьте запись, пожалуйста :) Ну, если появились сомнения, то можно все же начать читать про устройство Windows и API, например, про FlushFileBuffers() какой-нибудь.
Цитата: amadey ➤ Это таинство (для вас) как раз и основано на восстановлении по контрольным суммам соседних секторов.
Так я и просил раскрыть таинство, раз оно только для меня, а не для вас... Вот смотрите, блоки идут ХХХХХХХХ-дырка-УУУУУУУУУ, какая магия поможет угадать, что было в дырке? Контрольная сумма в данном случае позволяет лишь определить, что данные некорректны. Вернуть их обратно нельзя в принципе. Это не сжатие и не рейд. Это просто контрольная сумма.
Цитата: amadey ➤ Я не хочу вас обзывать.
Хорошо, что желания не возникает :) Хороший признак. И будет лучше, если вы все же будете спорить не за право назвать меня идиотом, а за верность фантазий, которые вы откуда-то в голову себе забили.
Цитата: amadey ➤ Просто воздержитесь от спора со мной.
Форум - не место для дискуссий? Где-то я уже слышал подобное...
Цитата: amadey ➤ Это если в базе 99% мусора хранить.
Давайте не будем повторяться? Мы поняли, что у вас программа вместо базы данных фактически просто в структурированные текстовые файлы пишет.
Вот конкретный пример небольшой и не сильно нагруженной базы сети, 408125033 строк чеков
Код:
LOCID NOT NULL NUMBER(10)
DESKNUM NOT NULL NUMBER(5)
ZNUM NOT NULL NUMBER(5)
CHECKNUM NOT NULL NUMBER(5)
ITEM NOT NULL NUMBER(5)
ARTICLE NOT NULL VARCHAR2(50)
QUANTITY NOT NULL NUMBER(16,5)
ITEMPRICE NOT NULL NUMBER(19,4)
TOTALSUM NOT NULL NUMBER(19,4)
CREDCARDBRAND NUMBER(5)
SELLER NUMBER(10)
DEPID NOT NULL NUMBER(10)
SUBARTICLE VARCHAR2(255)
BARCODE VARCHAR2(50)
PDF417 VARCHAR2(255)
NOPDF VARCHAR2(255)
MARK VARCHAR2(255)
и строк спецификаций документов в ней 438045729
Код:
DOCTYPE NOT NULL CHAR(2)
DOCID NOT NULL VARCHAR2(50)
SPECITEM NOT NULL NUMBER(10)
DISPLAYITEM NOT NULL NUMBER(10)
ARTICLE NOT NULL VARCHAR2(50)
QUANTITY NOT NULL NUMBER(14,3)
ITEMPRICE NUMBER(19,4)
TOTALPRICE NOT NULL NUMBER(19,4)
ITEMPRICENOTAX NUMBER(19,4)
TOTALPRICENOTAX NUMBER(19,4)
ITEMPRICECUR NUMBER(19,4)
TOTALPRICECUR NOT NULL NUMBER(19,4)
CAUSETYPE CHAR(2)
CAUSEID VARCHAR2(50)
CAUSESPECITEM NUMBER(10)
это всего лишь две таблицы из нескольких десятков, пусть в среднем там длина строки будет 512 байт
846170762*512=433239430144 байт только спецификации, но Вы, конечно, можете настаивать дальше, что ваша программа самая быстрая, если в нее данные не заводить... А я все же предлагаю задуматься, что будет дальше.
Цитата: amadey ➤ в двух словах (сразу результат ваших исследований)
В двух словах - "NTFS - говно". Чуть подробнее - файловая система не расчитана на большое количество файлов, и его появление убивает FS. Навсегда. Примеры с полным диском, на котором ничего нет, я выкладывал в той теме.
Цитата: amadey ➤ Но и на миллион файловая система рассчитана.
Сделайте миллион файлов и откройте директорию с ними в Explorer на машине с антивирусом. :)