SQL優化系列(一)- 優化SQL


 優化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/

 

執行計划

具體介紹之前,我們先要了解什么是執行計划。 

執行計划是數據庫系統根據SQL源碼和相關對象的統計資料產生的查詢方案。在數據庫服務器硬件環境和網絡確定的情況下,SQL的執行計划決定了SQL的性能。

 

最佳實踐

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秒。

     

 

 

    結論:

  • 對於SQL開發人員來說,優化SQL后,用最優的等價SQL替換原始SQL;
  • 對於運維DBA來說,在不修改SQL源代碼的情況下,為原始SQL部署了最優的執行計划,成功優化了SQL的性能。    

     

   SQL優化神器 - Tosska SQL Tuning Expert for Oracle

   SQL優化系列(二)- 優化Top SQL

   SQL優化系列(三)- 用最少的索引獲得最大的性能提升

    


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM