【发布时间】:2015-07-27 07:55:25
【问题描述】:
我有一个类似的 SQL 请求:
select X from "myTable" where (cond1 AND cond2) OR (cond3 AND cond 4)...
我的子句 where 可以有多少个 (cond AND cond)?因为它在我的24578 条件下产生了 stackOverFlow 错误。
最终列表更新 = xService.getCountUpdate(couple);
couple 是通过这种方式构建的列表(我文件中的每一行都已完成):
dcIssn = new ArrayList<String>();
dcIssn.add(0, row.getCell(dc).getStringCellValue());
dcIssn.add(1, row.getCell(issn).getStringCellValue());
couple.add(dcIssn);
【问题讨论】:
-
你是认真的24578条件吗?
-
等等.. 你的意思是 24578 个连接?是什么让你使用这么多条件..它会极大地影响数据库性能 IMO..
-
如果你有 24578 个条件,你真的应该重新考虑你的代码并改变它以提高效率。
-
无论如何,根据数据库的不同,查询中的最大参数量通常应该在 64k 左右,所以这仍然是可行的(虽然效率不高)。无论如何,StackOverflow 听起来不像是数据库出现问题。代码?
-
这就是我正在尝试的,但这是一个导入功能,我正在尝试处理这个文件,但它可能比这更大,所以我认为我必须在子列表中剪切我的列表改善一点
标签: java sql sql-server