On this page
PlanCache.listQueryShapes()
在本页面
Definition
PlanCache.
listQueryShapes
( )- 显示存在其缓存的查询计划的query shapes。
查询优化器仅缓存那些具有多个可行计划的查询形状的计划。
该方法仅可从特定集合的计划缓存对象获得;即
db.collection.getPlanCache().listQueryShapes()
Returns: | query shape个文档的数组。 |
---|
该方法包装planCacheListQueryShapes命令。
Required Access
在运行authorization的系统上,用户必须具有包括planCacheRead操作的访问权限。
Example
以下内容返回已缓存orders
集合计划的query shapes:
db.orders.getPlanCache().listQueryShapes()
该方法返回当前在缓存中的查询形状的数组。在示例中,orders
集合已缓存与以下形状关联的查询计划:
[
{
"query" : { "qty" : { "$gt" : 10 } },
"sort" : { "ord_date" : 1 },
"projection" : { }
},
{
"query" : { "$or" :
[
{ "qty" : { "$gt" : 15 }, "item" : "xyz123" },
{ "status" : "A" }
]
},
"sort" : { },
"projection" : { }
},
{
"query" : { "$or" : [ { "qty" : { "$gt" : 15 } }, { "status" : "A" } ] },
"sort" : { },
"projection" : { }
}
]
Note
并非所有查询都会自动将查询计划放入缓存中。如果当前没有带有缓存查询计划的查询形状,则db.collection.getPlanCache().listQueryShapes()
返回一个空数组。