排查查询问题
排除返回意外结果的SQL和InfluxQL查询故障。
为什么我的查询没有返回数据?
如果查询没有返回任何数据,可能是由于以下原因:
您的数据超出了查询中的时间范围(或其他条件)——例如,InfluxQL
SHOW TAG VALUES命令使用默认的时间范围为1天。查询(InfluxDB 服务器)超时。
查询客户端超时。
查询返回类型不受客户端库支持。 例如,数组或列表类型可能不受支持。 在这种情况下,使用
array_to_string()将数组值转换为字符串—例如:SELECT array_to_string(array_agg([1, 2, 3]), ', ')
如果查询超时或返回错误,可能是由于以下原因:
- 一个错误的请求
- 服务器或网络问题
- 它查询了太多数据
理解 Arrow Flight 响应 和查询的错误信息。
优化慢或昂贵的查询
如果查询速度慢或使用了过多的计算资源,请限制查询的数据量。
查看如何优化查询。
分析您的查询
使用以下工具来检索系统查询信息,分析查询执行,并查找性能瓶颈:
请求帮助以解决查询问题
一些瓶颈可能源于次优的查询 执行计划,并且在您的控制范围之外——例如:
- 排序(
ORDER BY)已经排序的数据 - 从对象存储中检索大量小型 Parquet 文件,而不是更少的较大文件
- 查询许多重叠的Parquet文件
- 执行高数量的表扫描
如果您按照步骤优化和排查查询问题,但它仍然无法满足性能要求,请请求帮助进行故障排除。拥有InfluxDB Cloud Serverless 年度支持合同的客户可以联系InfluxData支持以获得帮助。
查询跟踪日志
目前,客户无法为InfluxDB Cloud Serverless集群启用跟踪日志记录。 InfluxData工程师可以使用查询计划和跟踪日志记录来帮助确定查询中的性能瓶颈。
如果您按照步骤进行优化和故障排除查询,但仍未达到性能要求,请请求帮助进行故障排除。拥有InfluxDB云无服务器年度或支持合同的客户可以联系InfluxData支持以获得帮助。