powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / обязательно писать ORDER BY ?
19 сообщений из 44, страница 2 из 2
обязательно писать ORDER BY ?
    #39630000
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
listtoviewапдейт конфликта что конкретно имеется в виду?
...
Рейтинг: 0 / 0
обязательно писать ORDER BY ?
    #39630004
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dbms_photoshopИли оставшиеся изменения после exception - 10183567 .



имхо (с моей точки зрения)

ето скорее ораклячая фича (возможно документированная), чем нормальное поведение

если напр в вызывающем есть exception when ... то изменения "остаются "

.....
stax
...
Рейтинг: 0 / 0
обязательно писать ORDER BY ?
    #39630030
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot dbms_photoshop]-2-пропущено...Вспомнилось троллинга ради 19937276
andrey_anonymousпропущено...
Важное - да.
Критически - нет.

Потом такие некритические архитекторы дизайнерят "универсальные" системы, которые работают "иногда".
Прошу уважаемого dbms_photoshop пояснить, как тезис, действительный в контексте oracle rdbms и никогда не обобщавшийся автором на прочие платформы переехал в <оффтопичный тут> контекст MSSQL и каким образом этот переезд перетек в обобщение "такие некритичные универсальные".
...островитяне - они такие... островитяне... :)
...
Рейтинг: 0 / 0
обязательно писать ORDER BY ?
    #39630039
mnbvcx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ОФФТОП
andreymx
Код: sql
1.
2.
3.
4.
5.
6.
7.
В MSSQL:
В одной сессии делаем
Begin transaction
Insert into test values(1) 

В другой сессии
select * from test -– запрос висит, пока в первой сессии не сделан коммит/роллбек


Так и должно быть.
У тебя стоит уровень изоляции READ COMMITED – это уровень изоляции по умолчанию при установлении нового соединения.
Тута ( https://www.intuit.ru/studies/courses/1079/264/lecture/6729?page=3) написано об этом:

А сейчас вернемся к окну запроса 1 и снова попробуем выполнить чтение данных.
SELECT FirstName, LastName, EmailAddress
FROM Person.Contact
WHERE ContactID = 1;
Запрос не завершается, поскольку инструкция SELECT заблокирована. SQL Server пытается получить разделяемую блокировку на ключ столбца ContactID 1, но это невозможно, ведь транзакция UPDATE в окне запроса Query Window 2 владеет монопольной блокировкой на этот ключ. Хотя окно запроса Query Windows 2 находится в режиме READ COMMITED (поскольку мы не изменяли уровень по умолчанию), монопольная блокировка все еще не снята. Эта блокировка существует потому, что монопольные блокировки для изменений данных всегда удерживаются до окончания транзакции.
...
Рейтинг: 0 / 0
обязательно писать ORDER BY ?
    #39630047
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mnbvcxТак и должно быть.


А вот oracle (и слава богу) думает
иначе. Сессия 1:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
SQL> create table test(id int);

Table created.

SQL> set transaction isolation level read committed;

Transaction set.

SQL> Insert into test values(1);

1 row created.

SQL> 



Сессия 2:

Код: plsql
1.
2.
3.
4.
5.
SQL> select * from test;

no rows selected

SQL> 



SY.
...
Рейтинг: 0 / 0
обязательно писать ORDER BY ?
    #39630052
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mnbvcx,

Суть в том что oracle не блокирует select а лeзет в undo а вот mssql таки да. И кроме того сам select в mssql ставит row shared lock.

SY.
...
Рейтинг: 0 / 0
обязательно писать ORDER BY ?
    #39630056
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymous,

Концепт критически важный безотносительно используемой СУБД. Точка.
...
Рейтинг: 0 / 0
обязательно писать ORDER BY ?
    #39630062
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dbms_photoshopКонцепт критически важный безотносительно
Важный. Но по-прежнему не критически важный в отдельно взятом контексте oracle rdbms.
Period.
...
Рейтинг: 0 / 0
обязательно писать ORDER BY ?
    #39630072
mnbvcx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SY
А вот oracle (и слава богу) думает
иначе...

Такая жизнь.
Postgre тоже вернёт несуществующие данные в этом случае.
...
Рейтинг: 0 / 0
обязательно писать ORDER BY ?
    #39630078
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymous,

Видимо я тебя задел, тогда стоит пояснить, что "такие некритичные универсальные" не относилось к тебе персонально.
И тем более тот пост не имеет никакого отношения к -2-, хоть его ответ был процитирован.
Даже было уточнение "троллинга ради".

Если у кого-то опыт ограничивается Ораклом и при этом работая с Ораклом люди понимают почему за него была уплачена тонна денег и какие у него преимущества - это замечательно.

У меня в колхозе ситуация несколько иная.
Соответственно что кому критично и важно каждый пусть решает персонально.
Но все равно я никогда не возьму на должность разработчика СУБД человека, если он не понимает уровни изоляции.

Кстати, все еще печальнее когда CTO нихрена не понимает ни про транзакции ни про concurrency.
У островитян эти случаи наверное еще чаще чем в России, если IT это не основной бизнес, а сопровождающее подразделение.
...
Рейтинг: 0 / 0
обязательно писать ORDER BY ?
    #39630089
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mnbvcxТакая жизнь.
Postgre тоже вернёт несуществующие данные в этом случае.

Не знаю что-там Postgre, но oracle не вернет несуществующие данные:

Oracle Database never permits dirty reads, which occur when a transaction reads uncommitted data in another transaction.

SY.
...
Рейтинг: 0 / 0
обязательно писать ORDER BY ?
    #39630588
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SYmnbvcxТакая жизнь.
Postgre тоже вернёт несуществующие данные в этом случае.

Не знаю что-там Postgre, но oracle не вернет несуществующие данные:

Oracle Database never permits dirty reads, which occur when a transaction reads uncommitted data in another transaction.

SY.
зато в оракле нельзя запретить читать "изменяющиеся" данные

как наложить блокировку на чтение?

.....
ыефч
...
Рейтинг: 0 / 0
обязательно писать ORDER BY ?
    #39630593
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Staxзапретить читать "изменяющиеся" данныеНеявная блокировка "прочитанных данных" может привести к непредсказуемым результатам в зависимости от плана выполнения. А явную блокировку оракл предлагает.
Корректнее обсуждать возможность блокировки условий фильтрации. Что тоже реализуемо в оракле через plsql.
...
Рейтинг: 0 / 0
обязательно писать ORDER BY ?
    #39630623
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
StaxSYпропущено...


Не знаю что-там Postgre, но oracle не вернет несуществующие данные:

Oracle Database never permits dirty reads, which occur when a transaction reads uncommitted data in another transaction.

SY.
зато в оракле нельзя запретить читать "изменяющиеся" данные

как наложить блокировку на чтение?

.....
ыефча для каких целей?
...
Рейтинг: 0 / 0
обязательно писать ORDER BY ?
    #39630632
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreymxStaxпропущено...

зато в оракле нельзя запретить читать "изменяющиеся" данные

как наложить блокировку на чтение?

.....
ыефча для каких целей?

напр во веремя открытие/закрытие дня/месяца, расчета процентов, зп, и тд

.....
stax
...
Рейтинг: 0 / 0
обязательно писать ORDER BY ?
    #39630649
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Staxandreymxпропущено...
а для каких целей?

напр во веремя открытие/закрытие дня/месяца, расчета процентов, зп, и тд

.....
staxпо-моему, эта задача должна решаться совершенно другими методами
таблица закрытых-открытых периодов, триггер на апдейт-делит (или что-то более современное)
...
Рейтинг: 0 / 0
обязательно писать ORDER BY ?
    #39630652
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreymxStaxпропущено...


напр во веремя открытие/закрытие дня/месяца, расчета процентов, зп, и тд

.....
staxпо-моему, эта задача должна решаться совершенно другими методами
таблица закрытых-открытых периодов, триггер на апдейт-делит (или что-то более современное)сорри, ступил, триггер тут не поможет
Может, RLS?
У нас это решается стандартным ограничением на формах и отчетах
Если период не готов, то его нельзя выбрать
...
Рейтинг: 0 / 0
обязательно писать ORDER BY ?
    #39630663
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreymxandreymxпропущено...
по-моему, эта задача должна решаться совершенно другими методами
таблица закрытых-открытых периодов, триггер на апдейт-делит (или что-то более современное)сорри, ступил, триггер тут не поможет
Может, RLS?
У нас это решается стандартным ограничением на формах и отчетах
Если период не готов, то его нельзя выбрать

так и решается (меню и тд), но не все примочки ето учитывают

RLS использовал раз, и то сдуру (не было опыта) на таблицах

.....
stax
...
Рейтинг: 0 / 0
обязательно писать ORDER BY ?
    #39630703
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Staxandreymxпропущено...
сорри, ступил, триггер тут не поможет
Может, RLS?
У нас это решается стандартным ограничением на формах и отчетах
Если период не готов, то его нельзя выбрать

так и решается (меню и тд), но не все примочки ето учитывают

RLS использовал раз, и то сдуру (не было опыта) на таблицах

.....
staxмы вместо rls используем вьюхи
уже 10 лет
полёт нормальный
...
Рейтинг: 0 / 0
19 сообщений из 44, страница 2 из 2
Форумы / Oracle [игнор отключен] [закрыт для гостей] / обязательно писать ORDER BY ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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