MongoDB檢視執行計畫

2021-09-13 04:05:30 字數 1728 閱讀 1388

一、概述

mongodb中的explain()函式可以幫助我們檢視查詢相關的資訊,查詢分析可以確保我們建立的索引是否有效,是查詢語句效能分析的重要工具。

二、explain()基本用法

explain()的用法是必須放在最後面,語法如下:

db.collecton.find().explain()
explain()常用是直接跟在find()函式後面,表示檢視find()函式的執行計畫,舉例:

mongodb enterprise mongos> db.emp.find(}).explain()

, "plannerversion" : 1,

"namespace" : "testdb.emp",

"indexfilterset" : false,

"parsedquery" :

},winningplan" : ,

"indexname" : "id_1",

"direction" : "forward",

},"rejectedplans" : [ ]

},"ok" : 1

}

引數說明:

以上我們看到的是explain()預設引數的情況,其實mongodb 3.0之後,explain的返回與使用方法與之前版本有了很大的變化,

3.0+版本的explain有三種模式,分別是:queryplanner、executionstats、allplan***ecution。常用的是queryplanner和executionstats模式

那我們再來看看executionstats這種模式

mongodb enterprise mongos> db.emp.find(}).explain("executionstats")

, "rejectedplans" : [ ]

},"executionstats" : ,

"ok" : 1

}

executionstats的引數說明:

另外一種模式allplan***ecution是用來獲取所有執行計畫,引數基本與以上的相同,這裡就不再詳細說明。

三、總結

原來explain()也是可以接收不同的引數,通過設定不同引數我們可以檢視更詳細的查詢計畫。

queryplanner:查詢計畫的選擇器,首先進行查詢分析,最終選擇乙個winningplan,是explain返回的預設模式

executionstats:為執行統計模式,返回winningplan的統計結果

allplan***ecution:為返回所有執行計畫的統計,包括rejectedplan

所以:我們在查詢優化的時候,只需要關注queryplanner, executionstats即可,因為queryplanner為我們選擇出了winningplan, 而executionstats為我們統計了winningplan的所有關鍵資料。

整體來說,通過explain()檢視執行計畫,分析查詢效能情況,可以幫助我們更好的分析和優化,必要的時候可以建立索引,提公升查詢效能。

sybase 檢視執行計畫

檢視語句的執行計畫 set showplan on set noexec on go select go set showplan off set noexec off go檢視儲存過程執行計畫 set showplan on go exec sp name go set showplan off ...

SybaseIQ 檢視執行計畫

在效能調優工作中,首要的事情是找出效能瓶頸。而針對資料庫應用,由於商用資料庫對上層應用來說是個黑盒,所以往往需要借助資料庫的一些介面或工具來了解資料庫的具體行為,並結合相關知識和業務進行調測。簡單來說,資料庫在執行乙個查詢之前,會為該查詢生成乙個最優 至少它這樣認為 的查詢計畫 query plan...

如何檢視執行計畫

如果plan table表不存在,執行 oracle home rdbms admin utlxplan.sql建立plan table表。1.explain plan forselect from 2.select from table dbms xplan.display 二.使用oracle第...