1、9I安裝的時候默認值爲
共享池: 48MB
緩衝區高速緩存:24MB
JAVA池:32M
大型池:8
PGA:24
合計爲176MB
2\9I 安裝的時候調整爲100%
用於ORACLE的物理內存爲(2047MB)的百分比
當百分率爲100的時候
共享池: 333MB
緩衝區高速緩存:1000MB
JAVA池:32M
大型池:197
PGA:444
合計爲2046MB
3、自定義分配
IDEACENTER K330 物理內存 2.99GB
3.1 根據分配原則
SGA不超過1.7G,PGA+SGA不超過2G
shared_pool_size 200M--300M
log_buffer : 128K ---- 1M
large_pool_size 10M --- 50M
java_pool_size 30M
data buffer ,在做了前面的設置後,凡可以提供給oracle的內存
PGA : =(total_mem * 80%) * 20% (這裏的total_mem爲機器的內存 total_mem * 80%=分配給ORACLE的內存=2046) 計算所得409
3.2 實際分配
3.2.1 SGA
shared_pool_size 分配250
large_pool_size 分配 50
java_pool_size 分配 32
data buffer 分配 1200 mb
3.2.2
PGA : 分配444
以上合計爲 2016
數據庫字符集:ZHSGBK32
國家字符集:AL16UTF16
NLS_LENGTH_SEMANTICS=CHAR
以上設置
數據庫字符集:ZHSGBK32
國家字符集:AL16UTF16
NLS_LENGTH_SEMANTICS=CHAR
但是出現如下錯誤:
ORA-06502 PL/SQL Numeric or value error
原因:有一天你把BYTE改成了CHAR,然後去調用該存儲過程,你會發現報 ORA-06502 PL/SQL Numeric or value error錯誤,因爲雖然環境使用的是CHAR語義,
但是存儲過程裏還是使用的BYTE語義,此時你需要重要編譯該存儲過程,它後重新讀取當前SESSION的值,寫入代碼中。
處理:
1、
數據庫字符集:AL32UTF8
國家字符集:UTF8
2、忽略問題,然後用PL/SQL 工具重新編譯無效的存儲過程
3、備註
數據庫字符集在創建數據庫時指定,在創建後通常不能更改。在創建數據庫時,可以指定字符集(CHARACTER SET)和國家字符集(NATIONAL CHARACTER SET)。
<st1:chsdate year="1899" month="12" day="30" islunardate="False" isrocdate="False" w:st="on">2.4.1</st1:chsdate>
數據庫字符集
(1)用來存儲CHAR, VARCHAR2, CLOB, LONG等類型數據
(2)用來標示諸如表名、列名以及PL/SQL變量等
(3)用來存儲SQL和PL/SQL程序單元等
國家字符集:
(1)用以存儲NCHAR, NVARCHAR2, NCLOB等類型數據
(2)國家字符集實質上是爲oracle選擇的附加字符集,主要作用是爲了增強oracle的字符處理能力,因爲NCHAR數據類型可以提供對亞洲使用定長多字節編碼的支持,而數據庫字符集則不能。國家字符集在oracle9i中進行了重新定義,只能在unicode編碼中的AF16UTF16和UTF8中選擇,默認值是AF16UTF16
數據庫字符集:AL32UTF8
國家字符集:UTF8
NLS_LENGTH_SEMANTICS=CHAR
數據庫字符集:ZHSGBK32
國家字符集:AL16UTF16
NLS_LENGTH_SEMANTICS=CHAR
可以考慮調整數據塊爲 8k 8192
可以排序區 爲 640K