$planCacheStats
¶4.2版中的新功能。
返回集合的计划缓存信息。该阶段为每个计划缓存条目返回一个文档。
该$planCacheStats
阶段必须是管道中的第一阶段。该阶段将一个空文档作为参数,并具有以下语法:
注意
的$planCacheStats
聚合阶段优选在下面的方法和命令,已在4.2被弃用:
也可以看看
$planCacheStats
必须是聚合管道的第一步。
$planCacheStats
不允许进入:
$planCacheStats
需要阅读关注水平
local
。$planCacheStats
无法在mongos
实例上运行。在运行的系统上authorization
,用户必须具有planCacheRead
收集的特权。
对于每个计划高速缓存条目,该$planCacheStats
阶段将返回类似于以下内容的文档:
每个文档都包含各种查询计划和执行状态,包括:
领域 | 描述 |
---|---|
createdFromQuery |
包含导致该缓存条目的特定查询的文档;即 |
isActive |
指示该条目是活动的还是非活动的布尔值。
也可以看看 |
queryHash |
代表查询形状的哈希值的十六进制字符串。有关更多信息,请参见
explain.queryPlanner.queryHash |
planCacheKey |
十六进制字符串,表示用于查找与此查询关联的计划缓存条目的键的哈希。计划缓存键是查询形状和该形状当前可用索引的函数。有关更多信息,请参见
explain.queryPlanner.planCacheKey |
cachedPlan |
缓存计划的详细信息。请参阅explain.queryPlanner 。 |
works |
在查询计划者评估候选计划时,在试用期内查询执行计划执行的“工作单位”数。有关更多信息,请参见
explain.executionStats.executionStages.works |
timeOfCreation |
条目的创建时间。 |
creationExecStats |
执行状态文档的数组。该数组包含每个候选计划的文档。 有关执行状态的详细信息,请参见
|
candidatePlanScores |
数组中列出的候选计划的分数
creationExecStats 数组。 |
indexFilterSet |
一个布尔值,指示查询形状是否存在索引过滤器。 |
本节中的示例使用以下orders
集合:
在集合上创建以下索引:
注意
索引是部分索引,仅索引
字段大于或等于的文档。{ item: 1, price: 1 }
price
NumberDecimal("10")
对集合运行一些查询:
像该planCacheListQueryShapes
命令一样,该
$planCacheStats
阶段可用于获取存在缓存计划的所有查询形状的列表。的
$planCacheStats
聚合阶段优选在弃用PlanCache.listQueryShapes()
方法和弃用planCacheListQueryShapes
命令。
例如,以下使用$project
阶段仅输出createdFromQuery
字段和queryHash
字段。
该操作返回以下查询形状:
要返回计划缓存信息为特定查询造型,
$planCacheStats
舞台后面可以跟一个
$match
在planCacheKey
外地。
以下聚合管道使用$planCacheStats
后跟$match
和$project
来返回特定查询形状的特定信息:
该操作返回以下内容: