如何解决ORACLE大量的IN查询,速度慢问题

使用IN查询,就是慢,所以想办法是使用IN ,那怎么办呢?

我在咨询了大牛之后找到了一个比较好的解决办法,使用表联合查询。

原理:

  1. 使用临时表暂存要进行查询的ID

  2. 使用表连接查询

具体实现如下:

1、创建ORALCE事务临时表,每次COMMIT后就会删除临时表内容

CREATE GLOBAL TEMPORARY TABLE TNAME (ID VARCHAR2(64)) ON COMMIT DELETE ROWS

2、查询时候将ID插入到临时表中

3、进行表联合查询

SELECT DP.* FROM MO_VIEW_DP DP , (SELECT ID FROM TNAME ) D WHERE DP.ID = D.ID ORDER BY DP.EDITDATE DESC

评论

© ScyllaGuo | Powered by LOFTER