Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Битмап индекс  [new]
Swv
Member

Откуда:
Сообщений: 117
Здравствуйте.

Решил тут поизучать данный вопрос. Почитал про oracle , как там все устроено.

Смутил такой момент. Как я понял части индекса хранятся блоками. И в загловке блока есть два поля rowid. Start и end соответственно. Что в принипе тоже логично. Хотя еще осталось понять зачем концептуально бить на блоки.

Но вопрос не в этом. На всех найденных картинках, относящихся к этим индексам, start и end изображаются как то так. 123:4 126:6 . Первая цифра (если упрощенно) это номер страницы. Вторая— номер записи на странице. Только единственное не пойму— почему начальный номер страницы и конечный отличаются. Как сервер поймет сколько записей лежит на 123 странице и сколько на 125. Ну если только вычитает эти страницы. Что не есть гуд
14 мар 19, 22:21    [21833084]     Ответить | Цитировать Сообщить модератору
 Re: Битмап индекс  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 18833
Swv
зачем концептуально бить на блоки.
Так уж исторически сложилось, что и чтение, и запись выполняются блоками. На уровне HDD - минимальный квант операции = сектор, на уровне файловой системы = кластер (кратен сектору), на уровне операционной системы = буфер (кратен кластеру)... СУБД не исключение - работа с целыми квантами снижает накладные расходы.

Swv
Как сервер поймет сколько записей лежит на 123 странице и сколько на 125

У блока есть заголовок. Внутренне блок есть мини-файловая система.

Swv
Что не есть гуд
С чего бы? накладные расходы на такие вычисления - ничтожны.

Модератор: Тема перенесена из форума "Программирование".
15 мар 19, 08:02    [21833238]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить