2

目前我的 SQL resultSet 带来了大约 250K 记录,需要处理。完成该过程需要 25 秒。我打算对它进行多线程处理。但无法从 ResultSet 中拆分数据。谷歌搜索时它说 CachedRowSet,但没有适当的例子来实现它。请有人帮我解决这个问题。提前致谢。

4

1 回答 1

0

您可以通过连接更多表来编写查询,也可以尝试使用这两个关键词

FETCH and OFFSET.
For 1st Ex : fetch = 1, offset = 1000
For 2nd Ex : fetch = 1001, offset = 1000

请检查此链接 https://technet.microsoft.com/en-us/library/gg699618(v=sql.110).aspx

通过从数据库中获取一组又一组您可以使用分页概念 它在任何情况下都不会影响 UI。

在 Oracle 的情况下:您可以通过指定 OFFSET 在 12c 上轻松完成。

在 12c 中,

SELECT val FROM table ORDER BY val OFFSET 4 ROWS FETCH NEXT 4 ROWS ONLY;

要在 11g 和之前的版本上做同样的事情,你需要使用 ROWNUM 两次,分别是内部查询和外部查询。

11g中的同样查询,

SELECT val FROM (SELECT val, rownum AS rnum FROM (SELECT val FROM table ORDER BY val) WHERE rownum <= 8) WHERE rnum > 4;

这里的偏移量是 4。

于 2016-06-01T18:17:16.950 回答