TBSCAN的推演公式

TBSCAN 的推演公式将展示以下信息:

字段名类型描述
MthSelectivity浮点型估算的 TBSCAN 使用匹配符进行过滤的选择率
MthCPUCost整型估算的 TBSCAN 使用匹配符过滤一个记录的 CPU 代价
IOCost数组估算的 TBSCAN 的 IO 代价的公式及计算过程
NeedEvalIO 为 false 不需要计算
即各个数据页进行顺序扫描的代价总和
公式为:SeqReadIOCostUnit Pages ( PageSize / PageUnit )
CPUCost数组估算的 TBSCAN 的 CPU 代价的公式及计算过程
即各个记录从数据页中提取并进行匹配符过滤的代价总和
公式为:Records ( RecExtractCPUCost + MthCPUCost )
StartCost数组估算的 TBSCAN 的启动代价(内部表示)
公式为:TBScanStartCost
RunCost数组估算的 TBSCAN 的运行代价(内部表示)
公式为:IOCPURate IOCost + CPUCost
TotalCost数组估算的 TBSCAN 的总代价(内部表示)
公式为:StartCost + RunCost
OutputRecords数组估算的 TBSCAN 的输出记录个数
公式为:max( 1, ceil( Records * MthSelectivity ) )

示例

  1. "ScanNode": {
  2. "MthSelectivity": 1,
  3. "MthCPUCost": 0,
  4. "IOCost": [
  5. "SeqReadIOCostUnit * Pages * ( PageSize / PageUnit )",
  6. "1 * 74 * ( 65536 / 4096 ) ",
  7. 1184
  8. ],
  9. "CPUCost": [
  10. "Records * ( RecExtractCPUCost + MthCPUCost )",
  11. "100000 * ( 4 + 0 ) ",
  12. 400000
  13. ],
  14. "StartCost": [
  15. "TBScanStartCost",
  16. "0",
  17. 0
  18. ],
  19. "RunCost": [
  20. "IOCPURate * IOCost + CPUCost",
  21. "2000 * 1184 + 400000",
  22. 2768000
  23. ],
  24. "TotalCost": [
  25. "StartCost + RunCost",
  26. "0 + 2768000",
  27. 2768000
  28. ],
  29. "OutputRecords": [
  30. "max( 1, ceil( Records * MthSelectivity ) )",
  31. "max( 1, ceil( 100000 * 1 ) )",
  32. 100000
  33. ]
  34. }