从慢速源最佳实践中加载数据

时间:2020-04-16 10:10:52

标签: sql ssis etl pervasive

从服务器本身的高负载,低带宽或其他原因加载数据的过程中,我一直在寻找最佳实践,这些数据本身就很慢,而您对性能却无能为力源,仅在加载中。

我有一个数据源,Pervasive PSQL Server 11.2和一个包含30M +记录的表。我只想提取最近两年的数据。任何使用WHERE语句的查询都会使查询运行60分钟以上,而不会发送任何数据。

recommendNPages :: Int -> Blog -> ([Post], Blog)
recommendNPages n = runState $ replicateM n step
  where
    -- | One step of our computation. (Just wrapping it into `State`.)
    step :: State Blog Post
    step = state recommendPage

可以工作,但是却获得了我10多年不需要的数据,而且花了这么长时间,我无法每晚都运行它。将AutoAdjustBufferSize设置为true可以提高性能,但还不够。

日期列是DATE数据类型列。我已经尝试了YEAR(column)> 2018,并尝试了BETWEEN并将前四个字符转换为INT,但是没有什么可以加快加载时间。

1 个答案:

答案 0 :(得分:0)

我们最终做了两个阶段的解决方案。我们将以前的年份加载到历史记录表中(一次加载或每年加载一次),然后每周加载当前年份,然后每天加载上个月+当前月份。限制数据使使用WHERE语句成为可能。而且我认为这已经足够使用。