Java 一个DB视图的输出速度慢和提高的原因是什么?它需要6秒,突然需要1.5秒?
我有一个Oracle视图,具有以下条件:Java 一个DB视图的输出速度慢和提高的原因是什么?它需要6秒,突然需要1.5秒?,java,sql,oracle,wildfly,database-view,Java,Sql,Oracle,Wildfly,Database View,我有一个Oracle视图,具有以下条件: CREATE OR REPLACE FORCE EDITIONABLE VIEW ..... . . select * from (select t1.*,(select t.enddate from (select enddate,empid, ROW_NUMBER() OVER (PARTITION BY empid ORDER BY enddate desc) as seqnum from employee t2 where t2.
CREATE OR REPLACE FORCE EDITIONABLE VIEW .....
.
.
select * from
(select t1.*,(select t.enddate from (select enddate,empid,
ROW_NUMBER() OVER (PARTITION BY empid ORDER BY enddate desc) as seqnum
from employee t2
where t2.empid=t1.empid) t
where seqnum=1) As enddate_1 from (select * from
(select WED.*,ROW_NUMBER() OVER (PARTITION BY empid ORDER BY startdate desc) as seqnum from
(select t1.*,COUNT(*) OVER (PARTITION BY empid) WDECOUNT from employee t1) WED
where WDECOUNT=1 or WED.startdate <= sysdate)) t1 WHERE seqnum=1);
Oracle Database 12c 12.1.0.1.0版-64位生产版,就像在大海捞针一样。这里有很多选项,但是如果你问我,我会尝试查看上次数据库中的自动收集统计过程是何时执行的 可能,视图中涉及的表有了新的统计信息,CBO现在有了更好的执行计划,可能是更好的基数估计导致了新的计划 使用AWR检查过去7天视图的执行计划
SELECT * FROM table(DBMS_XPLAN.DISPLAY_AWR('your_sql_id'));
也许您现在可以在AWR上为同一个SQL存储两个不同的计划
值得一试。但就像我说的,有很多选择。我要告诉你的是提高性能最常见的方法之一。不要交叉发布-如果你获得使用ASH和AWR(dba_hist___视图和v$active_session_历史)的许可,你可以检查计划是否已更改。这始终是我检查的第一件事。得到的信息表明,查询在环境中略有变化。谢谢
SELECT * FROM table(DBMS_XPLAN.DISPLAY_AWR('your_sql_id'));