In语句优化

In语句的优化
现有两张表:
CLINIC_ORGANISM 数据量:1400
LAB_DRUGRESISTITEM 数据量:210000

其中LAB_DRUGRESISTITEM 中的ORGANISMID对应CLINIC_ORGANISM中的ID
现要求取得 LAB_DRUGRESISTITEM中涉及的所有CLINIC_ORGANISM的详情

通过如下两种方式进行SQL查询
1、通过IN方式
SELECT CO.* FROM CLINIC_ORGANISM CO WHERE CO.ID 
IN(
	SELECT DISTINCT(LD.ORGANISMID)
	FROM LAB_DRUGRESISTITEM LD
	WHERE LD.ISVALID = 1
) AND CO.ISACTIVE = 1 ;

执行时间:80s
执行计划如下:

2、通过连接方式
SELECT CO.*
FROM CLINIC_ORGANISM CO 
INNER JOIN
(
    SELECT DISTINCT(LD.ORGANISMID) AS OGID
    FROM LAB_DRUGRESISTITEM LD
    WHERE LD.ISVALID = 1 
)TEMP
ON CO.ID = TEMP.OGID;

执行时间0.17s
执行计划如下:



猜你喜欢

转载自jasonwilliams.iteye.com/blog/2085446