小编Ger*_*fer的帖子

在大桌面上的第一次查询调用非常缓慢

我有一个问题,感觉它需要花费更多的时间.这仅适用于给定参数集的第一个查询,因此在缓存时没有问题.

我不确定会发生什么,但是,考虑到设置和设置,我希望有人可以对几个问题有所了解,并提供一些有关如何加快查询速度的见解.该表格相当大,Postgres估计其中大约155963000(14 GB).

询问

    select ts, sum(amp) as total_amp, sum(230 * factor) as wh
    from data_cbm_aggregation_15_min
    where virtual_id in (1818) and ts between '2015-02-01 00:00:00' and '2015-03-31 23:59:59'
    and deleted is null
    group by ts
    order by ts
Run Code Online (Sandbox Code Playgroud)

当我开始研究这个查询时花了大约15秒,经过一些更改后我已经达到了大约10秒,这对于像这样的简单查询似乎仍然很长.下面是结果explain analyze: http://explain.depesz.com/s/97V1.请注意GroupAggregate返回相同行数的原因是此示例仅virtual_id使用了一行,但可能会有更多行.

表和索引

正在查询的表,它每15分钟插入一次值

CREATE TABLE data_cbm_aggregation_15_min (
  virtual_id integer NOT NULL,
  ts timestamp without time zone NOT NULL,
  amp real,
  recs smallint,
  min_amp real,
  max_amp real,
  deleted boolean,
  factor real DEFAULT 0.25,
  min_amp_ts …
Run Code Online (Sandbox Code Playgroud)

postgresql configuration query-optimization postgresql-9.2 postgresql-performance

4
推荐指数
1
解决办法
1202
查看次数