查询性能追踪

IoTDB 支持使用 TRACING 语句来启用/禁用对查询语句的性能追踪,默认处于禁用状态。用户可以使用性能追踪工具来分析某些查询中存在的潜在性能问题。性能分析的日志文件默认存储在 ./data/tracing 目录下。

启用 Tracing:

IoTDB> TRACING ON

禁用 Tracing:

IoTDB> TRACING OFF

由于一个 IoTDB 查询时间主要取决于查询的时间序列数、涉及访问的 Tsfile 文件数、需要扫描的 chunk 总数以及平均每个 chunk 的大小(指该 chunk 中包含的数据点的个数)。因此,目前性能分析包括的内容如下:

  • Start time
  • Query statement
  • Number of series paths
  • Number of sequence files
  • Statistics of each sequence file
  • Number of unSequence files
  • Statistics of each unSequence file
  • Number of chunks
  • Average size of chunks
  • Total cost time

示例

例如执行 select * from root,则 tracing 日志文件的内容会包括以下内容:

  1. Query Id: 2 - Start time: 2020-06-28 10:53:54.727
  2. Query Id: 2 - Query Statement: select * from root
  3. Query Id: 2 - Number of series paths: 3
  4. Query Id: 2 - Number of sequence files: 1
  5. Query Id: 2 - SeqFile_1603336100446-1-0.tsfile root.sg.d1[1, 10000]
  6. Query Id: 2 - Number of unsequence files: 1
  7. Query Id: 2 - UnSeqFile_1603354798303-2-0.tsfile root.sg.d1[9, 1000]
  8. Query Id: 2 - Number of chunks: 3
  9. Query Id: 2 - Average size of chunks: 4113
  10. Query Id: 2 - Total cost time: 11ms

为了避免多个查询同时执行导致输出信息乱序,在每条输出信息前均增加了该次查询的 Query Id,用户可以使用 grep "Query Id: 2" tracing.txt 来提取某次查询的所有追踪信息。