gpt4 book ai didi

sql - 创建表时出现内存不足错误,但 SELECT 有效

转载 作者:行者123 更新时间:2023-12-03 09:58:18 24 4
gpt4 key购买 nike

我正在尝试使用 CREATE TABLE AS 创建一个表,这给出了以下错误:

[Amazon](500310) Invalid operation: Out Of Memory: 
Details:
-----------------------------------------------
error: Out Of Memory:
code: 1004
context: alloc(524288,MtPool)
query: 6041453
location: alloc.cpp:405
process: query2_98_6041453 [pid=8414]
-----------------------------------------------;

每次执行查询时都会出现此错误,但只执行 SELECT查询的一部分(没有 CREATE TABLE AS )工作正常。结果大约有 38k 行。但是我发现 有很大的不同返回的字节数 在一张 table 上的顺序扫描中。

选择

enter image description here
enter image description here

创建表作为选择
enter image description here
enter image description here

我无法理解为什么这两种情况之间存在如此大的差异以及可以采取哪些措施来减轻这种差异。我也尝试创建一个 TEMP TABLE但这也会导致内存错误。

我不太了解查询计划(从来没有找到 Redshift 的详细指南,所以如果你能链接到一些资源,那将是一个奖励)。

更新 : 还尝试先创建表,然后使用 SELECT 插入数据,这也会产生相同的错误。

更新 2 : 试过 set wlm_query_slot_count to 40;甚至 50但仍然是同样的错误。

最佳答案

在我们的集群更新到最新版本 (1.0.10694) 后,我们遇到了类似的问题。

有帮助的两件事:

  • 更改 WLM 以向查询分配更多内存(在我们的示例中,
    我们切换到 WLMAuto )
  • 分配一个 higher query_slot_count to your query :set wlm_query_slot_count to 2;分配 2 个查询槽
    例子。

  • 我们怀疑 AWS 可能在最近的更新中改变了内存管理。一旦我们收到回复,我会更新。

    关于sql - 创建表时出现内存不足错误,但 SELECT 有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58536515/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com