gpt4 book ai didi

sql - 在 Oracle 中是否有任何方法可以只选择没有日期列或行依赖性的新/更改行?

转载 作者:搜寻专家 更新时间:2023-10-30 21:59:10 24 4
gpt4 key购买 nike

你会怎么做?

我正在对当前没有 Date_added/Date_updated 列的数据库执行 ETL 过程。 DBA 不想向表中添加日期列,因此我必须找到一些替代方法来只选择新的/更改的记录以进行夜间提取。数据库非常庞大,因此如果可能,解决方案必须具有空间/时间效率。

解决一些后续问题:

**表没有启用行依赖。

1) table 有PK吗?是的,每个表都有仅在其自身内唯一的 PK。

2) 巨大的数据库是……数十亿,数百万?目前最大的表中有 1000 万条记录

3) 每晚提取的新/更改记录的数据子集大小?我猜每个客户端大约 2000 行,乘以 100 个客户端得到 200000。

4) 夜间提取中有任何独特的值(value)吗?每个模式中都有唯一的值。

最佳答案

如果您已经为 Oracle 闪回事务查询功能配置了数据库,那么您可以查询过去日期的数据库,如下所示:

SELECT * 
FROM mytable
AS OF TIMESTAMP (SYSTIMESTAMP - INTERVAL '1' DAY);

因此,您可以通过使用 MINUS 查看日复一日的变化,如

SELECT *
FROM mytable
MINUS
SELECT *
FROM mytable
AS OF TIMESTAMP (SYSTIMESTAMP - INTERVAL '1' DAY);

引用:

Using Oracle Flashback Technology on Oracle® Database Advanced Application Developer's Guide

关于sql - 在 Oracle 中是否有任何方法可以只选择没有日期列或行依赖性的新/更改行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24729164/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com