0

レコードをフェッチするためにJDBCTemplateを使用しています...私のテーブルには、rowmapperを使用してユーザータイプオブジェクトにラップしたい46,000行があります。

しかし、以下のコードを試してみると、「SQLクエリの実行[Q7.USERBSC_INFOからUSER_ID、Descを選択します。STAT_CD='ACTIVE']」と表示され、その後何も起こりませんでした。15分間待ちましたが、まだ何も表示されませんでした。動作中...例外なし

DB2のJCCドライバーを使用しています。これはメインフレームDB2です。

しかし、1500レコードのみに対してクエリを実行すると、正常に機能します...レコードのフェッチに制限はありますか?

AQTクライアント内で同じクエリを実行すると、正常に機能します...

public List<usr> getusr() {
        List<usr> list = new ArrayList<usr>();
        String query = "Select USER_ID,Desc from Q7.USERBSC_INFO where STAT_CD='ACTIVE'";

list = getJdbcTemplate().query(query, DB2RowMapper.mUsrInfo);

        return list;
    }

RowMapper

 public static RowMapper mUsrInfo = new RowMapper()
                {
                    public Object mapRow(ResultSet rs, int rowNum) throws SQLException
                    {

                        Usr usr=new Usr();
                        usr.setUsrId(rs.getString("USER_ID"));
                        usr.setDesc(rs.getString("DESC"));
                        return usr;

                    }
                };
4

1 に答える 1

0

春の Jdbc テンプレート (maxRows オプションを使用) でレコード数を制限できますが、ここではそうではないと思います。フェッチされている records()46000 の数が、この遅延の理由だと思います...

クエリの最適化を試すか、最後にこの句を使用してみてください。

OPTIMIZE FOR n ROWS
于 2011-03-06T07:18:03.407 に答える