SQL优化,大神看下

qsc1818518 2019-07-09 02:36:19
SELECT KEYWORD, Fno, Fdate, OPERATIONLOG, OPDATE, OPID, bid
FROM (
SELECT KEYWORD, SUBSTR(dbms_lob.substr(OPERATIONLOG), 12, 6) AS Fno,
SUBSTR(dbms_lob.substr(OPERATIONLOG), 19, 10) AS Fdate, OPERATIONLOG, OPDATE, OPID,
(
SELECT COUNT(*) AS Expr1
FROM ODS_Tbl_Operationlog_001
WHERE (KEYWORD = tbl.KEYWORD)
AND (LOGID <= tbl.LOGID)
AND (OPERATIONLOG LIKE '%OffLoad:AI%')
AND
(OPDATE >= TO_DATE('2013-01-01 00:00:00','yyyy-mm-dd HH24:mi:ss'))
AND (OPDATE <= TO_DATE('2020-12-31 23:59:59','yyyy-mm-dd HH24:mi:ss'))
) AS bid
FROM ODS_Tbl_Operationlog_001 tbl
where (OPERATIONLOG LIKE '%OffLoad:AI%')
AND
(OPDATE >= TO_DATE('2013-01-01 00:00:00','yyyy-mm-dd HH24:mi:ss'))
AND (OPDATE <= TO_DATE('2020-12-31 23:59:59','yyyy-mm-dd HH24:mi:ss'))
)


数据量一千多万 查询七八分钟 走两遍全表
...全文
106 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
AHUA1001 2019-07-09
  • 打赏
  • 举报
回复
SELECT KEYWORD, SUBSTR(dbms_lob.substr(OPERATIONLOG), 12, 6) AS Fno, SUBSTR(dbms_lob.substr(OPERATIONLOG), 19, 10) AS Fdate, OPERATIONLOG, OPDATE, OPID, ( SELECT COUNT(0) AS Expr1 FROM ODS_Tbl_Operationlog_001 WHERE KEYWORD = tbl.KEYWORD AND LOGID <= tbl.LOGID AND OPERATIONLOG LIKE '%OffLoad:AI%' AND OPDATE BETWEEN TO_DATE('2013-01-01 00:00:00','yyyy-mm-dd HH24:mi:ss') AND TO_DATE('2020-12-31 23:59:59','yyyy-mm-dd HH24:mi:ss') ) AS bid FROM ODS_Tbl_Operationlog_001 tbl where OPERATIONLOG LIKE '%OffLoad:AI%' AND OPDATE BETWEEN TO_DATE('2013-01-01 00:00:00','yyyy-mm-dd HH24:mi:ss') AND TO_DATE('2020-12-31 23:59:59','yyyy-mm-dd HH24:mi:ss')
ZJHZ_叶 2019-07-09
  • 打赏
  • 举报
回复
如果是要排名的话可以的
qsc1818518 2019-07-09
  • 打赏
  • 举报
回复
dense_rank() over (partition by KEYWORD order by id 这 怎么样
ZJHZ_叶 2019-07-09
  • 打赏
  • 举报
回复
(
SELECT COUNT(*) AS Expr1
FROM ODS_Tbl_Operationlog_001
WHERE (KEYWORD = tbl.KEYWORD)
AND (LOGID <= tbl.LOGID)
AND (OPERATIONLOG LIKE '%OffLoad:AI%')
AND
(OPDATE >= TO_DATE('2013-01-01 00:00:00','yyyy-mm-dd HH24:mi:ss'))
AND (OPDATE <= TO_DATE('2020-12-31 23:59:59','yyyy-mm-dd HH24:mi:ss'))
) AS bid

改成下面这个看下

count(*) OVER(PARTITION BY KEYWORD ORDER BY LOGID )
AS bid

17,082

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧