在以java application server应用为主的平台是,JDBC的最高级应用是DataSource的实现,其它的,JDO,webcache,hibernate等不过是一种封装,所以看数据库应用的性能,主要看据库连结的利用率,所以,DataSource可以说是J2EE最最重要的应用.
对于主流的数据库,如mysql,mssqlserver,oracle,从其通用的性能来看,我建议在JAVA平台上应用oracle和mysql,MS的数据库在JAVA平台上的性能只能达到上述两种数据库的60-70%,在相同硬件的基础是,做同样的操作,测试了这三种数据库对并发的支持,MYSQL最高为430,ORACLE为400,SQLSERVER只有250.
如果你不得不用SQLSERVER作为JAVA平台的数据库,那么一个合适的JDBC是最最重要的,MS自己提供的JDBC到目前为止并不能真正支持DataSource,不过bea的weblogic8中已经内置了type4的ms sqlserver的JDBC,这是一个真正支持DataSource的JDBC,如果你不得不用sqlserver,你可以把这个JDBC从BEA的WLS中驳离出来.
另外一点,如果你的J2EE应用主要集中在jsp/servlet,而后台数据库采用oracle的话,那么你有福了.你不要采用其它的WEB容器,在oracle8.17以后的版本中都内置了servlet引擎.
如果你基于这个引擎,你会获得其它应用组合所无法比拟的性能,因为ORACLE的WEB容器是工作在数据库的地址空间,想一想,这意味着什么?
这就意味着,容器对数据库的访问是"本地文件存取方式",虽然oracle也提供了标准的JDBC接口让调用者调用,但事实上这时的Connection对象只相当于一个文件句柄,而其它的JDBC连结都是封装了Socket,通过Socket和数据库进行通讯,如果你不理解这里的区别,那我打一个比方:就好象两个人面对面谈话和通过国际长途谈话的区别,这其间的性能怎一个高字了得.
mysql从来就是被设计为"网络数据库",针对数据安全性不是太重要的应用.它的最大优点是通用,性能高,速度快,安全性较低,对于不是机密要件的应用,用MYSQL肯定没错.
MS SQLSERVER,除了在JAVA平台上性能表现不好外,没有什么可说的,如果换在WIN平台上,它是顶级首选项,没有任何数据库在WIN平台上可以和它做任何方面的比较.
ORACLE,JAVA平台上的老大,除去成本因素,在JAVA平台上没有理由不选择它.