【发布时间】:2019-03-21 22:01:53
【问题描述】:
我使用的是 Oracle 12C,我有以下代码
SELECT
d.id,
'Status' "ImportStatus",
p.importid "ImportID",
macid,
p.daterequire "CreateDate",
p.dateimport "DateImPort",
TRANSLATE(p.accrequire USING NCHAR_CS) "CreateBy",
TRANSLATE(p.accimport USING NCHAR_CS) "AccImPort",
0 "isEdit",
employee,
deptid partner,
equipmentid
FROM
(
SELECT
id,
importid,
daterequire,
dateimport,
accrequire,
accimport,
subdeptid employee,
deptid
FROM
tableA
WHERE
estatus = 2
AND createdate BETWEEN to_timestamp('01/01/2019','dd/mm/yyyy') AND to_timestamp('12/02/2019','dd/mm/yyyy')
) p
INNER JOIN tableB d ON d.importid = p.id
TableA 有 5m 个值,TableB 有 3m 个值。
Importid 是具有 varchar2 数据类型的唯一列。 ID 是带有数字数据类型的 PK。
这是执行计划:
https://i.stack.imgur.com/tR2Q9.png
可以看出,PK中没有索引,成本高。有什么办法可以帮我解决吗?
谢谢!
【问题讨论】:
标签: oracle primary-key oracle12c query-performance