zoukankan      html  css  js  c++  java
  • 原:对DBF的文件和Oracle数据库在事务上进行对比

    还有些许遗漏,实验理论上并不十分严密!

    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

  • 相关阅读:
    Linux-第一天
    Hadoop学习10--常用命令记录帖
    C# asp.net repeater实现排序功能,自动排序,点击头部排序,点击列排序
    图片与字符之间的转换
    兼容浏览器 div固定浏览器窗口底部 浮动div
    解决QQ未启用状态,QQ留言图标未启用
    C#Cookie操作类,删除Cookie,给Cookie赋值
    vs2008bin下Debug bll Release文件 obj下的Debug bll Release文件区别
    asp.net限制了上传文件大小为..M,解决方法
    多文件上传ajax jquery
  • 原文地址:https://www.cnblogs.com/phoebus0501/p/1894495.html
Copyright © 2011-2022 走看看