Yesky首页| 产品报价| 行情| 手机 | 数码 | 笔记本 | 台式机 | DIY硬件 | 外设 | 网络 | 数字家庭 | 评测 | 软件 | e时代 | 游戏 | 图片 | 壁纸 | 群乐 | 社区 | 博客 | 下载
软件频道>程序开发>JavaVBVCDelphiC/C++Web开发微软专栏移动数据库程序人生软件工程|Comet程序开发
您现在的位置: 天极网 > 开发频道 > 测试SimpleSQL数据库
全文
群乐:开源运动

测试SimpleSQL数据库

2008-04-02 10:53 作者: 来自网络 出处: 天极网 责任编辑:>郑重

  去年10月份就下载了一个SimpleSQL数据库在硬盘上,一直没有好好去摆弄摆弄,昨晚看到它,就想测测它的性能,于是就动手写点简单程序测了一下,立此存照一下。

  简单介绍一下SimpleSQL是何物。SimpleSQL(下面简称为SSQL)是一个JAVA开发的单文件关系数据库,可以嵌入使用,可以在内存中保持数据,也可以以C-S模式使用,还可以用作其他多个数据库的代理,这是SSQL比较有意思的特点。下面的图表示出了SSQL的几种工作方式:

  

55

  从这些工作模式来看,SSQL与HSQL很象,但我感觉SSQL的语法、函数等更象Oracle,用这个数据库开发的应用,移到Orace上时迁移工作量可能会小一些。所以,在有些场合不妨可以试用一下这个数据库。下面是SSQL手册自己宣称的特性:

  autocommit mode

  multiversion concurrency control

  transactional mode

  deadlock detection

  transactional integrity (unique constraints and references)

  64-bit portable database file

  theoretical limit of 8589934592 GB

  subselects

  distributed queries

  outerjoins: standard SQL92 JOIN command, (+) outerjoin operator (与Oracle相似之处)

  heterogeneous queries

  data migration queries (比较独特的特点)

  Web report formatting functions

  它还支持诸如: CASE、DECODE等函数(学Oracle的 :-) )

  其他详细的特性我就不罗列了,如果有兴趣大家可以自己找来玩玩。

  下面简单讲一下昨晚我测试的结果。

  我的测试案例设计是:

  对一张表操作:

  tbl_user

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

  id bigint

  login_id varchar(20)

  password varchar(50)

  name varchar(20)

  email varchar(200)

  sign varchar(2000)

  regtime timestamp

  用一个SQL语句往表里插入1000X1000记录:

  Insert into tbl_user

  values( NEXTVAL('tbl_user'), 'test'|| CURRVAL('tbl_user'), '720123', '张三'|| CURRVAL('tbl_user'), CURRVAL('tbl_user') || '@yahoo.com', MD5('张三'|| CURRVAL('tbl_user')), NOW())

  这个SQL语句中的NEXTVAL是Sequence函数,与Oracle的Sequence很类似,不同的只是这里的Sequence不需要手工建,只要我们有调用NEXTVAL('tbl_user'),就会自动生成一个名为“tbl_user”的sequence,用起来比Oracle方便一些。

  用一个SQL语句从表里查询总记录数:

  select count(id) as cnt from tbl_user

  我的机器配置是:

  DELL LATITUDE D610

  CPU: 迅驰1.8G

  内存: 512M

  在NetBeans5.5 Beta版中编写程序并以Run模式运行程序:

  测试结果如下:

  插入操作: 191分钟

  查询操作(三次): 100秒

  94秒

  87秒

  从这个结果来看,我认为SSQL作为内嵌数据库发布一些DEMO应用或是用来作开发数据库,是能够胜任。

  最后有一点比较遗憾的是SSQL的新版本移掉了其中一些作者认为不需要的特性(包括C-S工作方式、事务等),而这些特性可能是我们应用开发人員往往需要的,所以我们只能用它的早期版本。作者网站对移掉的一些特性声明如下:

  1.   The second version of SimpleSQL has been renamed to JavuSQL.
  2.   This version is optimized for JavuServer.
  3.   The main purpose is now embedded SQL database component.
  4.   Most features not useful for JavuServer has been removed, including: client-server mode, heterogeneous queries, transactions, C++ compatibility.
  5.   Remover features could be added on request in the future.
  6.   JavuSQL is now available as a part of JavuServer,
  7.   stand-alone version and source code (under LGPL) will be available soon.

  为了下次不至于找不到这个数据库的早期版本,我把我下的1.2.3版放上来。

网友关注
最新上市
编辑推荐
欢迎订阅天极网RSS聚合资讯:http://www.yesky.com/index.xml