Sql Oracle查询,根据订单获取数据,而不使用order by

Sql Oracle查询,根据订单获取数据,而不使用order by,sql,database,oracle,performance,sql-order-by,Sql,Database,Oracle,Performance,Sql Order By,以下是问题陈述: 我有一个表,我们在其中插入了一些数据以及该医院的业务日期以及创建时间戳 业务日期(Bday)定义医院完成业务的逻辑日期,创建时间戳(create_ts)定义记录插入数据库的时间戳。 业务日期可能比创建时间戳提前1天,因为创建时间戳在PST中,医院可能位于南亚、澳大利亚地区。 此外,如果在应用程序中,医院因今天的营业日期而意外关闭,则可以在第二天开放 我需要将记录从暂存数据库同步到主数据库 我想先用最小创建时间戳同步记录。但order by是一项成本高昂的操作,因为有时要同步的记

以下是问题陈述:

我有一个表,我们在其中插入了一些数据以及该医院的业务日期以及创建时间戳

业务日期(Bday)定义医院完成业务的逻辑日期,创建时间戳(create_ts)定义记录插入数据库的时间戳。 业务日期可能比创建时间戳提前1天,因为创建时间戳在PST中,医院可能位于南亚、澳大利亚地区。 此外,如果在应用程序中,医院因今天的营业日期而意外关闭,则可以在第二天开放

我需要将记录从暂存数据库同步到主数据库

我想先用最小创建时间戳同步记录。但order by是一项成本高昂的操作,因为有时要同步的记录数超过10万条

正在运行10个不同的线程以同步每个批大小为50的记录

第一个解决方案尝试的是拾取business date=min business date的记录,但存在一些复杂性: 1) 由于某些记录具有最短业务日期,但由于某些问题而无法同步,因此在没有人工干预的情况下,无法提取第二天的记录。 2) 有些医院在未来的营业日期开业(例如今天是13号,他们因意外关闭,所以在14号开业)。因此,这些记录没有得到处理,因为业务日期大于最小业务日期

考虑选择创建时间戳介于最小创建时间戳和+1小时之间的记录。 但是,如第(1)点所述,可能会再次出现问题,并且在具有最小创建时间戳和+1小时的卡住记录之间可能没有任何要同步的记录

请为查询提供解决方案


表中的几列是:Hname(医院名称)、Hloc(医院位置)、Dseq(每天序列号)、Bday(业务日期)、create(创建)和modify(修改)

如果不使用“order BY”子句,Oracle不保证结果集的顺序


<>但是你可以考虑使用Oracle 11G或者Oracle 12C——它应该非常高效。新数据几乎会立即被复制。Oracle将负责此事。

一般情况下:无
排序-->不保证结果集的顺序

谢谢你的回复。。。在这里,我不必只复制数据,但我们正在用java代码进行大量处理。因此,我们不能使用oracle复制方案。我们已经在使用它,我们有一个备份数据库。