[b]In语句的优化[/b]
现有两张表:
CLINIC_ORGANISM 数据量:1400
LAB_DRUGRESISTITEM 数据量:210000
其中LAB_DRUGRESISTITEM 中的ORGANISMID对应CLINIC_ORGANISM中的ID
现要求取得 LAB_DRUGRESISTITEM中涉及的所有CLINIC_ORGANISM的详情
通过如下两种方式进行SQL查询
1、通过IN方式
执行时间:80s
执行计划如下:
[img]http://dl2.iteye.com/upload/attachment/0098/5150/54488c45-df2d-3612-a132-950248873f77.jpg[/img]
2、通过连接方式
执行时间0.17s
执行计划如下:
[img]http://dl2.iteye.com/upload/attachment/0098/5152/1d6efa8e-4e2d-3f6b-baa0-308a90d9a37c.jpg[/img]
现有两张表:
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
执行计划如下:
[img]http://dl2.iteye.com/upload/attachment/0098/5150/54488c45-df2d-3612-a132-950248873f77.jpg[/img]
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
执行计划如下:
[img]http://dl2.iteye.com/upload/attachment/0098/5152/1d6efa8e-4e2d-3f6b-baa0-308a90d9a37c.jpg[/img]