優化SQLhtml
SQL開發人員從源代碼中發現一條跑得很慢的SQL, 如何優化?sql
DBA從AWR報告中發現一條跑得很慢的SQL,沒有源代碼或者不想修改源代碼怎麼辦?數據庫
SQL自動優化工具SQL Tuning Expert Pro for Oracle服務器
下載: https://www.tosska.cn/tosska-sql-tuning-expert-pro-tse-pro-for-oracle-download-free-trial-zh/網絡
產品介紹: https://www.tosska.cn/tosska-sql-tuning-expert-pro-tse-pro-for-oracle-zh/oracle
執行計劃運維
具體介紹以前,咱們先要了解什麼是執行計劃。 編輯器
執行計劃是數據庫系統根據SQL源碼和相關對象的統計資料產生的查詢方案。在數據庫服務器硬件環境和網絡肯定的狀況下,SQL的執行計劃決定了SQL的性能。工具
最佳實踐post
1. 打開軟件Tosska SQL Tuning Expert Pro for Oracle;
2. 鏈接數據庫;
3. 點擊 「優化SQL」 右邊的+號,建立一個會話;
4. 在SQL編輯器中,輸入須要優化的SQL
5. 點擊「自動優化SQL」按鈕, 選擇測試運行的方式,點擊」確認「按鈕以後,開始產生大量的等價SQL並自動測試運行;
6. 工具產生了205條等價SQL,咱們能夠看到目前最優的SQL是 SQL 116, SQL執行時間從6.07秒提高到0.06秒。
我對這個優化結果很是滿意了,因而點擊「中止」 中止優化。
原來的SQL執行時間: 6.07 秒
最優的等價SQL執行時間: 0.06 秒
7. 若是您是SQL開發人員,選中最快的 SQL 116, 複製 SQL文本,粘貼到源代碼中替換原始SQL,而後編譯程序,調優就完成了。
若是您是運維DBA,沒有源代碼或者不想修改源代碼,忽略本步驟,執行步驟8, 9, 10, 11;
8. 選中最優的SQL 116, 點擊 部署 SQL Patch, 用最優的等價SQL的執行計劃調整原始SQL的執行計劃
9. 在部署SQL Patch 窗口中,點擊部署按鈕;
10. 關閉「部署SQL Patch」窗口以後,原始SQL的執行計劃已經發生變化,SQL Tuning Expert 提醒咱們測試運行原始SQL來確認調優效果。
選中原始SQL, 點擊「測試運行當前SQL」
11. 神奇的事情出現了。咱們沒有改變原始SQL,可是原始SQL的執行時間由原來的 6.07秒變成了如今的0秒。
結論: