"Kovalenko Dmitry" ...



Я правильно понял, что есть две стратегии выделения места (под данные одной 
записи?) на data-страницах

2. если данные не могут поместиться, то выделяются "orphan" data-страницы + 1 
блок, который размещается по правилу #1.


Еще вопрос. Вторая стратегия отчасти обусловлена тем, чтобы на "зарегистрированных" data-страницах (на PP) не появлялись "недоделанные" блоки данных, которые могут начать парить моск при "сканировании" записей?

   Я эту терминологию не понимаю.

   "Большие" записи (р-р которых больше р-ра страницы) размещают свой хвост
на отдельных выделенных страницах данных (DP), а начало записи помещается как
обычная запись на нормальную DP. Выделенные под хвост DP не учитываются на PP
т.к. их всё равно не возможно адресовать, не трогая начало записи.

   Т.е. если запись имеет размер N*P + M, где P - page size, то её хвост будет 
размещён
на N выделенных страницах и начало, размером M, будет помещено на общую DP.

под "сканированием", я понимаю какой нибуть последовательный обход записей 
таблицы.

---
И еще, я правильно понял, что на DP регистрируется последовательный номер 
родительской PP?

   Нет. На DP записывается её собственный логический (последовательный) номер
(см. Ods::data_page::dpg_sequence). Он используется, например, для валидации.
Ну и для разборов полётов тоже, есс-но.

--
Хосун Влад

Ответить