Oracle 高階程式設計 01 ~

weixin_34391854發表於2013-01-31

PGA

程式全域性區域( Program Global Area ) 是 只對一個段杜的伺服器程式可用的記憶體區域,PGA 包含的條目,使用者變數和一個單獨使用者的SQL語句的遊標資訊,例如目前已檢索的行數。

在 ORACLE 10g , 可以簡單的為 SGA 和 PGA 設定一個最大值, ORACLE 自己會負責這些區域每個元件的分配。

NCHAR 和 NVARCHAR2 資料型別

oracle 資料庫可用於不同的語言儲存字元資料,包括中文,日文等等,這些語言使用 NCHAR 和 NVARCHAR2 資料型別。


oracle 資料庫如何對 SQL 語句做出響應 ?

image

以上是 oracle 對 sql 的響應情況,其中 陰影部分為可選。即便是開發人員沒有使用顯示遊標,oracle伺服器也預設使用遊標,

1. 連線到資料庫: 是通過 TCP/IP 來與 oracle 伺服器的監聽器接收,這就是會話,一般每個會話都有程式。

2. 建立遊標: PGA 中包含遊標資訊,不需要顯示開啟遊標來執行一個SQL語句,因為oracle資料庫可以自動執行該功能。

對於DDL和寫操作,語句載入到共享的SQL區域,就可以開始執行了,對於查詢來說,語句必須經過一步額外優化。oracle會確認在記憶體中是否存在語句。

使用繫結變數的好處:

例如 : SELECT ENAME FROM EMP WHERE EMP_ID = 7

      SELECT ENAME FROM EMP WHERE EMP_ID = 5

一看上邊兩句就用該使用同一個優化計劃,但是實際不是,因為 條件限制,而如果使用繫結變數,就可以使用同一個優化計劃。

      SELECT ENAME FROM EMP WHERE EMP_ID = :empID


相關文章