最佳实践使用JAVA内存数据库h2database性能优化.docVIP

最佳实践使用JAVA内存数据库h2database性能优化.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
最佳实践使用JAVA内存数据库h2database性能优化

最佳实践:使用JAVA内存数据库h2 database性能优化 分类:Java性能优化 作者:凡彬勇 日期:2011-08-1 导读:使用JAVA内存数据库h2 database性能优化,提高数据处理速度,解决IO瓶颈问题 问题 我们在开发应用都知道IO是系统性能的瓶颈,在应用开发中,我们会经常碰到以下问题: 1.系统在不断实时地访问数据库时,一秒钟对同一个表操作几千,几万次以上,导致数据表死锁或则处理太慢; 2.对数据实时计算,而且数据量很大时,比如电信系统的电信的二次批价和实时累账…… 传统的数据库系统是关系型数据库磁盘对磁盘数据库而言,由于磁盘存取、内外存的数据传递、缓冲区管理、排队等待及锁的延迟等使得事务实际平均执行时间与估算的最坏情况执行时间相差很大如果将整个数据库或其主要的“工作”部分放入内存,使每个事务在执行过程中没有I/O,则为系统较准确估算和安排事务的运行时间,使之具有较好的动态可预报性提供了有力的支持实际应用中处理实时性强的业务逻辑处理数据H2 database启动 H2 database内存数据库可分为嵌入模式与控制台两种启动模式。 本文档将在随后重点介绍嵌入模式。 控制台模式是和所有其他通用数据库一样单独启动服务。如下图所示: Web Browser 是h2内置的一个web客户端管理工具,是一个管理h2的界面,登录后可创建执行SQL以及查看模式,表等等; H2 Console Server是 控制中心,用来启动与关闭h2内存数据库的 H2 Database 是整个数据库的核心引擎 通过org.h2.tools.Server这个cLass进行启动。 示例脚本如下h2.sh(中信银行ATM监控系统示例): #!/bin/sh export JAVA_HOME=/home/feelview/SDK/jdk export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH cp=h2-1.2.141.jar if [ -n $H2DRIVERS ] ; then cp=$cp:$H2DRIVERS fi if [ -n $CLASSPATH ] ; then cp=$cp:$CLASSPATH fi nohup java -Xms128m -Xmx1000m -XX:+PrintGC -Xloggc:JVM.svc -cp $cp org.h2.tools.Server 嵌入模式将在2.2节中详细介绍 H2 database嵌入到JAVA代码中 由于H2 database是完全的JAVA开源软件,因此可嵌入到JAVA应用中作为应用的一个模块随应用一起启动与停止,这样方便部署与实施,部署与实施时不需要任何额外的工作。 嵌入到JAVA应用中的步骤为: 将h2*.jar加入到JAVA项目的classpath中 使用JDBC驱动类: org.h2.Driver 数据库URL为jdbc:h2:~/test 将在你的用户的主目录下创建一个名为test 数据库 使用JAVA代码执行DDL 在应用程序中调用启动与停止如下: import org.h2.tools.Server; ... // start the TCP Server Server server = Server.createTcpServer(args).start(); ... // stop the TCP Server server.stop(); 由于h2内存数据库在重启的时候创建的内存表等对象会丢失,为了更好部署,我们可以在JAVA代码中执行DDL 中信银行监控系统示例如下: public void createDDl() { Session session = new BaseDb2HibernateDAO().getSession(); Connection conn=null; Statement st=null; try { conn=session.connection(); st =conn.createStatement(); st.execute(SET CLUSTER ); st.execute(SET LOCK_MODE 0); st.execute(SET DEFAULT_TABLE_TYPE 0); st.execute(SET WRITE_DELAY 500); st.execute(SET DEFAULT_LOCK_TIMEOUT 2000);

文档评论(0)

yaobanwd + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档