在运行SQL文件时报错

【 TiDB 使用环境】生产环境 /测试/ Poc
【 TiDB 版本】
【复现路径】做过哪些操作出现的问题
运行插入语句SQL文件
【遇到的问题:问题现象及影响】
出现报错
Your query has been cancelled due to exceeding the allowed memory limit for a single SQL query. Please try narrowing your query scope or increase the tidb_mem_quota_query limit and try again.
由于超过了允许的内存限制,您的查询已被取消
【资源配置】进入到 TiDB Dashboard -集群信息 (Cluster Info) -主机(Hosts) 截图此页面
【附件:截图/日志/监控】

https://docs.pingcap.com/zh/tidb/stable/system-variables#tidb_mem_quota_query
参数调大一点

sql超过内存限制了,资源充足的话调整下tidb_mem_quota_query

:thinking:为什么我这边单条语句超过内存不是这么提示的?
但原因是一样的,都是语句使用的内存超过了tidb_mem_quota_query的限制

增加 TiDB 配置文件中的 tidb_mem_quota_query 参数的值,以扩大单个查询可使用的内存限制

tidb_mem_quota_query默认1g 不够了加到4g或者8g试试

加了以后为什么不生效呀
a6ed0b6175d85aed55b2f9fd8babbc3
0111aa1e9027f36f4a1de13df845640

用set加

SET GLOBAL tidb_server_memory_limit = “32GB”;

如何配置一条 SQL 执行过程中的内存使用阈值

使用系统变量 tidb_mem_quota_query 来配置一条 SQL 执行过程中的内存使用阈值,单位为字节。例如:

配置整条 SQL 的内存使用阈值为 8GB:

SET tidb_mem_quota_query = 8 << 30;

配置整条 SQL 的内存使用阈值为 8MB:

SET tidb_mem_quota_query = 8 << 20;

配置整条 SQL 的内存使用阈值为 8KB:

SET tidb_mem_quota_query = 8 << 10;
1 个赞

:joy:那个8KB多少有点危险,还记得之前有个同学就这么设置的,结果集群启动都启动不了,因为内部sql也被限制了~~~

所以可以跟单位加靠谱点

不是,是那位同学看到可以设置的那么小,他想试试设置小之后有什么效果。幸亏当时用的个人测试环境测试的。

回头我也试试,你们设置了多少就出问题了?

不是我,是社区的一个小伙伴,你可以设置8KB试试。 :stuck_out_tongue_winking_eye:

此话题已在最后回复的 60 天后被自动关闭。不再允许新回复。