听雨停了 2021-12-01 17:21 采纳率: 0%
浏览 12

SQL优化不知道该如何描述

--说明:两个表的SERIAL_NUMBER,OUT_PROCESS_TIME都分别建立了索引
--TEMP.G_SN_STATUS表的资料大概有几千万,TEMP.G_SN_TRAVEL表的数据应该是TEMP.G_SN_STATUS的十几倍

--SQL1秒出结果(数据大概在100多条)
SELECT A.WORK_ORDER, A.SERIAL_NUMBER
FROM TEMP.G_SN_STATUS A
WHERE A.OUT_PROCESS_TIME>SYSDATE-0.00001;

 

--SQL2完全跑不动(这个SQL该如何优化,我总感觉这个跑不出来不科学啊)
SELECT A.WORK_ORDER, A.SERIAL_NUMBER, C.OUT_PROCESS_TIME AS INPUT_TIME 
FROM TEMP.G_SN_STATUS A 
INNER JOIN TEMP.G_SN_TRAVEL C ON A.SERIAL_NUMBER=C.SERIAL_NUMBER
WHERE A.OUT_PROCESS_TIME>SYSDATE-0.00001;

 

--把SQL1查询出的SERIAL_NUMBER In进去秒出结果
SELECT * FROM TEMP.G_SN_TRAVEL
WHERE SERIAL_NUMBER IN (....)

 

好久没有发帖子,

  • 写回答

2条回答 默认 最新

  • 魂落忘川犹在川 2022-01-11 11:30
    关注

    sql SELECT A.WORK_ORDER, A.SERIAL_NUMBER, C.OUT_PROCESS_TIME AS INPUT_TIME FROM (select * from TEMP.G_SN_STATUS A WHERE A.OUT_PROCESS_TIME > SYSDATE-0.00001) A INNER JOIN TEMP.G_SN_TRAVEL C ON A.SERIAL_NUMBER=C.SERIAL_NUMBER ;

    评论

报告相同问题?

问题事件

  • 创建了问题 12月1日