CockroachDb内存预算约束

时间:2018-05-28 08:05:29

标签: cockroachdb

我的Windows PC上有本地安装的CockroachDb,当我运行特定的选择查询时,收到以下错误消息:

  

请求7143455个字节,当前已分配127403581,预算中为134217728个字节。

我已阅读博文here,但我还没有找到解决方案。我将非常感谢如何提高预算限额。

1 个答案:

答案 0 :(得分:2)

2.0和2.0.2之间的CockroachDB版本在JSONB列的内存记帐中存在错误,从而导致此错误。该错误将在6月中旬的版本2.0.3中修复。

作为一种解决方法,您可以重写此查询以提高效率(这可能会降低内存使用率,甚至可以使用该bug。即使它没有,它也会在2.0时加快查询速度.3可用)。如果我正确地阅读您的查询,这相当于

SELECT ID, JsonData,PrimaryIDs,IsActive,IsDeleted FROM "TableName"
    WHERE LOWER(JsonData->>'Name') LIKE '%transaction%'
    ORDER BY ID OFFSET 0 FETCH NEXT 100 ROWS ONLY

带有ROW_NUMBER()的子查询与旧版本的SQL Server一起使用,但自SQL Server 2012以来,OFFSET 0 FETCH NEXT N ROWS ONLY版本已可用并且为more efficient

语法OFFSET 0 FETCH NEXT N ROWS ONLY语法来自SQL标准,因此它应该适用于大多数数据库。 CockroachDB还支持LIMIT关键字,它在MySQL和PostgreSQL中用于同一目的。