【发布时间】:2015-05-29 18:02:33
【问题描述】:
我正在尝试从 oracle 数据库中选择 170k 条记录,有一些方法可以避免这个错误吗?或任何改进此查询的方法?
谢谢。
选择 sr.RELATED_PON、srsi.VALID_VALUE 从 SERV_REQ sr 内部连接 SERV_REQ_SI_VALUE srsi 在 sr.DOCUMENT_NUMBER = srsi.DOCUMENT_NUMBER 内部连接 SERV_ITEM si 在 si.SERV_ITEM_ID = srsi.SERV_ITEM_ID 和 si.STATUS = '6' 其中 srsi.VALUE_LABEL = 'unitAddress' 和 srsi.VALID_VALUE 在 ('1682511819', '1682575135', '1682580326' ... 超过 150k 这里! )【问题讨论】:
-
这太疯狂了。您不能将这 150k 值放在一个表上并使用连接或
in (SELECT ....吗? -
你可以写成
and ( srsi.VALID_VALUE in ('1682511819', '1682575135', '1682580326' ... less than 150k here! ) OR srsi.VALID_VALUE in ( '222222222','333333333'.... next 100K here) OR srsi.VALID_VALUE in ('4444444444','5555555555' ... ) etc etc )但我同意@Lamak - 你做错了。 -
我明白了,非常感谢。 :)