|
Какие есть алгоритмы заселектить только изменённые, не заселекченные в прошлый раз записи?
|
|||
---|---|---|---|
#18+
Задача такая. в таблице данные. 1. точка отсчёта - время t0 2. в сессии1 кто-то сделал апдейт одной записи без коммита на момент времени t1. 3. в сессии2 сделали выборку из этой таблицы в момент t2, при этом, как и должно быть, выбрались консистентные данные на момент времени t0. 4. в сессии1 сделали коммит в момент t3 в момент t4 нужно выбрать все записи, которые новее данных, выбранных на шаге 3 (т.е. были вставлены-обновлены и закоммичены) Как это сделать проще? Сравнивать по ID записи + версия|last_update_date этой строки не хочется (гонять весь справочник с клиента обратно для сравнения построчно). Есть ли иные решения? Я всё ожидаю чуда что существует некий аналог row SCN, который содержал бы "№ выполненного коммита", а не номер состояния на момент апдейта-инсерта... ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2019, 17:19 |
|
Какие есть алгоритмы заселектить только изменённые, не заселекченные в прошлый раз записи?
|
|||
---|---|---|---|
#18+
На одном из проектов было что-то похожее, надо было обрабатывать приходящие в произвольный момент времени данные. Решалось триггером, который добавлял в отдельную таблицу rowid новых или изменённых строк. Периодически запускался джоб, который считывал порцию этих rowid (select for update), обрабатывал, и удалял их из дополнительной таблицы. И так по кругу. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2019, 17:35 |
|
Какие есть алгоритмы заселектить только изменённые, не заселекченные в прошлый раз записи?
|
|||
---|---|---|---|
#18+
т.е. либо логирование, либо самостоятельное ведение версии строки, СУБД таких возможностей не предоставляет... ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2019, 17:38 |
|
Какие есть алгоритмы заселектить только изменённые, не заселекченные в прошлый раз записи?
|
|||
---|---|---|---|
#18+
Shredder2003т.е. либо логирование, либо самостоятельное ведение версии строки, СУБД таких возможностей не предоставляет... ставь mongodb - там все это давно уже есть. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2019, 17:44 |
|
Какие есть алгоритмы заселектить только изменённые, не заселекченные в прошлый раз записи?
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2019, 17:47 |
|
Какие есть алгоритмы заселектить только изменённые, не заселекченные в прошлый раз записи?
|
|||
---|---|---|---|
#18+
Зависит от целей и задач, не зная которые сложно что-то рекомендовать. Как вариант под велосипедо-ETL рассмотрите: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2019, 18:00 |
|
Какие есть алгоритмы заселектить только изменённые, не заселекченные в прошлый раз записи?
|
|||
---|---|---|---|
#18+
StaxShredder2003, https://docs.oracle.com/database/121/SQLRF/pseudocolumns007.htm#SQLRF50953 ..... stax Судя по описанию мне казалось что ORA_ROWSCN содержит № на момент апдейта-инсерта. Провёл тесты, ан нет - № на момент коммита! Получается, что его можно использовать как ключ для выборки записей. Только вот индексировать его нельзя будет видимо. Прошу меня вовремя остановить, если вдруг это какой-то частный случай и на ORA_ROWSCN полагаться нельзя :) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2019, 18:22 |
|
Какие есть алгоритмы заселектить только изменённые, не заселекченные в прошлый раз записи?
|
|||
---|---|---|---|
#18+
Shredder2003, CQN ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2019, 18:40 |
|
Какие есть алгоритмы заселектить только изменённые, не заселекченные в прошлый раз записи?
|
|||
---|---|---|---|
#18+
Shredder2003Судя по описанию мне казалось что ORA_ROWSCN содержит № на момент апдейта-инсерта. Провёл тесты, ан нет - № на момент коммита! Получается, что его можно использовать как ключ для выборки записей. Только вот индексировать его нельзя будет видимо. Прошу меня вовремя остановить, если вдруг это какой-то частный случай и на ORA_ROWSCN полагаться нельзя :) RTFM ROWDEPENDENCIES Если таблица создана без указанной опции, то ORA_ROWSCN будет одинаков для блока. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2019, 19:18 |
|
Какие есть алгоритмы заселектить только изменённые, не заселекченные в прошлый раз записи?
|
|||
---|---|---|---|
#18+
-2-CQN QRCN SY. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2019, 19:57 |
|
Какие есть алгоритмы заселектить только изменённые, не заселекченные в прошлый раз записи?
|
|||
---|---|---|---|
#18+
SY-2-CQN QRCN SY. Вот кто мне может обьяснить о чем говорят иностранцы? :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2019, 21:55 |
|
Какие есть алгоритмы заселектить только изменённые, не заселекченные в прошлый раз записи?
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2019, 21:58 |
|
Какие есть алгоритмы заселектить только изменённые, не заселекченные в прошлый раз записи?
|
|||
---|---|---|---|
#18+
andrey_anonymousflexgenпропущено... Вот кто мне может обьяснить о чем говорят иностранцы? :-) http://bfy.tw/MGc0 Спасибо, конечно, но вообще-то там смайлик стоял. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2019, 22:22 |
|
Какие есть алгоритмы заселектить только изменённые, не заселекченные в прошлый раз записи?
|
|||
---|---|---|---|
#18+
я уж думал oracle внезапно смог в грязное чтение, судя по наличию авторитетов в теме. куда там... ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2019, 23:28 |
|
Какие есть алгоритмы заселектить только изменённые, не заселекченные в прошлый раз записи?
|
|||
---|---|---|---|
#18+
Fogelя уж думал oracle внезапно смог в грязное чтение, судя по наличию авторитетов в теме. куда там... oracle отлично понимает что лезть в грязное чтение это очень грязное дело . SY. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2019, 00:21 |
|
|
start [/forum/topic.php?fid=52&fpage=84&tid=1882804]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
29ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
2ms |
others: | 306ms |
total: | 439ms |
0 / 0 |