Гость
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Какие есть алгоритмы заселектить только изменённые, не заселекченные в прошлый раз записи? / 15 сообщений из 15, страница 1 из 1
12.02.2019, 17:19
    #39772965
Shredder2003
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Какие есть алгоритмы заселектить только изменённые, не заселекченные в прошлый раз записи?
Задача такая.
в таблице данные.
1. точка отсчёта - время t0
2. в сессии1 кто-то сделал апдейт одной записи без коммита на момент времени t1.
3. в сессии2 сделали выборку из этой таблицы в момент t2, при этом, как и должно быть, выбрались консистентные данные на момент времени t0.
4. в сессии1 сделали коммит в момент t3

в момент t4 нужно выбрать все записи, которые новее данных, выбранных на шаге 3 (т.е. были вставлены-обновлены и закоммичены)
Как это сделать проще?
Сравнивать по ID записи + версия|last_update_date этой строки не хочется (гонять весь справочник с клиента обратно для сравнения построчно).
Есть ли иные решения?

Я всё ожидаю чуда что существует некий аналог row SCN, который содержал бы "№ выполненного коммита", а не номер состояния на момент апдейта-инсерта...
...
Рейтинг: 0 / 0
12.02.2019, 17:35
    #39772971
rpovarov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Какие есть алгоритмы заселектить только изменённые, не заселекченные в прошлый раз записи?
На одном из проектов было что-то похожее, надо было обрабатывать приходящие в произвольный момент времени данные. Решалось триггером, который добавлял в отдельную таблицу rowid новых или изменённых строк. Периодически запускался джоб, который считывал порцию этих rowid (select for update), обрабатывал, и удалял их из дополнительной таблицы. И так по кругу.
...
Рейтинг: 0 / 0
12.02.2019, 17:38
    #39772975
Shredder2003
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Какие есть алгоритмы заселектить только изменённые, не заселекченные в прошлый раз записи?
т.е. либо логирование, либо самостоятельное ведение версии строки, СУБД таких возможностей не предоставляет...
...
Рейтинг: 0 / 0
12.02.2019, 17:44
    #39772979
mefman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Какие есть алгоритмы заселектить только изменённые, не заселекченные в прошлый раз записи?
Shredder2003т.е. либо логирование, либо самостоятельное ведение версии строки, СУБД таких возможностей не предоставляет...
ставь mongodb - там все это давно уже есть.
...
Рейтинг: 0 / 0
12.02.2019, 17:47
    #39772980
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Какие есть алгоритмы заселектить только изменённые, не заселекченные в прошлый раз записи?
...
Рейтинг: 0 / 0
12.02.2019, 18:00
    #39772987
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Какие есть алгоритмы заселектить только изменённые, не заселекченные в прошлый раз записи?
Зависит от целей и задач, не зная которые сложно что-то рекомендовать.
Как вариант под велосипедо-ETL рассмотрите:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
create table dropme_t(checkpoint#)
as select 0 from dual
;

create materialized view log on dropme_t 
with sequence, rowid
(checkpoint#) 
including new values
;

update dropme_t set checkpoint# = checkpoint#+1;

select * from dropme_t;

select * from MLOG$_DROPME_T;
...
Рейтинг: 0 / 0
12.02.2019, 18:22
    #39772996
Shredder2003
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Какие есть алгоритмы заселектить только изменённые, не заселекченные в прошлый раз записи?
StaxShredder2003,

https://docs.oracle.com/database/121/SQLRF/pseudocolumns007.htm#SQLRF50953

.....
stax

Судя по описанию мне казалось что ORA_ROWSCN содержит № на момент апдейта-инсерта.
Провёл тесты, ан нет - № на момент коммита!
Получается, что его можно использовать как ключ для выборки записей.
Только вот индексировать его нельзя будет видимо.

Прошу меня вовремя остановить, если вдруг это какой-то частный случай и на ORA_ROWSCN полагаться нельзя :)
...
Рейтинг: 0 / 0
12.02.2019, 18:40
    #39773006
-2-
-2-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Какие есть алгоритмы заселектить только изменённые, не заселекченные в прошлый раз записи?
Shredder2003,

CQN
...
Рейтинг: 0 / 0
12.02.2019, 19:18
    #39773023
MazoHist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Какие есть алгоритмы заселектить только изменённые, не заселекченные в прошлый раз записи?
Shredder2003Судя по описанию мне казалось что ORA_ROWSCN содержит № на момент апдейта-инсерта.
Провёл тесты, ан нет - № на момент коммита!
Получается, что его можно использовать как ключ для выборки записей.
Только вот индексировать его нельзя будет видимо.

Прошу меня вовремя остановить, если вдруг это какой-то частный случай и на ORA_ROWSCN полагаться нельзя :)
RTFM ROWDEPENDENCIES
Если таблица создана без указанной опции, то ORA_ROWSCN будет одинаков для блока.
...
Рейтинг: 0 / 0
12.02.2019, 19:57
    #39773040
SY
SY
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Какие есть алгоритмы заселектить только изменённые, не заселекченные в прошлый раз записи?
-2-CQN

QRCN

SY.
...
Рейтинг: 0 / 0
12.02.2019, 21:55
    #39773069
flexgen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Какие есть алгоритмы заселектить только изменённые, не заселекченные в прошлый раз записи?
SY-2-CQN

QRCN

SY.

Вот кто мне может обьяснить о чем говорят иностранцы? :-)
...
Рейтинг: 0 / 0
12.02.2019, 21:58
    #39773072
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Какие есть алгоритмы заселектить только изменённые, не заселекченные в прошлый раз записи?
flexgenSYQRCN
Вот кто мне может обьяснить о чем говорят иностранцы? :-)
http://bfy.tw/MGc0
...
Рейтинг: 0 / 0
12.02.2019, 22:22
    #39773079
flexgen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Какие есть алгоритмы заселектить только изменённые, не заселекченные в прошлый раз записи?
andrey_anonymousflexgenпропущено...

Вот кто мне может обьяснить о чем говорят иностранцы? :-)
http://bfy.tw/MGc0

Спасибо, конечно, но вообще-то там смайлик стоял.
...
Рейтинг: 0 / 0
12.02.2019, 23:28
    #39773090
Fogel
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Какие есть алгоритмы заселектить только изменённые, не заселекченные в прошлый раз записи?
я уж думал oracle внезапно смог в грязное чтение, судя по наличию авторитетов в теме.
куда там...
...
Рейтинг: 0 / 0
13.02.2019, 00:21
    #39773097
SY
SY
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Какие есть алгоритмы заселектить только изменённые, не заселекченные в прошлый раз записи?
Fogelя уж думал oracle внезапно смог в грязное чтение, судя по наличию авторитетов в теме.
куда там...

oracle отлично понимает что лезть в грязное чтение это очень грязное дело .

SY.
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Какие есть алгоритмы заселектить только изменённые, не заселекченные в прошлый раз записи? / 15 сообщений из 15, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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