访问计划缓存快照

描述

访问计划缓存快照 SDB_SNAP_ACCESSPLANS 列出数据库中缓存的访问计划的信息。

每一个数据节点上每个缓存的访问计划为一条记录。

标示

SDB_SNAP_ACCESSPLANS

字段信息

字段名类型描述
NodeName字符串该访问计划所在的节点名("主机名:端口号")
GroupName字符串该访问计划所在的数据组名
AccessPlanID长整型该访问计划的 ID 标识
Collection字符串该访问计划所在的集合名
CollectionSpace字符串该访问计划所在的集合空间名
ScanType字符串该访问计划的扫描类型:1. "tbscan"为表扫描2. "ixscan"为索引扫描
IndexName字符串该访问计划使用的索引,表扫描时该项为空字符串""
UseExtSort布尔型该访问计划是否需要对扫描结果进行排序
CacheLevel字符串该访问计划的缓存级别:1. "OPT_PLAN_NOCACHE"为不进行缓存2. "OPT_PLAN_ORIGINAL"为缓存原访问计划3. "OPT_PLAN_NORMALZIED"为缓存泛化后的访问计划4. "OPT_PLAN_PARAMETERIZED"为缓存参数化的访问计划5. "OPT_PLAN_FUZZYOPTR"为缓存参数化并带操作符模糊匹配的访问计划
QueryBSON 对象该访问计划的匹配符
SortBSON 对象该访问计划的排序字段
HintBSON 对象该访问计划指定使用索引的提示
SortedIndexRequired布尔型该访问计划是否需要使用根据 Sort 排序的索引
EstFromStat布尔型该访问计划是否使用统计信息生成
HashCode整型该访问计划的 hash 值
Score浮点型该访问计划的评分
RefCount整型该访问计划正在被使用的查询个数
ParamPlanValid布尔型该访问计划是否参数化有效的访问计划
MainCLPlanValid布尔型该访问计划是否主表有效的访问计划
ValidParamsBSON 对象数组该访问计划已经生效的参数列表(ParamPlanValid 为 false 时显示)
ValidParams.Parameters数组该访问计划生效的参数
ValidParams.Score浮点数该访问计划生效的参数的评分
ValidSubCLsBSON 对象数组该访问计划已经生效的参数列表(MainCLPlanValid 为 false 时显示)
ValidSubCLs.Collection字符串该访问计划为主表访问计划时生效的子表名
ValidSubCLs.Parameters数组该访问计划生效的参数
ValidSubCLs.Score浮点数该访问计划生效的参数的评分
AccessCount长整型该访问计划使用次数累计
TotalQueryTime浮点型该访问计划的累计执行时间(单位:秒)
AvgQueryTime浮点型该访问计划的平均执行时间(单位:秒)
MaxTimeSpentQueryBSON 对象该访问计划执行时间最慢的一次查询信息
MinTimeSpentQueryBSON 对象该访问计划执行时间最快的一次查询信息

MaxTimeSpentQuery 和 MinTimeSpentQuery 对象的信息

字段名类型描述
ContextID长整型查询所在的上下文 ID
QueryType字符串查询的类型:1. "SELECT":数据查询2. "UPDATE":数据更新3. "DELETE":数据删除
QueryTimeSpent浮点型查询执行的时间(单位:秒)
ExecuteTimeSpent浮点型额外操作(UPDATE 或者 DELETE)执行的时间(单位:秒)
Parameters数组查询使用的参数
StartTimestamp字符串查询启动的时间戳
SelectorBSON 对象查询使用的选择符
Skip长整型查询需要跳过的记录个数
Return长整型查询需要最多返回的记录个数
Flag整型查询使用的标志位
DataRead长整型查询读取的记录个数
IndexRead长整型查询通过索引读取的记录个数
GetMores整型查询返回的结果集次数
ReturnNum长整型查询返回的记录个数
HitEnd布尔型查询是否返回所有需要的结果

Note:

  • 最慢和最快的查询 MaxTimeSpentQuery 和 MinTimeSpentQuery 只计算查询的 QueryTimeSpent,不计算查询的 ExecuteTimeSpent。
  • SdbQuery.explain() 的 Run 模式不计算在 QueryTimeSpent 、MaxTimeSpentQuery 和 MinTimeSpentQuery 中。

示例

  1. > db.snapshot( SDB_SNAP_ACCESSPLANS )
  2. {
  3. "NodeName": "hostname:11820",
  4. "GroupName": "group1",
  5. "AccessPlanID": 14,
  6. "Collection": "foo.bar",
  7. "CollectionSpace": "foo",
  8. "ScanType": "tbscan",
  9. "IndexName": "",
  10. "UseExtSort": false,
  11. "CacheLevel": "OPT_PLAN_PARAMETERIZED",
  12. "Query": {
  13. "$and": [
  14. {
  15. "a": {
  16. "$et": {
  17. "$param": 0,
  18. "$ctype": 10
  19. }
  20. }
  21. }
  22. ]
  23. },
  24. "Sort": {},
  25. "Hint": {},
  26. "SortedIndexRequired": false,
  27. "EstFromStat": false,
  28. "HashCode": -1411136567,
  29. "Score": 0,
  30. "RefCount": 0,
  31. "ParamPlanValid": true,
  32. "AccessCount": 5,
  33. "TotalQueryTime": 0.254869,
  34. "AvgQueryTime": 0.0509738,
  35. "MaxTimeSpentQuery": {
  36. "ContextID": 155,
  37. "QueryType": "SELECT",
  38. "Parameters": [
  39. 4
  40. ],
  41. "StartTimestamp": "2017-12-09-14.03.57.909232",
  42. "QueryTimeSpent": 0.060943,
  43. "ExecuteTimeSpent": 0,
  44. "Selector": {},
  45. "Skip": 0,
  46. "Return": -1,
  47. "Flag": 2048,
  48. "DataRead": 25000,
  49. "IndexRead": 0,
  50. "GetMores": 1,
  51. "ReturnNum": 0,
  52. "HitEnd": true
  53. },
  54. "MinTimeSpentQuery": {
  55. "ContextID": 157,
  56. "QueryType": "SELECT",
  57. "Parameters": [
  58. 2
  59. ],
  60. "StartTimestamp": "2017-12-09-14.03.59.073811",
  61. "QueryTimeSpent": 0.040419,
  62. "ExecuteTimeSpent": 0,
  63. "Selector": {},
  64. "Skip": 0,
  65. "Return": -1,
  66. "Flag": 2048,
  67. "DataRead": 25000,
  68. "IndexRead": 0,
  69. "GetMores": 1,
  70. "ReturnNum": 0,
  71. "HitEnd": true
  72. }
  73. }