在 Amazon Redshift 上,并发查询是否会影响彼此的性能?
例如,假设有两个查询:一个在一个相对较小的表(~5m 行)上检索所有行,另一个在一个大表(~500m)行上。两个表具有相同的字段,都没有压缩。两个查询都检索各自表中的所有数据以计算其结果。没有联接或过滤器。两个查询都检索大约 2-4 个字段以进行计算。
小查询自行运行,大约 700 毫秒后返回。但是,在运行大型查询时(这本身需要几分钟),小型查询会在 4-6 秒内返回。
这是在具有单个 XL 节点的集群上观察到的行为。
这是预期的行为吗?是否有配置设置可以保证小查询的性能一致性,即使大查询正在运行?
最佳答案
复制粘贴自:https://forums.aws.amazon.com/thread.jspa?threadID=137540#
I've performed some concurrent query benchmarking.
I created a straightforward query which by itself took about a minute to run. I then ran one of those queries at once, then two, them three, etc, and timed each query.
Each query basically halved database performance - e.g. what you'd expect; double the load, halve the performance.
Actually, it's a bit better than halving - you get about an extra 10% performance.
This performance behaviour held true up to 5 concurrent queries, which is the max number of concurrent queries configured on the database I was working with. If I ran six queries, the final query could not execute until one of the first queries had finished and freed up a slot.
Finally, vacuum acts much like a normal query - it halves performance. It's not special.
Actually, vacuum is something more than halving - it's equivelent to a pretty heavy query.
关于amazon-web-services - 亚马逊 Redshift 中的并发查询性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19403248/