深入淺出等待事件和效能診斷05

dotaddjj發表於2012-01-13

明天就是公司年終晚會,這大半個月來天天練舞也夠累的,突然發現自己在ITPUB有大半個月沒有發帖子也沒去關注了,快點調整自己吧也希望明天的年會表演都還順利,不虛度每一個年華吧,畢竟練舞還是付出了很多時間的,特別是對於自己這種手腳不是很靈活的同志,比學oracle還難。

關於autotrace開啟查詢sql執行計劃時,其實原session用於sql查詢輸出,另外內嵌了一個session來統計資訊

Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production

With the Partitioning, OLAP and Data Mining options

SQL> set autotrace off;

SQL> select sid,serial#,username from v$session where username is not null;

SID SERIAL# USERNAME

---------- ---------- ------------------------------

134 5 SYSMAN

138 14 SYSMAN

141 8 DBSNMP

145 33 DBSNMP

158 8 SYSMAN

159 1965 XIAOYU

已選擇6行。

SQL> set autotrace on

SQL> select sid,serial#,username from v$session where username is not null;

SID SERIAL# USERNAME

---------- ---------- ------------------------------

134 5 SYSMAN

138 14 SYSMAN

141 8 DBSNMP

145 33 DBSNMP

154 2966 XIAOYU

158 8 SYSMAN

159 1965 XIAOYU

已選擇7行。

進一步對這兩個session的程式追蹤發現這兩個session由一個程式引發建立,這也就是一個程式可能對應多個session連線。

SQL> select a.sid,a.username,a.paddr,b.pid,b.spid from v$session a,v$process

2 where a.paddr=b.addr and a.sid in (154,159);

SID USERNAME PADDR PID SPID

---------- ------------------------------ -------- ---------- ------------

154 XIAOYU 26256694 15 3920

159 XIAOYU 26256694 15 3920

又看到pub的帖子上說到了關於expimp1T左右資料的遷移,其實自己也沒做過,但是效率肯定不可觀,拋開I/O不談,預設情況下,exp需要透過磁碟到sga然後到pga(如果沒有指定direct=y,同樣imp也是反向操作。如果用expdp impdp資料磊工具,指定parallel=n也就是cpu數目,例如cpu5個,然後指定filesize=2048Mdumpfile=dbfile01dbfile02dbfile03dbfile04dbfile05,開啟多個worker並行匯出到多個檔案中,由於又是呼叫的oracleAPI的內部作業機制,效能提升會上一個數量級。

也順便說一下關於asmm管理下,db_nk_cache_size 固定sga log buffer size db_recycle_cache_size等非自動調整的記憶體元件並不在asmmsga_target自動動態管理,而是由使用者動態手工調整,相應別的能自動動態調整的元件比如cache_buffer_sizeshared_pool_size的大小是需要由sga_target減去非動態自動調整元件記憶體大小,可以參考oracle_concept關於sga管理的簡介。

[@more@]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25362835/viewspace-1057126/,如需轉載,請註明出處,否則將追究法律責任。

相關文章