我启用了分析模式 2(所有事件)。我的想法是编写一个脚本,它将遍历所有查询并执行解释计划,并查看是否有任何查询不使用索引。但是这是不可能的,因为我在 system.profile 中看不到任何排序信息。为什么这样?
谢谢
更新:
想象一下,您有一个用户集合。你已经在这个集合上创建了一个索引:user(name, createdAt)。现在我想找出一些按时间排序的用户。在 system.profile 中,查询的第二部分(排序/分页)不会被保存,但是了解使用了哪些排序操作非常重要,因为它会影响性能和索引选择。所以我的目的是创建一个脚本,它将遍历 system.profile 中的所有语句并执行解释计划并查看是否使用索引。如果没有,我可以在执行集成测试时自动捕获所有新的/不可靠的查询。