Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите! Хранение текстовых полей в Access 2007, Как выделяется память под текстовые поля 
:(
    Опции темы
zdz
Дата 12.4.2008, 22:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 12.4.2008

Репутация: нет
Всего: нет



Господа, здравствуйте, окажите , пожалуйста, посильную помощь!
Столкнулся с проблемкой при работе с Access 2007.
Вводная:
Таблица содержит поля
1 шт дл. целое
1 шт строка 20 симв.
20 шт строка по 2 симв.
Т.е. суммарный размер строки должен быть примерно 1*4+1*20+20*2=64 байта
Содержит 1048576 строк, по мере заполнения 2-х символьных полей возникает 
ошибка переполнения файла (access не умеет работать с файлами , которые больше 2-х гигов),
хотя д.б. порядка 64 * 1048576~70Mb
т.е. как я понимаю под хранение строки в 2 символа выделяется большее, чем нужно, место.
В Access 2003 данная проблемма решилась изменением типа базы данных по умолчанию с "Access 97\2000" на "Access 2003"(общий файл стал весить с полностью заполненной этой таблицей +2 мелкие + 3 формы) порядка 200Mb
PM MAIL   Вверх
Akina
Дата 13.4.2008, 15:53 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 30
Всего: 454



1 Гбайт записей - это уже явно не для Аксесса масштабы...
Цитата(zdz @  12.4.2008,  23:03 Найти цитируемый пост)
хотя д.б. порядка 64 * 1048576~70Mb

Вы забыли указатели на запись, указатели на поле, описатель поля и индексы. Плюс потери кластеризации. Так что минимум (1*4+1*20+20*2) + (1+1+20)*4 + 4 + 8 байт на запись - отсюда порядка 150 Мбайт. 


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
zdz
Дата 14.4.2008, 13:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 12.4.2008

Репутация: нет
Всего: нет



Akina, полностью с Вами согласен, про указатели и описатели поля и индекса я забыл . Ваша цифра у меня экспериментально  в 2003 Access-e и вышла -  где-то 175 М получилось(но там не только эта табличка была). 

Но главный вопрос как добиться этого для 2007 access-а. Помогите, плиз, если можете, очень нужно - горю...
PM MAIL   Вверх
bopoha
Дата 14.4.2008, 16:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1283
Регистрация: 10.5.2006
Где: Беларусь, Минск

Репутация: 21
Всего: 21



Дело в том, что практика показала, что Access не расчитан на размер баз данных от 100Мб. Он становится не уклюжим и не поворотливым. Очень рекомендуется либо разбивать БД на несколько файлов или использовать нормальный сервер БД.

Это сообщение отредактировал(а) bopoha - 14.4.2008, 16:06
PM MAIL WWW ICQ Skype GTalk   Вверх
Akina
Дата 14.4.2008, 16:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 30
Всего: 454



Цитата(bopoha @  14.4.2008,  17:06 Найти цитируемый пост)
практика показала, что Access не расчитан на размер баз данных от 100Мб

100 метров - цифра как минимум спорная. У меня не одна и не две БД размером от 200 метров до гига вполне прилично ворочаются. Но это на Аксессе-2003...

Цитата(zdz @  14.4.2008,  14:17 Найти цитируемый пост)
главный вопрос как добиться этого для 2007 access-а.

А если в Аксессе 2007 использовать формат БД от Аксесса 2003 - те же грабли? просто нет под рукой установленного 2007 офиса...


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
zdz
Дата 14.4.2008, 17:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 12.4.2008

Репутация: нет
Всего: нет



Цитата

А если в Аксессе 2007 использовать формат БД от Аксесса 2003 - те же грабли? 

Akina,  да те же самые :(

Добавлено @ 17:15
bopoha, быстродействие устраивает конечного пользователя.
База для кол-ва строк не большего (а чаще всего меньшего) чем 1048576. Просто я стал проверять на крайних значениях и выползла  сия бяка. Сначала в 2003 , но легко залечилась. А потом и в 2007 и вот тут я уперся основательно.  

Это сообщение отредактировал(а) zdz - 14.4.2008, 18:33
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "MS Access"
Akina
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] и [code=sql][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MS Access | Следующая тема »


 




[ Время генерации скрипта: 0.0469 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.