0
我有一个包含组和许可列的表。我想从组列表中找到最大权限。我使用java和oracle数据库,我想到了两种方法可以做到这一点:sql查询性能:查找最大值
方法1:
in java loop through the group list
result = select permission from table where group = currentgroup
if result > max, max = result
方式2:
max = select max(permission) from table where group in (group list)
我想办法2会更快,但然后组列表可以很长,我不知道是否是一个好主意,在一个单一的SQL查询长列表。
我不明白,为什么列表长度会影响'MAX()'的结果,除非你的查询有缺陷? –
从哪里得到这个组列表?我会假设它来自你的数据库。在组表上使用内连接。然后你可以在数据库上完成所有工作,而不必在查询中提供整个组列表。 –
在oracle中,查询中绑定变量的最大数量是有限制的。也许常量也有一个限制。无论如何,我认为绑定变量的限制至少为1000.如果存在任何限制,应该更高。 –