CockroachDb 内存预算约束

CockroachDb memory budget constraint

我在我的 windows PC 上本地安装了 CockroachDb,当我 运行 一个特定的 select 查询时,我收到以下错误消息:

7143455 bytes requested, 127403581 currently allocated, 134217728 bytes in budget.

我已经阅读了一篇博客post here,但我还没有找到解决方案。如果您能帮助我提高预算限额,我将不胜感激。

2.0 和 2.0.2 之间的 CockroachDB 版本在 JSONB 列的内存计算中存在错误,导致此错误。该错误将在 6 月中旬发布的 2.0.3 版中修复。

作为解决方法,您可以重写此查询以提高效率(这可能会减少足够的内存使用量,即使有错误也能正常工作。即使没有,它也会加快查询速度当 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 还支持在 MySQL 和 PostgreSQL 中用于相同目的的 LIMIT 关键字。