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

Откуда: Пенза
Сообщений: 120
Кто-нибудь знает, есть ли какой-либо негативный эффект от enable row movement?
24 июл 06, 09:23    [2915993]     Ответить | Цитировать Сообщить модератору
 Re: row movement  [new]
N_Vorontsov
Member

Откуда: Рыбинск, Яр.обл.
Сообщений: 32
Ну сменится у тебя rowid у записи, если она перелетит в другую partition для partitioning table - это тебя сильно пугает??? %-)
24 июл 06, 09:30    [2916018]     Ответить | Цитировать Сообщить модератору
 Re: row movement  [new]
Владимор Конев
Member

Откуда:
Сообщений: 3451
kraynopp
Кто-нибудь знает, есть ли какой-либо негативный эффект от enable row movement?
Ты бы лучше про обратное спросил - каков негативный эффект от "невключения" этой опции ;)
24 июл 06, 09:40    [2916076]     Ответить | Цитировать Сообщить модератору
 Re: row movement  [new]
Вячеслав Любомудров
Member

Откуда: Владивосток
Сообщений: 18484
Еще парочка негативных эффектов:
При переброске из COMPRESS секции в несжатую занимаемое строкой место увеличивается

row movement disable может являться дополнительным сторожем логической целостности/аудита (чтоб например, какой-нибудь ушлый сотрудник не поправил задним числом документ другой датой) -- все подобные нарушения будут сразу выявляться
24 июл 06, 09:50    [2916120]     Ответить | Цитировать Сообщить модератору
 Re: row movement  [new]
kraynopp
Member

Откуда: Пенза
Сообщений: 120
Владимор Конев
Ты бы лучше про обратное спросил - каков негативный эффект от "невключения" этой опции ;)
Так ведь она выключена по-умолчанию :(
Вячеслав Любомудров
row movement disable может являться дополнительным сторожем логической целостности/аудита (чтоб например, какой-нибудь ушлый сотрудник не поправил задним числом документ другой датой) -- все подобные нарушения будут сразу выявляться
Это как?
24 июл 06, 11:08    [2916511]     Ответить | Цитировать Сообщить модератору
 Re: row movement  [new]
Владимор Конев
Member

Откуда:
Сообщений: 3451
kraynopp
Вячеслав Любомудров
row movement disable может являться дополнительным сторожем логической целостности/аудита (чтоб например, какой-нибудь ушлый сотрудник не поправил задним числом документ другой датой) -- все подобные нарушения будут сразу выявляться
Это как?

А вот так:
Если таблица секционирована по полю DATE по диапазону, и заполняется данными, то строки лягут в те её секции, которые соответствуют дате документа. Если дату изначально забили одну, а потом хотят исправить на другую (типа провести документ "задним числом"), да так, что строка переходить из одной партиции в другую, то при разрешенном переносе строк всё успешно пройдет и такое наглое махинирование документами никто не заметит, а при запрещенном же - вывалится сообщение об ошибке. И тогда можно будет поразбираться кому и зачем понядоюилось делать что-то "задним" числом
24 июл 06, 11:20    [2916599]     Ответить | Цитировать Сообщить модератору
 Re: row movement  [new]
contr
Member

Откуда:
Сообщений: 1909
Владимор Конев
А вот так:

1) И что же помешает вставлять документ "задним" числом сразу?
2) Совершенно необязательно такой update приведет к rowmovement - все зависит от нарезки секций.
Таким образом, строить "защиту" на подобных побочных эффектах - занятие неблагодарное и даже вредное.

2 автор: rowmovement может привести к проблемам, если приложение, к примеру, кэширует rowid записи для последующего обновления. Запись может быть не только перемещена параллельным процессом, но и в данную позицию может быть вставлена новая. Хвостов потом не сыщещь :)
Причем если приложение не рассчитано на rowmovement, то такой эффект может создать сама себе даже одна сессия.
Потому и запрещено по умолчанию.
24 июл 06, 14:42    [2918077]     Ответить | Цитировать Сообщить модератору
 Re: row movement  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 63986
Блог
contr
Таким образом, строить "защиту" на подобных побочных эффектах - занятие неблагодарное

Согласен, за исключением разве что одного случая: если логика партиционирования совпадает с логикой учетных периодов. Разумеется, это не должно быть "основной защитой", скорее особенность, которая может обеспечить дополнительную степень надежности от "орангутанга с паролем".
24 июл 06, 14:57    [2918161]     Ответить | Цитировать Сообщить модератору
 Re: row movement  [new]
Dimka08
Member

Откуда:
Сообщений: 319
softwarer
contr
Таким образом, строить "защиту" на подобных побочных эффектах - занятие неблагодарное

Согласен, за исключением разве что одного случая: если логика партиционирования совпадает с логикой учетных периодов. Разумеется, это не должно быть "основной защитой", скорее особенность, которая может обеспечить дополнительную степень надежности от "орангутанга с паролем".

вот только скорей всего если будет принято решение о смене даты
то скорей всего догадаются удалить и вставить новую запись
24 июл 06, 16:58    [2919015]     Ответить | Цитировать Сообщить модератору
 Re: row movement  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 63986
Блог
Dimka08
вот только скорей всего если будет принято решение о смене даты
то скорей всего догадаются удалить и вставить новую запись

Догадаться-то догадаются, вот только это существенно сложнее. На такую запись как правило уже висит куча дочерних, а значит нужно иметь права на ddl, а не просто на update.
24 июл 06, 17:07    [2919081]     Ответить | Цитировать Сообщить модератору
 Re: row movement  [new]
contr
Member

Откуда:
Сообщений: 1909
softwarer
Dimka08
вот только скорей всего если будет принято решение о смене даты
то скорей всего догадаются удалить и вставить новую запись

Догадаться-то догадаются, вот только это существенно сложнее. На такую запись как правило уже висит куча дочерних, а значит нужно иметь права на ddl, а не просто на update.

Не стоит тратить силы на защиту заведомо ущербной концепции.
Все одно для "защиты" (if any) придется сделать какие-то механизмы помимо секций. Тогда "секционная" защита уже будет не нужна и можно будет вернуться к оригинальной теме - обсуждению потенциальных "подводных камней" rowmovement.
24 июл 06, 17:11    [2919115]     Ответить | Цитировать Сообщить модератору
 Re: row movement  [new]
Вячеслав Любомудров
Member

Откуда: Владивосток
Сообщений: 18484
Вообще-то речь шла про возможный дополнительный звоночек, не более. Во многих (если не в большинстве) случаех перенос строки нежелателен как с точки зрения производительности (фактически, это удаление и вставка строки), так и с точки зрения логики. В таких случаях запрещение переноса строк позволяет выявить логические ошибки и/или кривые данные. А если учесть, что это абсолютно бесплатно, не вижу причин отказываться от дополнительного контроля

PS. Речь, естественно, идет про RANGE / LIST partition
25 июл 06, 02:52    [2920369]     Ответить | Цитировать Сообщить модератору
 Re: row movement  [new]
ефрейтор Пупкин
Guest
kraynopp
Кто-нибудь знает, есть ли какой-либо негативный эффект от enable row movement?


В индексах хранятся rowid записей и соответственно
индексное дерево должно быть подвержено изменению.
Индексы могут стать невалидными,
если нарветесь на какой либо баг или фичу.

Вероятнее всего и статистика съедет с катушек,
если перемещать массово.

зы Я бы этого не делал.
25 июл 06, 12:53    [2922074]     Ответить | Цитировать Сообщить модератору
 Re: row movement  [new]
contr
Member

Откуда:
Сообщений: 1909
ефрейтор Пупкин
В индексах хранятся rowid записей и соответственно
индексное дерево должно быть подвержено изменению.
Индексы могут стать невалидными,
если нарветесь на какой либо баг или фичу.

Ну тогда вообще надо отказываться от DML по индексированным таблицам ;)
На практике у индексов на таблицах с rowmovement полет нормальный.
Но сама опция разрешается только там, где реально необходима. Для всех остальных таблиц - запрещена.
25 июл 06, 13:38    [2922430]     Ответить | Цитировать Сообщить модератору
 Re: row movement  [new]
Ааз
Member

Откуда: Москва/Протвино
Сообщений: 4274
Мои два копейка:

Какую DML'ину затрагивает row movement? Правильно, UPDATE. Сравним перформанс UPDATE с/без row movement. Главная засада (aka разница) в случае, если строка меняет секцию, но при этом UPDATE не затрагивал проиндексированные столбцы. Ибо в случае row movement придется обновить (DELETE/INSERT, как обычно) все индексы => +redo +CBC latch + buffer busy => тормоза.

Фактически, default позволяет вам еще раз подумать над схемой секционирования.

Всего
25 июл 06, 14:43    [2922898]     Ответить | Цитировать Сообщить модератору
 Re: row movement  [new]
kraynopp
Member

Откуда: Пенза
Сообщений: 120
P.S.: Спасибо всем ответившим :)
contr
Но сама опция разрешается только там, где реально необходима. Для всех остальных таблиц - запрещена.
Дело в том, что без row movement не работает flashback table. Так что я собираюсь включать эту опцию на все таблицы за исключением словаря данных...
26 июл 06, 08:00    [2925522]     Ответить | Цитировать Сообщить модератору
 Re: row movement  [new]
Ааз
Member

Откуда: Москва/Протвино
Сообщений: 4274
kraynopp
Так что я собираюсь включать эту опцию на все таблицы за исключением словаря данных...
Oracle в помощь, о цене вас предупредили. И что, часто приходится отдельные таблицы на промышленной БД восстанавливать?

Всего
26 июл 06, 11:08    [2926252]     Ответить | Цитировать Сообщить модератору
 Re: row movement  [new]
kraynopp
Member

Откуда: Пенза
Сообщений: 120
Ааз
И что, часто приходится отдельные таблицы на промышленной БД восстанавливать?
К сожалению, чаще, чем хотелось бы... :(
27 июл 06, 08:55    [2931136]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить