powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Будущее профессии Oracle DBA
25 сообщений из 130, страница 3 из 6
Будущее профессии Oracle DBA
    #39359532
д0kХ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
NETClientд0kХВозмите любой блокировочник , поставьте режим грязного чтения
ваш результат будет не хуже.Как?! Но ведь согласованное чтение закоммиченных данных и грязное чтение - не одно и то же.
А абзац про консистентность - прости, не осилил.

согласованное относительно одной пользовательской сессии , не значит что
изменения сделанные на основании этого одного согласованного
чтения будут согласованы с ожидаемым поведением бизнес логики при изменении данных.
Для того что бы реально согласовать чтения и изменения
оракл придумал неявный рестарт транзакций , что бы не отсупать от своей логики
согласованного чтения.
...
Рейтинг: 0 / 0
Будущее профессии Oracle DBA
    #39359535
NETClient
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попытаюсь по порядку.
д0kХБлокировчник вешает блокировку на всю глубину транзакции
и даже дальше если ему это сказал программист.Не представляю, как с этим работать. Видимо потому что не сталкивался.

д0kХОракл по умолчанию никак не гарантирует согласованность
данных между несколькими запросами внутри транзакции.Но тем не менее позволяет сделать это без блокировок, хотя конечно есть нюансы.

д0kХТолько одним джоином на транзакцию в for update курсоре с изменением
по where curent of или переходом в сериализейбл, что совсе грустно для
много пользовательского режима.Опять не понимаю. Видимо нужно разбирать на примере.

д0kХЕсли программист в оракле работает по другому , это аналогично
режиму грязного чтения в блокировчнике.Oracle никогда не читает незакоммиченных данных другой сессии.
...
Рейтинг: 0 / 0
Будущее профессии Oracle DBA
    #39359538
Фотография aist-psk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NETClientaist-pskне здох , живёт под крылом IBM : текущая версия IDS 12
А что IBM больше любит: Informix или DB2?
IBM любит деньги : пока клиентов много на IDS (в масштабе земли ) , остальное не важно.
...
Рейтинг: 0 / 0
Будущее профессии Oracle DBA
    #39359540
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Но при чем тут Subj?
...
Рейтинг: 0 / 0
Будущее профессии Oracle DBA
    #39359543
NETClient
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вячеслав ЛюбомудровНо при чем тут Subj?Буду общаться со своим другом пока не выгонят.
...
Рейтинг: 0 / 0
Будущее профессии Oracle DBA
    #39359548
NETClient
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
д0kХсогласованное относительно одной пользовательской сессии , не значит что
изменения сделанные на основании этого одного согласованного
чтения будут согласованы с ожидаемым поведением бизнес логики при изменении данных.
Опять не уверен, что правильно тебя понял. Оракл не блокирует данные, там где это реально не нужно. Если необходимо, чтобы данные не менялись с момента чтения - то есть блокировки различного уровня: от строк до всей таблицы целиком.

д0kХДля того что бы реально согласовать чтения и изменения
оракл придумал неявный рестарт транзакций , что бы не отсупать от своей логики
согласованного чтения.Речь о чем? Snapshot too old или statement restart?
...
Рейтинг: 0 / 0
Будущее профессии Oracle DBA
    #39359550
д0kХ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
NETClientПопытаюсь по порядку.
д0kХБлокировчник вешает блокировку на всю глубину транзакции
и даже дальше если ему это сказал программист.Не представляю, как с этим работать. Видимо потому что не сталкивался.

д0kХОракл по умолчанию никак не гарантирует согласованность
данных между несколькими запросами внутри транзакции.Но тем не менее позволяет сделать это без блокировок, хотя конечно есть нюансы.

д0kХТолько одним джоином на транзакцию в for update курсоре с изменением
по where curent of или переходом в сериализейбл, что совсе грустно для
много пользовательского режима.Опять не понимаю. Видимо нужно разбирать на примере.

д0kХЕсли программист в оракле работает по другому , это аналогично
режиму грязного чтения в блокировчнике.Oracle никогда не читает незакоммиченных данных другой сессии.

Правильно , оракл читает предыдущую версию.
Если другая сессия закомитится раньше ,
а потом эта сессия изменит закомиченную записть на основании
предыдущей версии, все приплыли.
Есть 2 пользвательский сессии и 3 счета.
нужно с одной счета перекинуть по 10 рублей на 2 других.
остаток на нем 100 рублей
первая читает
100 рублей отнимате 10 и пошет в остаток 90
в это время другая читает предцдущую версию - 100 рублей
и пишет в остаток 90.
Комитится первая комитится вторая .
на счету должно быть 80 рублей , а у нас 90.
что бы избежать этого артефакта остаток
по счету где 100 рублей нужно читать в режиме
select for update в всех сессиях кто планирует менять остатки .
и изменять никак по другому как через where curent of
...
Рейтинг: 0 / 0
Будущее профессии Oracle DBA
    #39359552
Мимобижал
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
д0kХособенно ОЛТП , с лост апдетами. Разница меджу блокировчником и ораклом для ОЛТП только в том что блокировочник ведет себя всегда в режиме ораклового select .... for update на всю транзакцию.
Бл-ники не юзал, но разве не то чтобы на всю транзакцию, а даже просто на чтение?
д0kХПопробуйте в оракле for update используя where current of закомитить запись и сделать следующий фетч. Привет ORA-01002
Зачем то, что делать не надо или надо делать по-другому? )
д0kХЕсли вы комитетесь в курсоре и не используете where current of
то за первым же комитом внутри цикла вы слетаете с блокировок и хваленой оракловой
консистентности в говнокод.
Зачем "комиться в курсе" чтобы "слетать с блокировок"? Транзакиця она ж на то и есть, чтобы закомититься один раз, когда надо.
Нюансы могут быть на больших объемах, но если речь про OLTP, то нипанятна )
...
Рейтинг: 0 / 0
Будущее профессии Oracle DBA
    #39359555
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вячеслав ЛюбомудровМне вот более ближе война не между блокировочниками и версионниками, а между привычной работой по одной записи и ПРАВИЛЬНОЙ С ORACLE работой с множествами
Так случилось, что нашим программистам приходится вести две системы -- на BTrieve и на Oracle, причем на BTrieve -- первичная, поэтому на Oracle они построили примерно такие-же структуры (и синхронизируют их) и, соответственно, работают как и в BTrieve -- row by rowЯ не знаю за всех блокировочников, но в MSSQL чтоб читатели не блокировали есть костыль WITH (NOLOCK), чтоб писатели не блокировали - можно менять уровень изоляции c 2005 (версионность реализована через жопу tempdb).
Поэтому в параллельной теме я и обращал внимание на понимание уровней изоляции что вылилось в обсуждение деталей автономок.
Не совсем понятно как подобные детали обязяывают применять row by row... скорее причина в том, что у авторов было искривление мозгов на почве java, шарпа или типа того.
...
Рейтинг: 0 / 0
Будущее профессии Oracle DBA
    #39359558
Мимобижал
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
д0kХОракл по умолчанию никак не гарантирует согласованность
данных между несколькими запросами внутри транзакции.
Это как так? )
...
Рейтинг: 0 / 0
Будущее профессии Oracle DBA
    #39359559
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NETClientВячеслав ЛюбомудровНо при чем тут Subj?Буду общаться со своим другом пока не выгонят.Жаль, что твой друг закодировался от ПТ, ему там самое место.
...
Рейтинг: 0 / 0
Будущее профессии Oracle DBA
    #39359561
NETClient
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dbms_photoshopЖаль, что твой друг закодировался от ПТ, ему там самое место.Оставлю без комментариев.
...
Рейтинг: 0 / 0
Будущее профессии Oracle DBA
    #39359564
Мимобижал
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
д0kХЭто как так? )
Ну дак это... По умолчанию да, но а уровни изолированности транзакции?
А оптимистичное "блокирование" против select for update?
...
Рейтинг: 0 / 0
Будущее профессии Oracle DBA
    #39359565
NETClient
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
д0kХПравильно , оракл читает предыдущую версию.
Если другая сессия закомитится раньше ,
а потом эта сессия изменит закомиченную записть на основании
предыдущей версии, все приплыли.
Есть 2 пользвательский сессии и 3 счета.
нужно с одной счета перекинуть по 10 рублей на 2 других.
остаток на нем 100 рублей
первая читает
100 рублей отнимате 10 и пошет в остаток 90
в это время другая читает предцдущую версию - 100 рублей
и пишет в остаток 90.
Комитится первая комитится вторая .
на счету должно быть 80 рублей , а у нас 90.
что бы избежать этого артефакта остаток
по счету где 100 рублей нужно читать в режиме
select for update в всех сессиях кто планирует менять остатки .
и изменять никак по другому как через where curent of
Друг, не хочу тебя обидеть, но как-то ты непонятно пишешь. Если бы ты по шагам описал, что и в какой момент делает каждая из двух сессий, то я бы постарался обсудить с тобой этот сценарий.
А то неясно, что такое
д0kХ100 рублей отнимате 10 и пошет в остаток 90
и где собственно апдейт тех счетов, на которые совершается перевод.
...
Рейтинг: 0 / 0
Будущее профессии Oracle DBA
    #39359567
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
д0kХпервая читает
100 рублей отнимате 10 и пошет в остаток 90Это типичная ошибка говнокодеров - устанавливать, а не изменять.
...
Рейтинг: 0 / 0
Будущее профессии Oracle DBA
    #39359569
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dbms_photoshopВячеслав ЛюбомудровМне вот более ближе война не между блокировочниками и версионниками, а между привычной работой по одной записи и ПРАВИЛЬНОЙ С ORACLE работой с множествами
Так случилось, что нашим программистам приходится вести две системы -- на BTrieve и на Oracle, причем на BTrieve -- первичная, поэтому на Oracle они построили примерно такие-же структуры (и синхронизируют их) и, соответственно, работают как и в BTrieve -- row by rowЯ не знаю за всех блокировочников, но в MSSQL чтоб читатели не блокировали есть костыль WITH (NOLOCK), чтоб писатели не блокировали - можно менять уровень изоляции c 2005 (версионность реализована через жопу tempdb).
Поэтому в параллельной теме я и обращал внимание на понимание уровней изоляции что вылилось в обсуждение деталей автономок.
Не совсем понятно как подобные детали обязяывают применять row by row... скорее причина в том, что у авторов было искривление мозгов на почве java, шарпа или типа того.Не-не-не
Это в принципе другое
И вот они мучаются, бедные, а виноват во всем Oracle
...
Рейтинг: 0 / 0
Будущее профессии Oracle DBA
    #39359573
д0kХ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мимобижалд0kХОракл по умолчанию никак не гарантирует согласованность
данных между несколькими запросами внутри транзакции.
Это как так? )

Это по концептам :)
консистентность в режиме рид комитед
распостраняется на момент старта каждого из запросов внутри транзакции.
у следующего запроса внутри одной транзакции другой SCN
и консистентность разных запросов считается от разных исходных,
2 запроса консистентны сами в себе ,
но с точки зрения транзакции данные получаемые этими запросами не консистентны.
хотите консистентности на уровне транзакции идите в сериализейбл.
...
Рейтинг: 0 / 0
Будущее профессии Oracle DBA
    #39359579
NETClient
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
д0kХЭто по концептам :)
консистентность в режиме рид комитед
распостраняется на момент старта каждого из запросов внутри транзакции.
у следующего запроса внутри одной транзакции другой SCN
и консистентность разных запросов считается от разных исходных,
2 запроса консистентны сами в себе ,
но с точки зрения транзакции данные получаемые этими запросами не консистентны.
хотите консистентности на уровне транзакции идите в сериализейбл.Какую задачу мы решаем? Сделать перевод со счета на два других? Для (банковских) систем - это всегда две разные транзакции. Каждая из них осуществляется одним update-запросом.
...
Рейтинг: 0 / 0
Будущее профессии Oracle DBA
    #39359584
д0kХ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
NETClientд0kХЭто по концептам :)
консистентность в режиме рид комитед
распостраняется на момент старта каждого из запросов внутри транзакции.
у следующего запроса внутри одной транзакции другой SCN
и консистентность разных запросов считается от разных исходных,
2 запроса консистентны сами в себе ,
но с точки зрения транзакции данные получаемые этими запросами не консистентны.
хотите консистентности на уровне транзакции идите в сериализейбл.Какую задачу мы решаем? Сделать перевод со счета на два других? Для (банковских) систем - это всегда две разные транзакции. Каждая из них осуществляется одним update-запросом.

Мы решаем задачу получения максимального параллелизма выполениния
при сохранении целостности данных определенной бизнес логикой.
С течки зрения банка , это баланс.
с точки зрения ретейла , это соотвествие суммы значений по позициям чеках
разнице остатков на складах и полках.
...
Рейтинг: 0 / 0
Будущее профессии Oracle DBA
    #39359592
NETClient
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
д0kХМы решаем задачу получения максимального параллелизма выполениния
при сохранении целостности данных определенной бизнес логикой.
С течки зрения банка , это баланс.
Я не понимаю в чем проблема. На момент проведения транзакции два счета (точнее их балансы) будут неизбежно заблокированы на кратковременный срок ее проведения.
Любая другая транзакция, в какой бы момент она не читала данные, всегда получит согласованное состояние.

Чего я не понимаю?
...
Рейтинг: 0 / 0
Будущее профессии Oracle DBA
    #39359593
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
д0kХС течки зрения банка , это баланс.
с точки зрения ретейла , это соотвествие суммы значений по позициям чеках
разнице остатков на складах и полках.Есть опыт?
Или так, прочитал чей-то высер?
...
Рейтинг: 0 / 0
Будущее профессии Oracle DBA
    #39359595
д0kХ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
NETClient
Чего я не понимаю?

как бы так помягче выразиться,
фундаментального понимания процесса построения систем
с высокой конкуренцией использования данных
Инфа для общего развития и более глубокого погружения в тему
...
Рейтинг: 0 / 0
Будущее профессии Oracle DBA
    #39359598
д0kХ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вячеслав Любомудровд0kХС течки зрения банка , это баланс.
с точки зрения ретейла , это соотвествие суммы значений по позициям чеках
разнице остатков на складах и полках.Есть опыт?
Или так, прочитал чей-то высер?

За 20 + лет в ИТ опыта полно всякого и разного.
...
Рейтинг: 0 / 0
Будущее профессии Oracle DBA
    #39359602
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну, разнообразный опыт он совсем не тот
...
Рейтинг: 0 / 0
Будущее профессии Oracle DBA
    #39359604
NETClient
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
д0kХ Инфа для общего развития и более глубокого погружения в тему Друг, на твою ссылку я уже сегодня натыкался, когда пытался найти для тебя разницу между iso-шным read commited и его ораколовой реализации.

В твоей ссылке про read commited говорится только про чтение зафиксированных данных (даже упоминается Oracle), но нигде не говорится о согласованности чтения. Может быть весь этот сыр-бор от твоего не понимания этой разницы?
...
Рейтинг: 0 / 0
25 сообщений из 130, страница 3 из 6
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Будущее профессии Oracle DBA
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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