繁体   English   中英

从 10g 升级到 19c 后双表和视图性能下降

[英]Slow performance for dual table and views after upgrading from 10g to 19c

将 Oracle 数据库从 10g 升级到 19c 后,我遇到了使用更新/插入语句时在大型数据库上查询双表和视图时的性能问题。 在 Oracle 数据库 10g 中比较视图的性能时,我必须等待一个多小时。

--use Views
update table1
set break_show ='Y'
where developer in (select developer_dis from view1 where rn1 <=10 or rn2 <=10);

--use Table
update table1
set break_show ='Y'
where developer in (select developer_dis from table2 where rn1 <=10 or rn2 <=10);

我不得不设置 EXECUTE IMMEDIATE 'alter session set optimizer_features_enable="10.2.0.4"';,这被糟糕的性能解决了。

我应该怎么做才能找出双表和视图运行缓慢的真正原因。

任何帮助,将不胜感激。

我没有看到对双表的任何参考?

但是随着任何重大升级,优化器都会经历很多变化。 对于大多数查询,这应该会产生相同或更好的性能,但总会有回归的风险。 您可以使用

select * from dbms_xplan.display_cursor('[sqlid]')

为每个查询(从 V$SQL 获取 SQL_ID)查看不同的计划,然后从那里决定行动方案。 您现在使用 19c 将拥有的好处之一是 SQL 计划管理,因此您可以强制优化器继续使用您的 10g 计划,同时随着时间的推移仍能捕捉到可能更好的计划。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM