首页 > 解决方案 > 如何重写 sql 查询

问题描述

我有一个表 ORDER 没有定义索引、分区、键,我正在执行下面的 sql 查询以检索 CODE 以前 2 亿条记录的某个值开头。运行时间太长。有什么办法可以重写这个查询。

SELECT * FROM ORDER WHERE  ROWNUM <= 200000000 AND ((CODE LIKE '1234423678%' ));

标签: sqlquery-optimizationoracle12c

解决方案


你有没有尝试过:

    SELECT * FROM ORDER 
    WHERE  ROWNUM <= 200000000 AND (SUBSTR(CODE,1,10) = '1234423678');

不确定这是否会有所作为,但也许会。


推荐阅读