如何利用JDBC啟動Oracle 自動追蹤(auto trace),jdbcoracle

來源:互聯網
上載者:User

如何利用JDBC啟動Oracle 自動追蹤(auto trace),jdbcoracle
     有時我們需要對執行SQL的具體執行過程做一個追蹤分析,特別是在應用程式效能最佳化的時候。Oracle兩個工具可以協助我們做好效能分析,一個是SQL_TRACE,一個是SESSION_EVENT。SQL_TRACE跟蹤SQL執行過程,如解析時間、執行時間、查詢時間等;SESSION_EVENT跟蹤執行過程的等待事件,如等待用戶端回應時間,等待本地磁碟IO事件等等。     開啟Oracle自動追蹤必須使用DBA許可權。     使用JDBC開啟SQL_TRACE的方法:     conn.prepareStatement("alter SESSION SET SQL_TRACE=TRUE"); ps.execute();     使用JDBC開啟SESSION_EVENT的方法:     開啟:ps=conn.prepareStatement( "ALTER SESSION SET EVENTS '10046 trace name context forever, level 12'"); ps.execute();     關閉:ps=conn.prepareStatement( "ALTER SESSION SET EVENTS '10046 trace name context off'");(在關閉串連前執行關閉追蹤) ps.execute();
下面是開啟這兩個追蹤得到的trace檔案:

      Oracle執行過程分析:

  • 在對執行sql的過程中,主要執行過程耗費在了Oracle的Fetch階段
  • Fetch的OCI調用次數為146次 ,耗費時間為50.49秒,查詢條數為145259條
       Oracle執行過程中的等待事件分析:
  • oracle伺服器向用戶端發送時等待時間為0,說明伺服器端網路傳輸等沒有問題
  • oracle伺服器等待用戶端響應總時間為5.92秒,說明用戶端處理資料及網路傳輸等需要耗費一定時間
  • oracle伺服器磁碟IO時間為48.37秒,說明主要時間耗在Oracle從磁碟中讀取資料區塊上
  • 把資料分批次發送給用戶端的時間耗費0.12秒,這個時間也是可以接受的



jdbc編程oracle驅動問題

oracle驅動包的問題,換一個。 或者我給你發一個。把你的郵箱發給我。給我發百度訊息 。
包引用沒問題,放在lib/ext下會自動添加到ClassPath路徑
參考資料:還有其他問題的話,給我發百度訊息
 
Java做資料庫連接池的時載入oracle的JDBC驅動時總是提示找不到驅動類

我聽說過這個問題,我在網上的視頻裡見過,我記得不太清楚了(好像是BUG吧),反正就是你的自己複製過去,它不會給你自動弄過去,你用Myeclipse就沒事了。。
 

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.