tom 9I-10g中關於dmp和資料磊檔案以及pga的一點分析
Exp和imp的dmp:
關於oracle的匯入 匯出工具跟oracle的版本的概念關係一直是迷迷糊糊的,跟網友們的討論一樣:高版本相容低版本。
這個解釋應該是export的匯出版本應該低於或等於imp的匯入版本。例如oracle 9i的資料庫伺服器無法用oracle 10g的客戶端匯出,由於dmp檔案的imp是9I的,但是需要exp的版本卻是10g的,同樣還有10g客戶端匯出的dmp檔案無法匯入到oracle 9I的資料庫中。
Dmp檔案是平臺獨立的二進位制檔案,裡面儲存後設資料(create和alert語句)和資料本身,只要是oracle版本允許可以匯入匯出到任何平臺,但是由於在windows和檔案ftp傳輸中,會默地把dmp檔案當成文字檔案,這樣會破壞dmp檔案,所以在windows和檔案ftp傳輸中選擇二進位制傳輸。
資料磊檔案:
Oracle 10g推出了資料磊格式,資料磊格式也是跨平臺的二進位制檔案,包含有儲存為xml的後設資料(不是create和alter的語句),可能還包含資料,由於使用了xml,impdp和expdp有一些複雜的過濾和轉換功能。Dmp檔案後設資料create alter語句在匯入工具執行sql需要解析每一條sql,impdp只需要簡單的xml轉換就可以達到。
關於手動pga管理中排序sort_area_size測試
在Session A執行
sql>create table sess_stats(name varchar2(80),value number,diff number);
--建立表sess_stats記錄排序操作中uga和pga使用
SQL> alter session set workarea_size_policy=manual;
Session altered
SQL> alter session set sort_area_size=65536;--設定sort_area_size排序區為64KB
Session altered
SQL> select * from v$mystat where rownum=1;--記錄sid
SID STATISTIC# VALUE
---------- ---------- ----------
126 0 1
在執行排序sql之前在session B執行merge into sql語句記錄此前的記錄資訊
Session B:
Sql>merge into sess_stats
Using
(select name,value from v$statname a,v$sesstat b
Where a.statistic#=b.statistic#
And b.sid=$sid—輸出sid等於執行排序sql的sid
And (a.name like '%ga%' or a.name like '%direct temp%'))curr_stats
On(sess_stats.name=curr_stats.name)
When matched then
Update set diff=curr_stats.value-sess_stats.value,value=curr_stats.value
When not match then
Insert(name,value,diff) values(curr_stats.name,curr_stats.value,null);
/
Sql>Commit;
/
回到session A執行排序操作
Session A
set termout off
select * from t order by 1,2,3,4;
set termout on
執行完畢後再次在session b執行merge into更新記錄。
SQL> select * from sess_stats;
NAME VALUE DIFF
------------------------------ ---------- ----------
calls to kcmgas 5 2
session pga memory max 1302100 720896
session pga memory 581204 65536
session uga memory 221744 65464
session uga memory max 969932 682724
physical writes direct tempora 6108 3054
ry tablespace
physical reads direct temporar 6108 3054
y tablespace
可以看出在sort_area_size=64KB下,sql語句對臨時表空間執行了3054次讀和寫I/O,為了完成查詢和排序,oracle分配了排序區,pga和uga都增大,session uga memory max和session pga memory max 來執行排序sql,排序完畢後又回縮value的session uga memory和session pga memory。
類似當設定sort_area_size為1MB,相應的pga和uga 臨時表空間I/O
SQL> select * from sess_stats;
NAME VALUE DIFF
------------------------------ ---------- ----------
calls to kcmgas 5 0
session pga memory max 2416212 1114112
session pga memory 581204 0
session uga memory 221744 0
session uga memory max 1400096 430164
physical writes direct tempora 6801 693
ry tablespace
physical reads direct temporar 6801 693
類似使用1GB的sort_area_size排序區,記錄的pga和uga 臨時表空間I/O資訊
SQL> select * from sess_stats;
NAME VALUE DIFF
------------------------------ ---------- ----------
calls to kcmgas 5 0
session pga memory max 68345428 65929216
session pga memory 581204 0
session uga memory 287208 65464
session uga memory max 67331120 65931024
physical writes direct tempora 6801 0
ry tablespace
physical reads direct temporar 6801 0
y tablespace
自動pga記憶體管理:
儘可能充分的使用ram,而且儘量不會超過可用的pga_aggregate_target的大小。少量使用者時,會盡可能分配過多ram給使用者,隨著系統負載的增加,會最大限度使用記憶體,但是會減少每個使用者分配,然後隨著系統負載減少,為每個使用者分配的ram又將增加(但是出於系統記憶體需求,有時可能會大於這個值)
對於序列的session,每個工作區(排序區和雜湊區)最多隻能使用5%pga_aggregate_target。
並行查詢的session,工作區最多隻能使用30%pga_aggregate_target記憶體,每個並行程式最多隻能使用0.3pga_aggregate_target/parallel n。
少量使用者需要排序和雜湊時,oracle會分配更多的記憶體給少量使用者以減少磁碟I/O,而如果大量使用者需要排序和雜湊消耗記憶體時,oracle又會合理平衡的分配記憶體給相應使用者,在pga_aggregate_target的限制下充分使用記憶體。
[@more@]來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25362835/viewspace-1057351/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 關於資料檔案autoextend on的一點記錄
- tom 9I-10G的sga的多快取池 多塊和dual表的一點分析快取
- 關於資料檔案頭的檢查點SCN
- 關於SCO unix 系統下定時備份oracle資料庫dmp檔案(轉)Oracle資料庫
- dmp檔案的做成
- oracle 關於-資料檔案Oracle
- 關於資料檔案頭的檢查點SCN知識
- Golang - 關於 proto 檔案的一點小思考Golang
- 資料磊原理和工具
- TOM關於變異表的解決檔案
- 關於linux檔案系統的一些資料Linux
- 資料檔案大小和資料庫的關係資料庫
- 關於資料庫事務和鎖的一些分析資料庫
- 關於資料庫檔案最大數資料庫
- 關於收縮資料檔案的嘗試
- 隱藏屬性ID和保留特大資料夾名稱都是關於檔案系統中檔案和資料夾管理的不同方面。大資料
- 關於using backup controlfile(丟失控制檔案和資料檔案)
- 關於大資料和網際網路的一點想法薦大資料
- tomcat中主配置檔案連線資料庫Tomcat資料庫
- .net檔案的建立和web.config 關於資料庫Web資料庫
- 關於控制檔案與資料檔案頭資訊的說明(zt)
- 關於大資料技術的一點思考大資料
- 關於資料庫登陸名和資料庫使用者名稱的一點點心得資料庫
- 4.3.2.3 關於PDB$SEED資料檔案的屬性
- oracle匯入dmp檔案Oracle
- 關於主外來鍵表資料提交過程中的一點疑惑
- 3.1.2.1 關於資料庫初始化引數檔案和啟動的關係資料庫
- pga使用的一些資料
- 【中亦安圖】關於資料庫檔案損壞風險的提醒(3)資料庫
- 關於學習資料庫開發的一點建議和忠告資料庫
- 亮點在最後!29條關於資料分析和產品的冷笑話
- autotools —— autoconf和automake生成Makefile檔案(原始檔位於多個子資料夾)
- openfile解讀以及和latch的一點關係
- 2.5.10.2 關於資料庫時區檔案資料庫
- 關於Docx動態控制word模板檔案的資料
- 關於資料庫丟失控制檔案的測試資料庫
- 【kingsql分享】關於PGA的研究SQL
- 關於資料庫中的一些name資料庫