gaussdb 【FAQ_006】【limit查询超时】

问题现象

在执行含有LIMIT Clause的查询的时候,有的时候会遇到查询失败,并给出如下的报错的情况。

smartcare=# select * from t1 limit 1;
WARNING:  timeout while waiting for response
ERROR:  Failed to read response from Datanodes datanode1 when ending query

可能原因

  • 某一个或几个DataNode状态不正常,比如挂掉,导致DataNode不能正常给Coordinator发送数据。
  • 某一个或几个物理节点的磁盘IO占满,分配给查询的IO不足,在指定的时间段内(目前是20S)没有向Coordinator发送数据,导致Coordinator误认为DataNode断开。
  • 某一个或几个DataNode上的查询执行时间比较长,在指定的时间段内(目前是20S)没有向Coordinator发送数据,导致Coordinator误认为DataNode断开。

操作步骤

  • 首先用cm_ctl query -v检查节点状态,如果报错信息指定的DataNode的状态异常,如果节点挂掉等,对节点进行修复;如果节点状态正常,执行第二步。
  • 查看报错信息中DataNode所在物理节点的IO状态(在linux平台下可以用iostat等系统命令查看),如果磁盘空间的IO被占满,那么分析磁盘IO紧张的原因,把磁盘IO降下来,再执行查询;如果磁盘IO状态正常,执行第三部。
  • 如果前两部都没有问题,那么一般是因为出错的DataNode上的执行计划过大,导致执行时间过长,这种情况只能通过优化SQL语句来解决。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值