前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >两个思考题,SQL优化的2个常识

两个思考题,SQL优化的2个常识

作者头像
老虎刘
发布2022-06-22 17:40:23
1890
发布2022-06-22 17:40:23
举报
文章被收录于专栏:老虎刘谈oracle性能优化

SQL1:

CDMBAS.BAS_PAPPVACTINFO表的PA_REQUNO , PA_ORDER 两个字段上存在复合索引,但是下面SQL却使用了全表扫描,即使使用了index的hint也不行。想想可能是什么原因?(3300万记录的表,全表扫描执行一次19秒;问题解决后使用索引只需1.7毫秒):

SELECT B2.* FROM

( SELECT B1.*, ROWNUM rnum

FROM ( SELECT

/*+ index(t1 IDX_BAS_PAPPVACTINFO_0001) */

T1.PA_CLINAME AS T1__PA_CLINAME ,

......

T1.PA_OPTIME AS T1__PA_OPTIME

FROM CDMBAS.BAS_PAPPVACTINFO T1

WHERE 1=1

ORDER BY PA_REQUNO DESC , PA_ORDER DESC

) B1

WHERE ROWNUM <= 21

) B2

WHERE rnum > 0 ;

SQL2:

下面SQL从写法上看看该如何优化一下?

SELECT *

FROM (

SELECT oracle_table.* ,ROWNUM AS startrownum

FROM (

SELECT ......

FROM mocha_oa_intramsg_message t1

INNER JOIN (

SELECT C_MESSAGE_ID,max(C_ID) AS C_ID

FROM mocha_oa_intramsg_message

GROUP BY C_MESSAGE_ID

) t2

ON t1.C_ID = t2.C_ID

WHERE (C_DEL_STATUS = 0 OR C_DEL_STATUS = 1) AND

C_FROM_ID = : 1 AND : 2 <= C_SEND_TIME AND : 3 >= C_SEND_TIME

ORDER BY C_SEND_TIME DESC

) oracle_table

WHERE ROWNUM <= 14

)

WHERE startrownum > 0;

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2016-08-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 老虎刘谈oracle性能优化 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据迁移
云数据迁移(Cloud Data Migration,CDM)是腾讯云提供的 TB~PB 级别的数据迁移上云服务。本服务为您提供安全可靠的离线迁移专用设备,满足本地数据中心进行大规模数据迁移上云的需求,解决本地数据中心通过网络传输时间长、成本高、安全性低的问题。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档