powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / при добавлении поля в таблицу размер базы не увеличился!
25 сообщений из 88, страница 2 из 4
при добавлении поля в таблицу размер базы не увеличился!
    #32673031
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Boolean поля хранятся в тех же битах, именно поэтому в mdb , булевские поля не могут быть Null.
Все гениальное просто. Сенькс.

Ксли в таблице два лонга, в неё без изменения размера влезет ещё 6 Boolean полей
Надеюсь автор получил ответ на свой первоначальный вопрос?
...
Рейтинг: 0 / 0
при добавлении поля в таблицу размер базы не увеличился!
    #32673043
Иван FXS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лох Позорный Ксли в таблице два лонга, в неё без изменения размера влезет ещё 6 Boolean полей
Надеюсь автор получил ответ на свой первоначальный вопрос?
- да, на первоначальный - получил. Спасибо ВСЕМ за конструктивный подход.

Осталось расписать, - как на структуре из 2-х Loнгов набегает 16 байт на запись ...
...
Рейтинг: 0 / 0
при добавлении поля в таблицу размер базы не увеличился!
    #32673051
Фотография Pavel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну а системные таблицы где хранится будут?
...
Рейтинг: 0 / 0
при добавлении поля в таблицу размер базы не увеличился!
    #32673054
Фотография Pavel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А может еще какой запрос, форма\отчет или модуль\макрос в mdb затесался.
...
Рейтинг: 0 / 0
при добавлении поля в таблицу размер базы не увеличился!
    #32673063
Иван FXS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PavelНу а системные таблицы где хранится будут?
- если это вопрос ко мне, то ... при размере таблицы в 26М - "где будут хранится системные таблицы" - меня мало интересует!
На запись приходится 16.13 байта, вот в этих 0.13 байта и "хранятся", очевидно, системные таблицы ...
...
Рейтинг: 0 / 0
при добавлении поля в таблицу размер базы не увеличился!
    #32673071
Фотография Serge Gavrilov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Иван FXS- е-к-л-м-н! Написал же - в первом же постере: 2 поля типа Long без индексов!

ну что вы так нервничаете :)
ну пропустил, виноват, работаю одновременно ..
Но я же вам сказал, что вы можете изучить формат сами.
Просто и для страницы нужно описание и для записи.
Даже на первый взгляд видно, что каждой записи надо как минимум 4 байта на описание ...
...
Рейтинг: 0 / 0
при добавлении поля в таблицу размер базы не увеличился!
    #32673072
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Иван FXS Лох Позорный Ксли в таблице два лонга, в неё без изменения размера влезет ещё 6 Boolean полей
Надеюсь автор получил ответ на свой первоначальный вопрос?
- да, на первоначальный - получил. Спасибо ВСЕМ за конструктивный подход.

Осталось расписать, - как на структуре из 2-х Loнгов набегает 16 байт на запись ...

в соответствии с таблицей от Alexey Sh:

2 байта - - к-во полей
2 байта - выровненный до ште описатель дщтпф
4 байта - значение лонга
2 байта - выровненный до ште описатель дщтпф
4 байта - значение лонга
1 байт - нулл маск
--------------------
15
умно было бы выровнять хотябы до ближайшего кратного int
если не так, то лишние байты соберутся в конце страницы, а работа с базой РЕЗКО замедлится
+1
=16
...
Рейтинг: 0 / 0
при добавлении поля в таблицу размер базы не увеличился!
    #32673135
Alexey Sh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Два байта на Offset на каждую запись!

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
+--------------------------------------------------------------------------+
| Jet4 Data Page Definition                                                |
+------+---------+---------------------------------------------------------+
| data | length  | name       | description                                |
+------+---------+---------------------------------------------------------+
| 0x01 | 1 byte  | page_type  | 0x01 indicates a data page.                |
| 0x01 | 1 byte  | unknown    |                                            |
| ???? | 2 bytes | free_space | Free space in this page                    |
| ???? | 4 bytes | tdef_pg    | Page pointer to table definition           |
| ???? | 4 bytes | unknown    | Unknown                                    |
| ???? | 4 bytes | num_rows   | number of records on this page             |
+------+---------+---------------------------------------------------------+
| Iterate for the number of records                                        |
+--------------------------------------------------------------------------+
| ???? | 2 bytes | offset_row | The records location on this page          |
+--------------------------------------------------------------------------+
...
Рейтинг: 0 / 0
при добавлении поля в таблицу размер базы не увеличился!
    #32673194
Иван FXS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Victosha--------------------
15
умно было бы выровнять хотябы до ближайшего кратного int
если не так, то лишние байты соберутся в конце страницы, а работа с базой РЕЗКО замедлится
+1
=16
Супер! Спасибо!!
Но дальше ... интересные вещи продолжаются.
Я решил, что могу в тот же размер впихнуть еще 6 + 8 =14 Booleans (+8 - это 16-й байт, котрый сейчас "пропадает") ... и в самом деле, таблица приняла их не пикнув!
Когда я добавил 15-й Boolean - база подросла на ... 60Кб, но после сжатия - ВЕРНУЛАСЬ В ПРЕЖНИЙ размер!
И так - продолжалось при добавлении Booleans с 15-го по 30-й (т.е - пока ПОЛНОЕ число полей в таблице не стало - 32) ...
А вот когда я добавил 31-й Boolean (число полей в таблице стало - 33) - база выросла до 28 557 312 байт, то есть - добавился "скачком" 1 байт на запись ...
Забавно ...
...
Рейтинг: 0 / 0
при добавлении поля в таблицу размер базы не увеличился!
    #32673215
Иван FXS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Add: похоже, будто тот "описатель записи", в котором "на халяву" размещаются Booleans, имеет размер не 1 байт, а 32 бита (4 байта) ...
...
Рейтинг: 0 / 0
при добавлении поля в таблицу размер базы не увеличился!
    #32673253
Фотография маяк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...если вы сумели диагностировать ослабление крепления картера рулевого управления - значит, вы здорово разбираетесь в таких мудрёных вещах!
...
Рейтинг: 0 / 0
при добавлении поля в таблицу размер базы не увеличился!
    #32673275
Фотография Shuhard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Иван , а производственная необходимость состоит в экономии дискового пространства или в поиске способа компактного хранения данных ?
...
Рейтинг: 0 / 0
при добавлении поля в таблицу размер базы не увеличился!
    #32673351
Alexey Sh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Во многих знаниях многия печали, и умножающий премудрость умножает скорбь (с) Экклезиаст
...
Рейтинг: 0 / 0
при добавлении поля в таблицу размер базы не увеличился!
    #32673374
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Наверно, я невнимательно читал этот топик, поэтому заранее прошу прощения. Но мне кажется, что размер файла mdb увеличивается скачками по сколько-то байтов. Каждый скачок добавляет место для следующего роста количества информации, пока не понадобится следующий скачок. Если при добавлении поля увеличение файла не произошло - это значит, что предыдущего скачка хватило.
...
Рейтинг: 0 / 0
при добавлении поля в таблицу размер базы не увеличился!
    #32673434
скачек
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Владимир Саныч... размер файла mdb увеличивается скачками по сколько-то байтов. Каждый скачок добавляет место для следующего роста количества информации, пока не понадобится следующий скачок. Если при добавлении поля увеличение файла не произошло - это значит, что предыдущего скачка хватило.
97 - 2048
> 97 - 4096
размер страницы
...
Рейтинг: 0 / 0
при добавлении поля в таблицу размер базы не увеличился!
    #32673438
Иван FXS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShuhardИван , а производственная необходимость состоит в экономии дискового пространства или в поиске способа компактного хранения данных ?
- производственная необходимость, говорите? ... А я думал, - экономия ресурсов, - это как бы такой безусловный рефлекс должен быть ... у программистов ... ;-)
...
Рейтинг: 0 / 0
при добавлении поля в таблицу размер базы не увеличился!
    #32673448
Фотография Daf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А тогда почему бы тебе еще и TMP файлы на диске не чистить паралельно. Тоже экономия ресурсов ...
...
Рейтинг: 0 / 0
при добавлении поля в таблицу размер базы не увеличился!
    #32673472
Иван FXS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Эт, Вы считаете, конструктивный разговор? ;-)
...
Рейтинг: 0 / 0
при добавлении поля в таблицу размер базы не увеличился!
    #32673474
Alexey Sh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Иван FXS :

Решая задачу оптимизации, неплохо бы определиться с целевой функцией

Мы Вас обслужим быстро, качественно , недорого. Просьба выбрать два пункта
...
Рейтинг: 0 / 0
при добавлении поля в таблицу размер базы не увеличился!
    #32673939
Фотография Shuhard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Иван FXS ShuhardИван , а производственная необходимость состоит в экономии дискового пространства или в поиске способа компактного хранения данных ?
- производственная необходимость, говорите? ... А я думал, - экономия ресурсов, - это как бы такой безусловный рефлекс должен быть ... у программистов ... ;-)

тогда mdb не оптимален - легко заметить по коэффициенту сжатия любым архиватором.
...
Рейтинг: 0 / 0
при добавлении поля в таблицу размер базы не увеличился!
    #32674017
Фотография Pavel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shuhardтогда mdb не оптимален - легко заметить по коэффициенту сжатия любым архиватором.
Не путай оптимальность с нормализацией. Хранилище OLAP в формате mdb ой как жмется, но это совсем не значит что оно не оптимально.
...
Рейтинг: 0 / 0
при добавлении поля в таблицу размер базы не увеличился!
    #32674023
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хранилище OLAP в формате mdb
Ахтунг!
Я уже боюсь
Такое бывает?
...
Рейтинг: 0 / 0
при добавлении поля в таблицу размер базы не увеличился!
    #32674080
Фотография Shuhard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лох Позорный Хранилище OLAP в формате mdb
Ахтунг!
Я уже боюсь
Такое бывает?
к Crystal Reports что-то похожее идёт
Pavel - про "рыхлость" куба понимаю ,хочу добиться от Ивана ответа о цели оптимизации,выяснили про устройство mdb каков дальнейший шаг - тестирование всех ISAM форматов ?
...
Рейтинг: 0 / 0
при добавлении поля в таблицу размер базы не увеличился!
    #32674117
Alexey Sh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не пугайте меня, к кристалу 9 прикладывалась базейка xtrem.mdb и некие Holos Data control File и Holos Data Dimension File, а кубик похоже кристалом из этого добра на лету строится
...
Рейтинг: 0 / 0
при добавлении поля в таблицу размер базы не увеличился!
    #32674133
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лох Позорный Хранилище OLAP в формате mdb
Ахтунг!
Я уже боюсь
Такое бывает?

Не только бывает а ЕСТЬ ПО УМОЛЧАНИЮ, если иначе не приказать.
Можно сказать - стандарт, а вовсе не АХТУНГ.

ЗЫ

не пужайся сильно. там главным образом описания живут...
...
Рейтинг: 0 / 0
25 сообщений из 88, страница 2 из 4
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / при добавлении поля в таблицу размер базы не увеличился!
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]