SELECT COUNT(*) AS TOTAL,
org_id OrgId,
TO_CHAR(END_TIME, 'yyyy-mm') AS YM
FROM SEHR_V_XMAN_EVENT_TOTAL
WHERE TYPE = 1
AND org_id = :OrgId
AND TO_CHAR(END_TIME, 'yyyy-mm')>= to_char(:StartDate, 'yyyy-mm')
and to_char(END_TIME, 'yyyy-mm') < TO_CHAR(:EndDate, 'yyyy-mm')
GROUP BY TO_CHAR(END_TIME, 'yyyy-mm'), org_id order by YM
这段是我的 查询SQL 【查询速度非常慢】
SEHR_V_XMAN_EVENT_TOTAL 这个是我的视图
视图中的内容是从四张表中取出的
表都没有建 索引
org_id OrgId,
TO_CHAR(END_TIME, 'yyyy-mm') AS YM
FROM SEHR_V_XMAN_EVENT_TOTAL
WHERE TYPE = 1
AND org_id = :OrgId
AND TO_CHAR(END_TIME, 'yyyy-mm')>= to_char(:StartDate, 'yyyy-mm')
and to_char(END_TIME, 'yyyy-mm') < TO_CHAR(:EndDate, 'yyyy-mm')
GROUP BY TO_CHAR(END_TIME, 'yyyy-mm'), org_id order by YM
这段是我的 查询SQL 【查询速度非常慢】
SEHR_V_XMAN_EVENT_TOTAL 这个是我的视图
视图中的内容是从四张表中取出的
表都没有建 索引
我用的是oracle 11g
要么在建视图的语句看有什么可优化的 把这样类似的TO_CHAR(END_TIME, 'yyyy-mm')>= to_char(:StartDate, 'yyyy-mm')
改成下面 本来时间就直接来比 你还转字符多耗时间
END_TIME>=to_date(:StartDate,'yyyy-mm')