![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
MS Access - макс.размер файла БД - сжать и добавить [D7]
UnDISCOvery © (2005-12-23 13:58:00)Макс.размер БД - 2 Гб.
1. Сжал - получил 500 мегов - начал добавлять строки, что делатькогда опять достигнет 2 Гб. Опять сжимать? А сожмется ли?
2. Если не сжимать, то до какого предела может расти?
Anatoly Podgoretsky (2005-12-26 18:09:00) [1]Asail (26.12.05 15:25) [14]
Конечно не из пальца - это связано с Int32
sniknik (2005-12-26 17:49:00) [2]а по теме давно все сказано, обсуждать нечего, если только не неподтвержденное свидетельство автора, о том что спецификация врет. которое подтверждать не хочет, код выложить который каждый может проверить тоже... имхо обсуждение окончено (/или развод. тоже окончен).
Asail (2005-12-26 17:27:00) [3]
> sniknik © (26.12.05 15:35) [17]
> в одном месте пропустил и оно (при переходе именно в этом
> месте) вдруг создает файл больше. что это?
Конечно ошибка! Ведь заявил, что не больше 100Mb, а не выполнил!
Значит, ошибка. Но, это мы отвлеклись от темы...
sniknik (2005-12-26 15:35:00) [4]> P.S. Что и есть
>> ошибка в самом движке
если ты написал программу и сказал всем "она работает с файлами не более 100мег!!!" (больше не считаеш нужным/хочеш ограничить чтобы переходили на новую версию) весде ставиш "если размер >= тогда raise"...
и в одном месте пропустил и оно (при переходе именно в этом месте) вдруг создает файл больше. что это? - "ошибка в самом движке". не имхо. заявленное но не выполненое = ошибка.
sniknik (2005-12-26 15:30:00) [5]Asail (26.12.05 15:25) [14]
> а не потому-что пожалели больше
есть еще "политика партии" (/компании). и этой политике плевать на давно устаревшие ограничения файловой системы, понадобится переставят.
> Но это все всего-лишь мое предположение...
а ты читать умееш? или только писать?
эти предположения давным давно проверены и перепроверены. читай ветку сначала.
Asail (2005-12-26 15:26:00) [6]P.S. Что и есть
> ошибка в самом движке
Asail (2005-12-26 15:25:00) [7]
> это ограничение по спецификации типа базы
Да. Но ограничения по спецификации тоже не из пальца высосаны.
MS 2Гб ограничили, видимо, исходя из ограничений файловой системы (а не
потому-что пожалели больше). А блокировку на случай, что файловая
система позволяет больше, чем 2Гб не поставили... Но это все всего-лишь
мое предположение...
sniknik (2005-12-26 15:12:00) [8]> А если NTFS - может и нет этого ограничения?
есть. зависит не от файловой системы. это ограничение по спецификациитипа базы. если обошли, то это либо спецификация была пересмотрена, либо ошибка в самом движке.
Anatoly Podgoretsky (2005-12-26 14:50:00) [9]UnDISCOvery (26.12.05 11:02) [9]
Если такие объемы есть - значит не та база выбрана.
Asail (2005-12-26 14:43:00) [10]Вообще-то 2Гб это ограничение на размер файла в FAT (я так понимаю).
А если NTFS - может и нет этого ограничения?
sniknik (2005-12-26 11:47:00) [11]> Могу посоветовать набросать простой примерчик
могу посоветовать не давать больше подобных советов...
все что можно давно сделано и проверено без них, единственная предполагаемая возможность была в 7 или 8 SP (уже проверено), либо в твоем особо извратном коде который позволяет невозможное... и который оказался секретным... :(
сам файл базы интереса не представляет (могу приплюсовать туда любой обьем просто добавив левый файл командой copy +, но это не будет значить, что это в базе и создано jet-ом. у него ограничение на на базу в 2гб)
> Видимо оно потом и сжимается, уменьшая объем БД в разы. :)
не придумывай, что именно сжимается написано в > sniknik © (23.12.05 14:37) [2]
UnDISCOvery (2005-12-26 11:02:00) [12]AlexWlad © (23.12.05 19:29) [8]
Прошу мою сексуальную позицию не обсуждать :)
Если такие объемы есть - значит они нужны, значит так надо. И если я задаю вопрос, значит я пытаюсь вылечить тот самый геморрой. Была бы возможность - использовал птицу Феникса :)
sniknik © (23.12.05 17:23) [7]
пример прислать не могу, потому весь его смысл в файлах данных, а они жутко огромные. Могу посоветовать набросать простой примерчик, например как в одном из мои предыдущих постов, где есть 1 табличка с 2 полями. И сливать в нее данные в цикле, либо из файла, либо из памяти рандомайзом. В моем случае в таблице есть поле VARCHAR, в него пишется строка текста переменной длины. Видимо оно потом и сжимается, уменьшая объем БД в разы. :)
AlexWlad (2005-12-23 19:29:00) [13]Извращенец!!!
С такими объемами пользовать Аксесс - сознательно зарабатывать геморрой на все места.
Тебе написал АП - пользуй MSDE, а то и полноценный SQL.
sniknik (2005-12-23 17:23:00) [14]Anatoly Podgoretsky © (23.12.05 15:30) [5]
... может в 7 или 8 SP таким образом пофиксили баг с разрушением базы при подходе к границе? разрешив рабочие области за пределами ограничений, и теперь это ограничение именно и только для данных?
UnDISCOvery (23.12.05 16:22) [6]
пришли свой пример делающий базу более 2гб. проверю у себя.
UnDISCOvery (2005-12-23 16:22:00) [15]ну что я могу сказать - не верь глазам своим!
истинная правад - 2.5 гига ... с БД никто не связан кроме утилиты по закачиванию в нее данных ... иными словами, с базой работает только один запрос SQL - INSERT INTO ... никаких открытых НД. Может в этом дело?
Anatoly Podgoretsky (2005-12-23 15:30:00) [16]Что то ты сказки рассказываешь по 2.5 гб, по спецификации максимальный размер 2 гб
UnDISCOvery (2005-12-23 15:19:00) [17]А как быть с такой ситуацией - есть данные в текстовом файле, нужно их занести в БД. Объем большой. При первичном заносе размер файла БД - около 2.5 Гигов, после сжатия 500 мегов.
Может что-то случится с БД,испортиться чтонить?
Или если с ней ничего не делать кроме как сжать\восттановить, то все ОК?
Anatoly Podgoretsky (2005-12-23 15:10:00) [18]UnDISCOvery (23.12.05 13:58)
Сжимать, или переходить на другую базу, Микрософт рекомендует MSDE.
sniknik (2005-12-23 14:37:00) [19]> 2. Если не сжимать, то до какого предела может расти?
до ~ 2 гб. немного меньше. 2 гига это ограничение на размер данных, а несжатый это еще + неудаленное и используемое повторно пространство, "дыры" в страницах, рабочие области...
по идее ты можеш получить переполнение и на 1-но гигабайтной базе, если к примеру будеш делать запрос на обьеденение который > оставшегося 1 гб. (если по какойто причине временная таблица полностью будет расположена(ппытается) в базе)
lost_delpher (2005-12-23 14:10:00) [20]можно смоделировать такую ситуацию в Акцессе и посмотреть что будет