使用带有preparedStatement的setFetchsize()进行性能改进

时间:2018-02-26 09:44:40

标签: java oracle jdbc resultset

我正在使用JDBC在对象 accountdetailsList 中使用Select Query获取数据(Oracle数据库)。我读过很多关于结果集性能问题的帖子。目前我在开发环境中获得最多1000条记录因此,审查速度很快,而且我没有遇到任何性能问题。因此,为了提高PRODUCTION中的性能,我将使用setFetchSize()作为数百万条记录。由于我是JDBC的新手,我正在寻找一些专家建议,如果这是处理大数据的正确方法。

 AccountDetailsList accountdetailsList = new AccountDetailsList();
    List<AccountDetails> accountDetails = new ArrayList();
    try {
        String sql_qry = "SELECT a.BILLING_ACCOUNT_ID,a.VALID_TO,a.STATUS_TYPE_KEY from tablename a where a.STATUS_TYPE_KEY='CLOSED' "
                        + "and a.VALID_FROM >'"
                         + formatStartDate+ "' and a.VALID_TO >'"+ formatToDate+ "'";
        this.preparedStatement = dbconnection.prepareStatement(sql_qry);
        preparedStatement.setFetchSize(100);
        ResultSet rs = this.preparedStatement.executeQuery();
        while (rs.next()) {
            AccountDetails detailsVo = new AccountDetails();
            detailsVo.setBillingAccountId(rs.getString("BILLING_ACCOUNT_ID"));
            detailsVo.setValidto(rs.getDate("VALID_TO"));
            detailsVo.setStatus(rs.getString("STATUS_TYPE_KEY"));

            accountDetails.add(detailsVo);

        }
        accountdetailsList.setAccountdetailsList(accountDetails);

那么有没有其他方法来提高性能.setFetchSize(100)还可以,或者也可以使用setFetchSize(1000)? 感谢

0 个答案:

没有答案