熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Oracle >> 正文

oracleSQL語句執行過程

2013-11-13 15:43:12  來源: Oracle 

  Oracle中SQL語句執行過程中Oracle內部解析原理如下:

  當一用戶第一次提交一個SQL表達式時Oracle會將這SQL進行Hard parse這過程有點像程序編譯檢查語法表名字段名等相關信息(如下圖)這過程會花比較長的時間因為它要分析語句的語法與語義然後獲得最優化後的執行計劃(sql plan)並在內存中分配一定的空間保存該語句與對應的執行計劃等信息

  當用戶第二次請求或多次請求時Oracle會自動找到先前的語句與執行計劃而不會進行Hard parse而是直接進行Soft parse(把語句對應的執行計劃調出然後執行)從而減少數據庫的分析時間

  注意的是Oracle中只能完全相同的語句包大小寫空格換行都要求一樣時才會重復使用以前的分析結果與執行計劃

  分析過程如下圖

  

  對於大量的頻繁訪問的SQL語句如果不采用Bind 變量的方式哪Oracle會花費大量的Shared latch與CPU在做Hard parse處理所以要盡量提高語句的重用率減少語句的分析時間通過了解Oracle SQL語句的分析過程可以明白Oracle的內部處理邏輯並在設計與實現上避免

  在用JDBC或其它持久化數據(如HibernateJDO等)操作時盡量用占位符(?)


From:http://tw.wingwit.com/Article/program/Oracle/201311/17192.html
  • 上一篇文章:

  • 下一篇文章:
  • 推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.