Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Сравнение СУБД Новый топик    Ответить
 Как физически размещаются данные при добавлении колонки?  [new]
при добавлении колонки
Guest
Как физически размещают данные различные СУБД при добавлении колонки к существующей таблице (через ALTER TABLE)?
Они перестраивают целиком таблицу с данными?
26 авг 11, 16:09    [11186436]     Ответить | Цитировать Сообщить модератору
 Re: Как физически размещаются данные при добавлении колонки?  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54761

при добавлении колонки
Они перестраивают целиком таблицу с данными?

Наследники IB ничего не делают с существующими данными.

Posted via ActualForum NNTP Server 1.4

26 авг 11, 16:25    [11186667]     Ответить | Цитировать Сообщить модератору
 Re: Как физически размещаются данные при добавлении колонки?  [new]
SergSuper
Member

Откуда: SPb
Сообщений: 5488
заголовок меняется, а данные нет
26 авг 11, 18:09    [11187602]     Ответить | Цитировать Сообщить модератору
 Re: Как физически размещаются данные при добавлении колонки?  [new]
miksoft
Member

Откуда:
Сообщений: 38918
Dimitry Sibiryakov
при добавлении колонки
Они перестраивают целиком таблицу с данными?
Наследники IB ничего не делают с существующими данными.
Даже если новая колонка имеет дефолтовое значение, отличное от NULL?
26 авг 11, 18:15    [11187625]     Ответить | Цитировать Сообщить модератору
 Re: Как физически размещаются данные при добавлении колонки?  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54761

miksoft
Даже если новая колонка имеет дефолтовое значение, отличное от NULL?

Особенно - в этом случае.

Posted via ActualForum NNTP Server 1.4

26 авг 11, 18:27    [11187687]     Ответить | Цитировать Сообщить модератору
 Re: Как физически размещаются данные при добавлении колонки?  [new]
miksoft
Member

Откуда:
Сообщений: 38918
Dimitry Sibiryakov
miksoft
Даже если новая колонка имеет дефолтовое значение, отличное от NULL?

Особенно - в этом случае.
Это как? Разве там используется колоночное хранение данных?
26 авг 11, 18:28    [11187700]     Ответить | Цитировать Сообщить модератору
 Re: Как физически размещаются данные при добавлении колонки?  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54761

miksoft
Это как? Разве там используется колоночное хранение данных?

Нет, там ограниченная версионность метаданных. У данных в каждой таблице может быть до 253
форматов. Каждая версия каждой записи хранит ссылку на свой формат. При выборке данные
автоматически приводятся к текущему формату. "Недостающие" поля заполняются дефолтом.
Сохранение, естественно, происходит только в текущем формате.

Posted via ActualForum NNTP Server 1.4

26 авг 11, 20:06    [11187829]     Ответить | Цитировать Сообщить модератору
 Re: Как физически размещаются данные при добавлении колонки?  [new]
при добавлении колонки
Guest
Чет не совсем понял как физически это происходит. Т.е. в момент после добавления колонки её дефолтные значения записываются на другие страницы чем остальные колонки?
26 авг 11, 20:30    [11187891]     Ответить | Цитировать Сообщить модератору
 Re: Как физически размещаются данные при добавлении колонки?  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54761

при добавлении колонки
в момент после добавления колонки её дефолтные значения записываются на другие страницы
чем остальные колонки?

Повторяю ещё раз, медленно: в IB и наследниках при добавлении колонки существующие в базе
данные не трогаются. Совсем.

Именно поэтому там добавление колонки - быстрая операция. Покамест.

Posted via ActualForum NNTP Server 1.4

26 авг 11, 20:46    [11187939]     Ответить | Цитировать Сообщить модератору
 Re: Как физически размещаются данные при добавлении колонки?  [new]
при добавлении колонки
Guest
Ок. Т.е. происходит так как я и написал.
А кто знает как в других СУБД дела с этим обстоят?
26 авг 11, 20:58    [11187978]     Ответить | Цитировать Сообщить модератору
 Re: Как физически размещаются данные при добавлении колонки?  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54761

при добавлении колонки
Т.е. происходит так как я и написал.

То, что ты написал - несвязный бред. Так не происходит. Дефолтное значение никуда не
записывается (кроме системных таблиц).

Posted via ActualForum NNTP Server 1.4

26 авг 11, 21:12    [11188018]     Ответить | Цитировать Сообщить модератору
 Re: Как физически размещаются данные при добавлении колонки?  [new]
при добавлении колонки
Guest
Все понял :) Дефолтное берется из системных таблиц, а при UPDATE этого значения появляется новая версия записи с уже всеми колонками.
26 авг 11, 22:00    [11188141]     Ответить | Цитировать Сообщить модератору
 Re: Как физически размещаются данные при добавлении колонки?  [new]
:)++
Guest
Dimitry Sibiryakov
Дефолтное значение никуда не записывается (кроме системных таблиц).

Похоже, что рация на бронетранспортере.
10 сен 11, 21:10    [11259106]     Ответить | Цитировать Сообщить модератору
 Re: Как физически размещаются данные при добавлении колонки?  [new]
kdv
Member

Откуда: iBase.ru
Сообщений: 30237
на всякий случай, вдогонку, про версионность метаданных таблиц в IB/FB:
http://www.ibase.ru/devinfo/metaver.htm
11 сен 11, 00:45    [11259719]     Ответить | Цитировать Сообщить модератору
 Re: Как физически размещаются данные при добавлении колонки?  [new]
Журавлев Денис
Member

Откуда: St.John,NB,CA
Сообщений: 5539
В информиксе будет in-place alter, изменятся метаданные, данные не изменятся, все произойдет моментально. При изменениях часть страниц будет в одной версии, часть в другой.

В оракле null-ы не хранятся в таблице, поэтому при default=null все произойдет моментально, при default<>null вся таблица проапдейтится update t set f=default
12 сен 11, 09:04    [11262057]     Ответить | Цитировать Сообщить модератору
 Re: Как физически размещаются данные при добавлении колонки?  [new]
Ёш
Member

Откуда:
Сообщений: 2892
Журавлев Денис
В оракле null-ы не хранятся в таблице, поэтому при default=null все произойдет моментально, при default<>null вся таблица проапдейтится update t set f=default
В postgres так же.
12 сен 11, 14:46    [11264216]     Ответить | Цитировать Сообщить модератору
 Re: Как физически размещаются данные при добавлении колонки?  [new]
ораклоид-пожарник
Guest
Журавлев Денис
В оракле null-ы не хранятся в таблице
жжешь!
12 сен 11, 15:57    [11264753]     Ответить | Цитировать Сообщить модератору
 Re: Как физически размещаются данные при добавлении колонки?  [new]
Журавлев Денис
Member

Откуда: St.John,NB,CA
Сообщений: 5539
ораклоид-пожарник
Журавлев Денис
В оракле null-ы не хранятся в таблице
жжешь!

ну хорошо я ленивый, будем точнее: To conserve space, a null in a column only stores the column length (zero). Oracle does not store data for the null column. Also, for trailing null columns, Oracle does not even store the column length.
12 сен 11, 17:59    [11265687]     Ответить | Цитировать Сообщить модератору
 Re: Как физически размещаются данные при добавлении колонки?  [new]
ораклоид-работяга
Guest
Журавлев Денис
В оракле null-ы не хранятся в таблице, поэтому при default=null все произойдет моментально

Журавлев Денис
ну хорошо я ленивый, будем точнее

Да, слишком ленивый. Подсказка: IOT
13 сен 11, 18:19    [11271515]     Ответить | Цитировать Сообщить модератору
Все форумы / Сравнение СУБД Ответить