如何在Oracle表上使用滑动窗口?

时间:2018-11-05 05:45:06

标签: sql database oracle sliding-window

我有一张表(记录)在Oracle中实时获取。我需要从该表中提取数据并计算每分钟添加到数据库中的条目数。然后将该统计信息转储到新表“ statistics”中。如何以滑动窗口方式有效地提取数据?

表的结构:

RecordId       NUMBER(10)    ---- Unique random value for every row        
RecordTime     VARCHAR2(64)  ---- Timestamp in YYYY-MM-DD HH24:MI:SS

查询应类似于:

select substr(RecordTime, 1, 16), count(*) 
from Records 
group by substr(RecordTime, 1, 16);

表中每分钟大约需要500000新行,因此我需要在此数据库表上滑动窗口操作。如果类似队列的操作更好,那么也请让我知道。

1 个答案:

答案 0 :(得分:0)

首先,最好将RecordTime作为日期字段,以便您可以在其上创建索引并查询它。使用substr()会让您迷失方向。

第二,像Influx这样的时间序列数据库更适合此用例。您可能会考虑使用它。