相关疑难解决方法(0)

为什么将 ROWNUM 添加到查询会提高性能?

我有两个疑问:

1)此查询有一个 ROWNUM 列(执行需要 20 秒):

SELECT
     ROWNUM
     ,ROAD_ID
     ,VERTEX_INDEX
     ,SDE.ST_X(ST_POINT) AS X
     ,SDE.ST_Y(ST_POINT) AS Y
FROM
(
     SELECT  
           ROWNUM
           ,a.ROAD_ID
           ,b.NUMBERS VERTEX_INDEX
           ,SDE.ST_PointN(a.SHAPE, b.NUMBERS) AS ST_POINT
     FROM  ENG.ROAD a
           CROSS JOIN ENG.NUMBERS b
     WHERE b.NUMBERS <= SDE.ST_NUMPOINTS(a.SHAPE)
)
--removed to do explain plan: ORDER BY ROAD_ID, VERTEX_INDEX

-------------------------------------------------------------------------------------------------------
| Id  | Operation              | Name                 | Rows  | Bytes |TempSpc| Cost (%CPU)| Time     |
-------------------------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT       |                      |  5996 |   322K|       |   262   (1)| 00:00:01 …
Run Code Online (Sandbox Code Playgroud)

performance oracle subquery query-performance

5
推荐指数
1
解决办法
2461
查看次数

沿线插入日期

road_conditionOracle 12c 中有一张表:

create table road_condition (
    cond_id number(5,0),
    road_id number(5,0),
    cond_date date,
    condition number(5,0)
);

insert into road_condition (cond_id,road_id,cond_date,condition)
values (1,100,to_date('01-NOV-84','DD-MON-RR'),18);
insert into road_condition (cond_id,road_id,cond_date,condition)
values (2,100,to_date('01-JAN-09','DD-MON-RR'),6);
insert into road_condition (cond_id,road_id,cond_date,condition)
values (3,100,to_date('19-JUN-12','DD-MON-RR'),4);
insert into road_condition (cond_id,road_id,cond_date,condition)
values (4,100,to_date('29-APR-15','DD-MON-RR'),4);
insert into road_condition (cond_id,road_id,cond_date,condition)
values (5,200,to_date('29-APR-92','DD-MON-RR'),20);
insert into road_condition (cond_id,road_id,cond_date,condition)
values (6,200,to_date('05-APR-17','DD-MON-RR'),3);
commit;
Run Code Online (Sandbox Code Playgroud)

结果表数据:

COND_ID ROAD_ID   COND_DAT CONDITION
------- -------   -------- ---------
      1     100   84-11-01        18
      2     100   09-01-01         6
      3     100   12-06-19         4
      4     100 …
Run Code Online (Sandbox Code Playgroud)

oracle oracle-12c computed-column date-math

5
推荐指数
2
解决办法
783
查看次数