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. }