首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在postgres慢得有多慢?

在postgres慢得有多慢?
EN

Database Administration用户
提问于 2014-04-13 20:05:45
回答 2查看 907关注 0票数 3

我第一次和postgres合作。我有大量的中小型数据分析的经验(即适合于内存的内容,可以在R、Stata、Matlab等中进行分析),但我现在第一次使用大数据(300-750 am )。

因此,我不知道事情要花多长时间。我认为我的数据库表现很差,但我从来没有在这些规模上工作过,我真的不知道。

因此,我的问题是:即使是基本的查询,我在237 on表上至少要花8个小时。真空需要6小时。和一个查询提取不同的值对:

代码语言:javascript
复制
CREATE TABLE UserPairs AS
SELECT DISTINCT a, group_a, sum(quantity) FROM cdr GROUP BY (a, group_a) HAVING type = 'DATA' AND group_a IS NOT NULL;

在我流产之前跑了8个小时。

试图在主列上构建4个哈希索引的尝试运行了24小时,然后崩溃。

硬件:3核,12 gb内存Windows 8服务器VM。(我知道,但我无法控制我的硬件。长话短说)。

因此,基本上:在一个数量级内,对于这样大小的表,我应该期望基本查询使用多长时间?

如果这看起来很离谱,我该如何获得更精确的基准呢?我现在正在运行pgbench,但是找不到关于如何解释结果的资源。这个利斯特瑟夫交换表明没有任何结果存储库.

  • 15亿行。
  • 设置是默认的,类似于work_mem = 1mb,maintanence_work_mem =16 1mb。
  • IO系统:它是一个VM,所以磁盘只是一个"VMware虚拟磁盘SCSI磁盘设备“,但是Performance说avg /transfer是0.010秒,平均磁盘队列长度是2.16。
EN

回答 2

Database Administration用户

回答已采纳

发布于 2014-04-14 04:12:53

你必须首先设定期望--这样的屏幕应该在1秒内完成每个动作,所有动作在5秒内完成,以此类推。例如,搜索屏幕应该在3秒内检索结果,预订操作(订票)应该在30秒内完成等等。

然后努力实现这些目标。这就是你想要的“正常”表现。现在去实现那些目标吧。数据库可能是您的瓶颈,但可能不是。要识别数据库端的问题,请尝试使用像这样的工具。这将告诉您哪些查询需要时间。

顺便说一句,8小时的查询在任何情况下都是不可接受的。尝试工具帕格特,看看是否有优化参数的范围。

票数 4
EN

Database Administration用户

发布于 2014-04-13 20:59:33

如果要分组,则不需要distinct,并将条件从having移动到where

代码语言:javascript
复制
select a, group_a, sum(quantity)
from cdr
where type = 'DATA' and group_a is not null
group by a, group_a;
票数 2
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/63104

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档