l 为应用选择最好最快的 JDBC 驱动 , JDBC3.0提供了新的特性来提高性能,诸如连接池, statemente池的改进
l 尽量使用支持 JDBC3.0 的驱动,因为 JDBC3.0 支持包括 DataSource 对象,连接池,分布式事务支持, RowSets 和 prepared statement 池等性能增强特性
l JDBC3.0 中的 Statement 池和连接池能合作共享 statement 池,这样,能使用一个已高速缓存的 statement (该 statement 来自另外一个连接)的连接,在由任一连接执行的 一些SQL 首次被执行时,产生的 statement 准备开销仅一次
l 用同一个连接执行多个 statements
l 避免将事务分布开(事务跨越多个连接)
l 使用最高效的数据类型:字符串比整数型快,整数型比浮点类型和时间戳类型都要高效(是否不太理解^&^,这是针对DB2数据库处理来说的,处理character类型最快,而处理integer类型通常需要一些转换或者字节排序)
l Cache任何请求的元数据( metadata )并尽可能少的使用元数据 方法,其慢的程度一用便知
l 使用虚拟查询获得一行的元数据,不要使用getcolumns()(假如应用允许用户使用列数据,应用是使用getColumns来返回列的信息给用户还是准备一个虚拟查询而后调用getMetadata呢?
l 在存储过程中使用参量,不要将数据挨个地放在statement中,最小化解析开销。此条针对DB2来说,其它数据库未必适用。SQL总是以字符串形式发送给DB2数据库,例如:
ResultSet rs = cstmt.executeQuery ();
l 对需要重复执行的statement使用预处理statement(PreparedStatement)
l 在JVM中Cache频繁请求的数据,避免不必要的数据库请求
l 除非绝对需要,否则避免移动数据
l 避免每次处理一行,尽可能一起处理多行。
l 恰当的使用 SQL 能减少资源请求。使用返回所需数据的最小值的查询:避免 select * 查询。一个返回小的数据子集的复杂查询,比一个简单的,返回超过所需的大量数据的简单查询更高效。
l 努力批量更新:将 statement 收集到一起,然后在一个事务里面一起执行。如果可能,使用有条件的逻辑和临时变量来达到 statement 批处理
l 考虑使用乐观锁。乐观锁使用时间戳验证数据是否还没有被其他用户改变,否则事务失败
l 分开存储正在操作的数据和历史数据(更一般的情况是将频繁使用的数据和不常使用的数据分开存储)
l DBMS可以很好的并行运转,尽量将应用设计成当和 DBMS交互时应用能做其他事情。
l 事物的保护级别越高,性能损失就越大。事物级别按增长的顺序为: TRANSACTION_NONE, TRANSACTION_READ_UNCOMMITTED, TRANSACTION_READ_COMMITTED, TRANSACTION_REPEATABLE_READ, TRANSACTION_SERIALIZABLE。使用Connection.setTransactionIsolation() 设置你想要的事物级别
l 通过整合多个事务为一个的批量操作,并在一个statement中使用Statement.addBatch() 和Statement.executeBatch()
l ConnectionPoolDataSource (from JDBC3.0)和PooledConnection接口为连接池提供了built-in支持
l 使用Connection.setReadOnly(true)优化只读数据库(操作)交互
l 切记:一旦可能,立刻关闭Statement和ResultSet
l 一直捕捉和处理数据库警告和异常
l 使用可滚动ResultSet (JDBC 2.0)
分享到:
相关推荐
### JDBC优化技巧 1. **批处理**:通过Statement对象的`addBatch()`和`executeBatch()`方法,可以将多个SQL语句作为一个批次执行,提高性能。 2. **使用PreparedStatement**:预编译SQL语句,减少解析次数,提升...
JDBC优化技巧** - 使用PreparedStatement替代Statement,减少SQL解析时间。 - 使用批处理操作(`addBatch()`和`executeBatch()`)批量执行SQL,提升性能。 - 合理设置连接池,避免频繁创建和销毁连接。 - 使用连接...
JDBC优化技巧** - 使用PreparedStatement而非Statement,因为预编译的SQL可以提高执行速度,并防止SQL注入。 - 批量处理(`addBatch()`和`executeBatch()`)可以减少网络通信,提高效率。 - 使用连接池,减少连接...
五、JDBC优化技巧 1. 使用PreparedStatement以减少SQL解析时间,避免SQL注入攻击。 2. 批量处理:通过`Statement.addBatch()`和`Statement.executeBatch()`批量执行SQL,提高效率。 3. 数据库连接池:使用...
9. **JDBC优化技巧** - 使用PreparedStatement而非Statement,减少SQL解析次数。 - 适当调整数据库连接池大小,避免过多的连接创建与销毁。 - 使用批处理处理大量数据操作。 - 及时关闭数据库资源,防止资源泄露...
### JDBC优化技巧 1. **批处理(Batch Processing)**:多个SQL语句可以一起提交,提高性能。 2. **使用连接池(Connection Pool)**:避免频繁创建和关闭连接,减少系统开销。 3. **设置合适的缓冲大小**:调整`...
本文将详细介绍三个主要的JDBC性能优化技巧,并提供了一些通用的准则,以帮助开发者提高JDBC应用程序的运行效率。 首先,正确使用数据库MetaData方法是关键。MetaData方法通常用于获取数据库表、列、索引等元数据...
4. **JDBC优化技巧** - 使用PreparedStatement代替Statement,可以防止SQL注入,提高性能。 - 使用连接池管理数据库连接,如C3P0、HikariCP等,以提高系统效率。 - 使用批处理操作批量执行SQL,减少网络交互次数...
**JDBC优化技巧:** 1. **使用PreparedStatement**:预编译的SQL语句,可以防止SQL注入攻击,提高执行效率,因为数据库只需解析一次SQL。 2. **批处理**:使用`addBatch()`和`executeBatch()`方法,可以一次性提交...
5. **JDBC优化技巧**: - 使用PreparedStatement替代Statement,可以防止SQL注入,提高执行效率。 - 使用批处理(Batch Processing)可以批量提交SQL语句,减少网络往返次数。 - 合理设置连接池,避免频繁创建和...
### JDBC优化技巧 1. 使用PreparedStatement而非Statement,以减少SQL解析时间,防止SQL注入。 2. 使用批处理(addBatch()和executeBatch())执行多条SQL,提高性能。 3. 使用Connection池管理数据库连接,减少连接...
**JDBC优化技巧** 1. **使用PreparedStatement而非Statement**: 预编译的SQL语句性能更优,且能防止SQL注入。 2. **批处理**: 对于多条相似的SQL语句,使用Statement的addBatch()和executeBatch()方法可提高效率。...
### JDBC优化技巧 1. **批处理**:使用`addBatch()`和`executeBatch()`批量执行SQL,提高效率。 2. **连接池**:通过连接池管理Connection,避免频繁创建和关闭连接。 3. **PreparedStatement**:避免SQL注入,...
8. **JDBC优化技巧**:手册可能包含一些最佳实践,如使用预编译语句、关闭不再需要的资源、设置合适的批处理大小等,以提高JDBC应用的性能和稳定性。 除此之外,附带的文件如`jb51.net.txt`可能包含一些相关学习...
5. JDBC优化技巧 - 使用PreparedStatement而不是Statement,因为预编译的SQL语句更高效。 - 尽量减少数据库连接的创建和关闭,考虑使用连接池。 - 适当使用索引,优化SQL查询语句,减少数据传输量。 6. 示例代码...
六、JDBC优化技巧 1. 使用PreparedStatement替代Statement,提高执行效率。 2. 使用批处理(Statement.addBatch()和Statement.executeBatch())减少网络往返次数。 3. 数据源连接池管理,如Apache DBCP或C3P0,提高...
### JDBC优化技巧 1. 使用PreparedStatement而非Statement,减少解析时间。 2. 合理设置批处理大小,避免内存溢出。 3. 使用PreparedStatement的占位符,防止SQL注入。 4. 使用连接池(如C3P0、HikariCP)管理...
**JDBC优化技巧** 1. **批处理**:使用PreparedStatement的`addBatch()`和`executeBatch()`方法,将多条SQL一起发送,减少网络通信次数。 2. **预编译SQL**:PreparedStatement预编译SQL语句,提升执行效率。 3. **...
JDBC优化技巧** - 使用`PreparedStatement`代替`Statement`,提高执行效率。 - 批量处理SQL语句,减少与数据库的交互次数。 - 使用连接池管理数据库连接,避免频繁的打开和关闭连接。 - 使用`CallableStatement`...
**JDBC优化技巧:** 1. 使用PreparedStatement替代Statement,避免SQL拼接,提高性能。 2. 使用批处理减少网络通信次数。 3. 设置合适的事务隔离级别,减少锁竞争。 4. 使用连接池,减少连接创建和销毁的开销。 5. ...