我有一个很大的oracle事务表,每隔4小时提取一次数据,我需要使用followup select count(*)from table查询来验证提取数据的计数,但是select * from table where tend between sysdate-4hours and sysdate
和select count(*) from table where tend between sysdate-4hours and sysdate
查询需要同时启动,就好像它们在赛跑一样。
目标是记录计数,并且此表在分钟级别接收大量事务。我为select * 查询添加了并行提示,它提供了良好的结果,但是当我启动这两个作业时,即使计数查询运行的时间特别长,提取也会提前很久完成。如何继续?
2条答案
按热度按时间sxpgvts31#
在我看来,您似乎被"什么时间是“现在”“这个问题所困扰,因为在不同时间运行的两个查询对“现在”有不同的含义。
那么,显式地设置它怎么样呢?类似这样:
qpgpyjmq2#
不要使用相对于SYSDATE的偏移量,而是将上次检索到的date_column值存储在客户端(或者,如果愿意,存储在某个控制表中),并在下次刷新时从该值开始,提取所有行
>=
(for 1秒粒度的日期,请确保使用
>=
,而不仅仅是>
)这样,您的查询是一致的,并且它们是否在完全相同的时间运行并不重要。