利用 Oracle EM 企業管理器 進行oracle SQL的優化(自動生成索引) ##應用情景 項目中有大量的SQL,尤其是涉及到統計報表時,表關聯比較多,當初開發建表時也沒搞好索引關聯的,上線後發現查詢很低。Oracle自帶的EM控制台帶有自動優化功能,能給出優化方案,本人主要利用其來給出索引的建立方案,應用上後SQL查詢效率大大提高。本人機器上安裝的是oracle 11g ##啟動EM的環境條件 1. 安裝並正常啟動oracle 11g 2. 確認oracle控制台的服務是啟動的 ![Console服務](http://images.cnitblog.com/blog/84053/201402/141653379239612.jpg) 然後輸入地址 https://localhost:1158/em 進入em 企業管理器控制台,一般在開始菜單中也能找到 ##操作步驟 ###登陸 以正常用戶(非DBA)登陸進EM ![EM登陸界面](http://images.cnitblog.com/blog/84053/201402/141651144402378.jpg) ###進入功能界面 找到下面的**SQL 工作表** ![SQL 工作表](http://images.cnitblog.com/blog/84053/201402/141651183117795.jpg) ###輸入要優化的SQL 在左邊的**SQL命令**中輸入要優化的SQL語句,在右邊點擊**執行** ![](http://images.cnitblog.com/blog/84053/201402/141651223111484.jpg) ###調度SQL優化指導 執行完畢之後,在結果集的最右邊有**調度SQL優化指導** ![調度SQL優化指導](http://images.cnitblog.com/blog/84053/201402/141651280807744.jpg) ###提交方案 打開另外一個頁面,在這個頁面再提交(PS:這裡的參數應該可以修改) ![提交方案](http://images.cnitblog.com/blog/84053/201402/141651314662847.jpg) ###選擇方案 根據你的SQL及數據庫表設計,會生成不同的方案,選擇一個方案,並點擊實施,我一般選擇**索引**,有可能不需要優化或者有其他情況。 ![選擇方案](http://images.cnitblog.com/blog/84053/201402/141651348314407.jpg) ###顯示SQL 本人習慣把SQL拿出來執行,也方便進行記錄保存,故會先點擊**顯示SQL** ![顯示SQL](http://images.cnitblog.com/blog/84053/201402/141651383784024.jpg) ###執行SQL 然後把SQL放到執行環境中執行,並記錄進修改記錄中 ![執行SQL](http://images.cnitblog.com/blog/84053/201402/141651420097370.jpg)