时间:2021-07-01 10:21:17 帮助过:3人阅读
至于JDBC为何要设计这么小的数。有人说是为了避免jvm out of memory 问题。
详细性能能提高多少,请參考:http://blog.lishman.com/2008/03/jdbc-fetch-size.html 当然,FetchSize并非越大越好。至于原因请參考:http://stackoverflow.com/questions/9220171/setting-oracle-size-of-row-fetches-higher-makes-my-app-slower 5.设置ResultSet的批量值 ResultSet.getFetchSize(); 获取默认批量值 ResultSet.setFetchSize(50); 设置批量值 处理大数据时可显著提高处理速度 6.设置ResultSet合适的处理方向 ResultSet.getFetchDirection(); 获取默认值ResultSet.setFetchDirection(FETCH_REVERSE);设置合适的值
7.从ResultSet获取数据时有两种方式, rs.getObject(int column_index) 和 rs.getObject(String column_label)
8.合理的使用ResultSet的getXXX()方法
ResultSet提供了非常多各式各样的getxxx() 方法。比方你知道第一个值是String类型的话。那么就写成getString(1),假设你不指示明白的话,它会则须要把这个值再转换成合适的Java类型,转换的代价是比較大的,假设检索出来的数据有一百万条的话,那么这个字段值就会被转换一百万次。
9.优化查询SQL
比方避免使用select * from table where condition...,由于这么做会把全部的数据项目查询出来。比方我们仅仅须要Salary的话。我们就写成select salary from employee where name=RR,避免不必要数据的检索。
10.Cache仅仅读(read-only)和主读(read-mostly)表的数据
仅仅读表的数据不会发生变化。主读表发生变化较少,假设每次请求都读一遍表的话显然是没有必要,因此能够把这些数据缓存起来。当然。对于主读表要设定一定的更新时间。
11.迭代分批次获取数据替代一次大批量获取数据
某些情况下,应用程序可能会通过JDBC一次请求大量数据,而应用程序可能会一次把全部数据返回给client,这样会用掉非常多时间,能够採取例如以下方式解决:
JDBC性能优化方案
标签:查询 处理 完成 data 方式 建立 连接 bsp 对象