powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Блоки
25 сообщений из 28, страница 1 из 2
Блоки
    #40049230
SenjorPomidor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!
Есть только что созданная пустая таблица test с одним числовым полем.
Первый сеанс делает вставку без commit
insert into test values(1);
Второй сеанс делает вставку без commit
insert into test values(2);
Затем делается commit в обоих сеансах.
В результате видим, что строки находятся в разных блоках.
Почему? Зачем второй блок использовать, когда первый почти пустой?
...
Рейтинг: 0 / 0
Блоки
    #40049233
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На случай если одна из транзакций закончится rollback.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Блоки
    #40049236
SenjorPomidor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov

На случай если одна из транзакций закончится rollback.

Не очень понял ответ. Если одна из транзакций делает rollback просто удалится ее строка из блока. Как это может повлиять на другую строку (второго сеанса), если она в том же блоке будет...
...
Рейтинг: 0 / 0
Блоки
    #40049237
Фотография SeaGate
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Блоки
    #40049238
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SenjorPomidorЕсли одна из транзакций делает rollback просто удалится ее строка из блока.

По умолчанию Оракул откатывает блок целиком.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Блоки
    #40049242
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Dimitry Sibiryakov

SenjorPomidorЕсли одна из транзакций делает rollback просто удалится ее строка из блока.

По умолчанию Оракул откатывает блок целиком.
что за бред....
...
Рейтинг: 0 / 0
Блоки
    #40049243
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sayan Malakshinovчто за бред....

Если в умолчательном режиме NOROWDEPENDENCIES найдёшь у записи информацию какой транзакции
она принадлежит - сообщи.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Блоки
    #40049244
SenjorPomidor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov

SenjorPomidorЕсли одна из транзакций делает rollback просто удалится ее строка из блока.

По умолчанию Оракул откатывает блок целиком.

То есть, если, к примеру, различные сеансы производят update строк (каждый сеанс - свою строку), находящихся в одном блоке, то rollback в одном из сеансов откатит все апдейты ДРУГИХ сеансов? ))
...
Рейтинг: 0 / 0
Блоки
    #40049246
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SenjorPomidorТо есть, если, к примеру, различные сеансы производят update строк (каждый сеанс - свою
строку), находящихся в одном блоке, то rollback в одном из сеансов откатит все апдейты
ДРУГИХ сеансов? ))

Нет, они встанут на ожидание блокировки этого блока ещё до того как смогут изменить
строку. И да, у них случится штука, называемая "мини-откат".

https://docs.oracle.com/cd/B19306_01/server.102/b14220/consist.htm
...
Рейтинг: 0 / 0
Блоки
    #40049248
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Dimitry Sibiryakov
Sayan Malakshinovчто за бред....

Если в умолчательном режиме NOROWDEPENDENCIES найдёшь у записи информацию какой транзакции
она принадлежит - сообщи.что ты за околесицу ты несешь... почитай про строение блока и undo...
Dimitry Sibiryakov
они встанут на ожидание блокировки этого блока
ужас....
...
Рейтинг: 0 / 0
Блоки
    #40049249
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Dimitry Sibiryakov
NOROWDEPENDENCIES
ROWDEPENDENCIES всего лишь добавляет скрытый столбец DSCN
...
Рейтинг: 0 / 0
Блоки
    #40049253
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sayan Malakshinov
что ты за околесицу ты несешь...
Этот закостенелый си-шник знает Oracle в основном на уровне OCI.
И нести бред - это его нередкое состояние:
22284504
22073887
22014493
...
Рейтинг: 0 / 0
Блоки
    #40049355
flexgen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov

SenjorPomidorЕсли одна из транзакций делает rollback просто удалится ее строка из блока.

По умолчанию Оракул откатывает блок целиком.


Я не понял, это как так? Если две записи были записаны в блок двумя разными транзакциями, первая была завершена (commit) а вторая отменена (rollback), то, следуя твоему утверждению, обе записи будут удалены? Это что-то новое для меня.
...
Рейтинг: 0 / 0
Блоки
    #40049359
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
flexgenЕсли две записи были записаны в блок двумя разными транзакциями

А теперь перечитываем первый пост: разные транзакции не пишут записи в один блок.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Блоки
    #40049367
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

Прекрати нести феерический бред.
...
Рейтинг: 0 / 0
Блоки
    #40049376
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я-то могу и прекратить, но что, никто не собирается ответить на вопрос топикстартера от
слова "совсем"?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Блоки
    #40049382
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Dimitry Sibiryakov,

Ответ уже давно дали: 22287350
...
Рейтинг: 0 / 0
Блоки
    #40049552
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov

разные транзакции не пишут записи в один блок.


1) добавте две строки в один блок
2) коммит
3) поменяйте первую строку в одной сессии, вторую в другой
4) в первой коммит
5) второй роллбек

разные транзакции записали в один блок

.....
stax
...
Рейтинг: 0 / 0
Блоки
    #40050853
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SenjorPomidor
Зачем второй блок использовать, когда первый почти пустой?

Лучше задать другой вопрос - зачем всем ломиться в первый блок, рискуя конкуренцией? Oracle старается разбросать нагрузку, чтобы не возникало узких мест. В прошлом ответом на Ваш вопрос было бы ключевое слово FREELISTS. В эпоху ASM это уже не особо актуально, но принцип остался тем же самым, так что прочитайте про freelists, если хотите понять ситуацию без погружения в дебри.
...
Рейтинг: 0 / 0
Блоки
    #40050859
SenjorPomidor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
softwarer
SenjorPomidor
Зачем второй блок использовать, когда первый почти пустой?

Лучше задать другой вопрос - зачем всем ломиться в первый блок, рискуя конкуренцией? Oracle старается разбросать нагрузку, чтобы не возникало узких мест. В прошлом ответом на Ваш вопрос было бы ключевое слово FREELISTS. В эпоху ASM это уже не особо актуально, но принцип остался тем же самым, так что прочитайте про freelists, если хотите понять ситуацию без погружения в дебри.

Спасибо, я уже понял, что это особенность параллельной вставки. Получается Ораклу дорого и некогда выяснять, получится ли вставить в данный блок строки в параллельном режиме, здесь главное - скорость. Поэтому каждая сессия "свой" блок захватывает в соответствии с freelists.
Но замечу, что при параллельных апдейтах строки, находящиеся в одном блоке, прекрасно обновляются (одновременно) разными сеансами и никто конкуренции не боится.
...
Рейтинг: 0 / 0
Блоки
    #40050861
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SenjorPomidor
Но замечу, что при параллельных апдейтах строки, находящиеся в одном блоке, прекрасно обновляются (одновременно) разными сеансами и никто конкуренции не боится.

Не настолько прекрасно. "Не боится" - неправильные слова, ближе к истине "без помощи разработчика Oracle мало что может с ними сделать". Параллельные апдейты горячего блока - вполне себе популярный способ затормозить систему, в том числе просто из-за слотов транзакций (например, если восемь сессий хотят одновременно обновить разные и непересекающиеся строки в этом блоке, то только две или три действительно это сделают, а остальные повиснут на блокировке, ожидая коммита предыдущих).
...
Рейтинг: 0 / 0
Блоки
    #40050862
SenjorPomidor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
softwarer
Параллельные апдейты горячего блока - вполне себе популярный способ затормозить систему, в том числе просто из-за слотов транзакций (например, если восемь сессий хотят одновременно обновить разные и непересекающиеся строки в этом блоке, то только две или три действительно это сделают, а остальные повиснут на блокировке, ожидая коммита предыдущих).

А почему такие цифры скромные для примера? ) Количеством сессий для обновления блока вроде maxtrans управляет. Он уже хотя и не редактируется, но по умолчанию выставлен в значение 255 (транзакций).
...
Рейтинг: 0 / 0
Блоки
    #40050868
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SenjorPomidor
Количеством сессий для обновления блока вроде maxtrans управляет.

Нет. Он задаёт верхнюю границу, но при этом никто не обещал, что блок эту границу достигнет. Если говорить про значение 255, то, в общем, можно быть уверенным, что вне специально организованного примера - не достигнет.
...
Рейтинг: 0 / 0
Блоки
    #40050870
SenjorPomidor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
softwarer,

Спасибо. Понял.
...
Рейтинг: 0 / 0
Блоки
    #40050887
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer
в том числе просто из-за слотов транзакций (например, если восемь сессий хотят одновременно обновить разные и непересекающиеся строки в этом блоке, то только две или три действительно это сделают, а остальные повиснут на блокировке, ожидая коммита предыдущих).
Это, в общем случае, неверно. Всё зависит от наличия свободного места в блоке, которое, в том числе, зависит от PCTFREE.

Делать заявления с квантором всеобщности - стратегически непрофессионально. Легко налететь на контрпример.
...
Рейтинг: 0 / 0
25 сообщений из 28, страница 1 из 2
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Блоки
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]