|
|
|
Paradox Format - фиксирована ли длина записи?
|
|||
|---|---|---|---|
|
#18+
Навеяно дискуссией про формат Paradox вот в этой теме . В Описание формата файлов PARADOX v3.*, v4.* сказано следующее: Файл данных Paradox (*.db) состоит из заголовка и набора страниц. Страницы связаны в двусвязный список в соответствии с основным индек- сом. Каждая страница хранит переменное число записей фиксированной длины. Но ни в PARADOX 4.x FILE FORMATS , ни в PARADOX SPECIFICATIONS ничего толком не сказано действительно ли длина записи фиксированная... Небольшой тест в Database Desktop: Создается таблица в формате Paradox 7 при BLOCK SIZE = 16Kb с полями col1 - string(5) - key field col2 - integer col3 - string(250) col4 - string(250) col5 = string(250) Размер файла при пустой таблице - 2Kb. Начинаем заполнять key field значениями от 1-10, выделяется блок и размер таблицы выростает до 18Kb. Заполняем дальше от 10 до 29, снова выделяется блок и размер файла выростает до 34Kb. Дальше от 30 до 40, снова выделяется блок и размер файла выростает до 50Kb. Пакуем таблицу - размер файла падает до 34Kb - значит остается 2 блока. Интересно, связано ли это как-то с размером записей?... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2009, 09:14 |
|
||
|
Paradox Format - фиксирована ли длина записи?
|
|||
|---|---|---|---|
|
#18+
Gluk (Kazan)ChysGluk (Kazan)Paradox хранит данные в B-деревьях, а не записях фиксированной длиныА не индексы, случайно? ссылкаФайл DB имеет страничную организацию - записи распределены по страницам (блокам) фиксированного размера. Индекс имеет структуру B-дерева Это страницы B-дерева, чудак :) Не веришь мне, распотроши db-файл да посмотри А как распотрошить db-файл? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2009, 09:22 |
|
||
|
Paradox Format - фиксирована ли длина записи?
|
|||
|---|---|---|---|
|
#18+
ChysGluk (Kazan)ChysGluk (Kazan)Paradox хранит данные в B-деревьях, а не записях фиксированной длиныА не индексы, случайно? ссылкаФайл DB имеет страничную организацию - записи распределены по страницам (блокам) фиксированного размера. Индекс имеет структуру B-дерева Это страницы B-дерева, чудак :) Не веришь мне, распотроши db-файл да посмотри А как распотрошить db-файл? Много вариантов :) 1. Пошукать доки 2. Открыть для себя HexView 3. Посмотреть OpenSource 4. Подумать много ли известных структур позволяют хранить данные в дисковой памяти отсортированными по первичному ключу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2009, 09:36 |
|
||
|
Paradox Format - фиксирована ли длина записи?
|
|||
|---|---|---|---|
|
#18+
Chys Интересно, связано ли это как-то с размером записей?... Нет, это связано со страничной организацией файла. Записи то фиксированной длинны, но страницы не обязательно заполнены полностью. Если страница пуста, она не удаляется из файла, а попадает в список свободных блоков. В общем, с DBF это имеет мало сходства ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2009, 09:40 |
|
||
|
Paradox Format - фиксирована ли длина записи?
|
|||
|---|---|---|---|
|
#18+
Gluk (Kazan)Записи то фиксированной длинны, но страницы не обязательно заполнены полностью.То есть записи все таки в Paradox фиксированной длины? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2009, 09:55 |
|
||
|
Paradox Format - фиксирована ли длина записи?
|
|||
|---|---|---|---|
|
#18+
Gluk (Kazan)Нет, это связано со страничной организацией файла. Записи то фиксированной длинны, но страницы не обязательно заполнены полностью. Если страница пуста, она не удаляется из файла, а попадает в список свободных блоков. Если страницы не заполнены послностью, на кой выделять новую? у меня так вышло, что при заполнении key field данными было добавлено 3 блока, а потом при упаковке один блок куда-то делся. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2009, 10:10 |
|
||
|
Paradox Format - фиксирована ли длина записи?
|
|||
|---|---|---|---|
|
#18+
Chys Если страницы не заполнены послностью, на кой выделять новую? у меня так вышло, что при заполнении key field данными было добавлено 3 блока, а потом при упаковке один блок куда-то делся. А с чего ты взял что так происходит ? Просто вставка в B-дерева записей в произвольном порядке приводит к тому, что страницы не наполнены полностью. Сжатием ты переливаешь записи уже в отсортированном порядке, что позволяет расположить их более плотно. Ты знаком с B-деревьями ? У меня складывается впечатление, что ты исходишь из неверных предпосылок ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2009, 10:28 |
|
||
|
Paradox Format - фиксирована ли длина записи?
|
|||
|---|---|---|---|
|
#18+
Gluk (Kazan)А с чего ты взял что так происходит ? Просто вставка в B-дерева записей в произвольном порядке приводит к тому, что страницы не наполнены полностью. Сжатием ты переливаешь записи уже в отсортированном порядке, что позволяет расположить их более плотно. Я сужу по вот этому документу - PARADOX 4.x FILE FORMATS . Согластно ему записи вставляются уже в отсортированном порядке и поэтому, по сути, не должно быть никакого свободного места: Records are stored contiguously. There are no gaps between records. Records contain no slack bytes between fields. ... Records are stored in key sequence. If a record is inserted in the block, then records with higher keys "move down" to make room for the new record. Record length is added to the last record offset in the block header. Gluk (Kazan)Ты знаком с B-деревьями ? У меня складывается впечатление, что ты исходишь из неверных предпосылок Очень, очень поверхностно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2009, 10:54 |
|
||
|
Paradox Format - фиксирована ли длина записи?
|
|||
|---|---|---|---|
|
#18+
Chys Я сужу по вот этому документу - PARADOX 4.x FILE FORMATS . Согластно ему записи вставляются уже в отсортированном порядке и поэтому, по сути, не должно быть никакого свободного места: Термины термины ... записи могут отсортироваться при вставке, но вставлять их в отсортированном порядке можешь только ты сам (или упаковщик). Чудес то не бывает В общем то насколько разбухнет B-дерево зависит от того в каком порядке кормить ему записи ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2009, 11:06 |
|
||
|
Paradox Format - фиксирована ли длина записи?
|
|||
|---|---|---|---|
|
#18+
Я продублирую свой пост из изначальной ветки: Chys пишет: > Я это... Могу, конечно, ошибаться... Но может не B-tree, а binary tree? Это почти одно и то же. По-хорошему это надо называть B+-tree. B+-tree -- это то же самое, что бинарное дерево поиска, только, в отличие от бинарного дерева, каждый узел в B+-tree обычно может содержат от двух до сколько влезет дочерних подузлов (ссылок на них), в то время как классическое бинарное дерево имеет только два подузла: левый и правый. Поэтому и термин - B+-tree, подузлов от двух и больше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2009, 11:22 |
|
||
|
Paradox Format - фиксирована ли длина записи?
|
|||
|---|---|---|---|
|
#18+
MasterZiv Это почти одно и то же. По-хорошему это надо называть B+-tree. Ээээ я не стал бы так с плеча :) B-дерево может быть представлено двоичным деревом (например красно-черное дерево ни что иное как 2-3-4 дерево). Что касается B+ там важный нюанс, что все листовые блоки связаны в двунаправленный список и все элементы лежат исключительно в листовых блоках, что позволяет сканировать диапазоны, не прыгая с уровня на уровень. B-дерево относится к сильно ветвящимся деревьям, никак не к бинарным (не смотря на то что использует бинарный поиск) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2009, 11:31 |
|
||
|
|

start [/forum/topic.php?fid=56&fpage=18&tid=2015707]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
38ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
2ms |
| others: | 11ms |
| total: | 132ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...