原:對DBF的檔案和Oracle資料庫在事務上進行對比

來源:互聯網
上載者:User

還有些許遺漏,實驗理論上並不十分嚴密!

1、  交易隔離等級設定

Oracle有兩種交易隔離等級,分別是Connection.TRANSACTION_READ_COMMITTED(讀已提交)和Connection.TRANSACTION_SERIALIZABLE(串列讀)。如果設定隔離等級出錯,會拋異常如下java.sql.SQLException: 僅 READ_COMMITTED 和 SERIALIZABLE 是有效交易處理級。

 

 

DBF僅僅支援Connection.TRANSACTION_READ_COMMITTED(讀已提交),其它類型的資料庫交易隔離等級,當前使用的驅動不支援,會拋異常。

 

 

2、  在開啟事務情況下的對比:

實驗一:程式中開兩個線程,一個批量提交(每次插入100條資料),一個去讀資料庫。原始表中資料為空白。

 

Oracle在事務開啟時,如果沒有做commit操作,其它線程是不會讀到未提交的資料的。在這種情況下,讀資料的線程每次讀出的資料數目都是100的整數。另外加上刪除線程以後也是一樣的。

第:1次查詢

查詢影響資料數目:0

第:2次查詢

查詢影響資料數目:0

第:3次查詢

查詢影響資料數目:0

第:4次查詢

查詢影響資料數目:100

第:1次插入

第:5次查詢

查詢影響資料數目:100

第:2次插入

第:6次查詢

查詢影響資料數目:200

第:7次查詢

查詢影響資料數目:300

第:8次查詢

查詢影響資料數目:300

第:9次查詢

查詢影響資料數目:300

第:10次查詢

查詢影響資料數目:300

第:11次查詢

查詢影響資料數目:300

 

 

而對於DBF資料庫來說,雖然事務開啟了,但是其它線程可以讀到當前線程未提交的資料。理論上來說,讀取資料的線程每次讀出的資料個數應該是100的倍數,但是實際情況不是這樣的。運行結果如下:

查詢影響資料數:0

查詢影響資料數:0

查詢影響資料數:24

查詢影響資料數:43

查詢影響資料數:57

查詢影響資料數:75

查詢影響資料數:93

插入影響資料數:100

查詢影響資料數:100

查詢影響資料數:100

查詢影響資料數:120

查詢影響資料數:138

查詢影響資料數:155

查詢影響資料數:169

查詢影響資料數:187

插入影響資料數:100

查詢影響資料數:200

根據測試結果來看,事務設定的隔離等級似乎沒有生效,讀到了寫資料的線程沒有提交的資料,沒有達到預期的不讀中間資料的目的。

 

 

 

注意:

dbf一種特殊的檔案格式!表示資料庫檔案,Foxbase,Dbase,VisualFoxPro,等資料庫處理系統所產生的資料庫檔案! 本身並不是資料庫。

如果說需要用到傳統的資料庫事務,那麼可不可以有一個中間過程,程式操作在傳統的大型資料庫Oracle或者SQL Server上進行,然後最後匯出成DBF檔案。通過預存程序或者程式。

相關參考文獻如下:

http://wenku.baidu.com/view/4965352b3169a4517723a33f.html

http://wen-xudong7.javaeye.com/blog/409181

http://tech.it168.com/oldarticle/2006-07-18/200607181949046.shtml

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

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.