- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
九次方培训
Oracle 数据库性能优化之复杂视图优化技巧
主讲人:研发中心,马飞
目录
一
含ROWNUM伪列的视图调优演练
二
含分析函数的视图调优演练
三
上机演练及答疑讨论
四
作业:自己实际操作练习
drop table t_lx;
drop table t_lx2;
create table t_lx as select * from dba_objects t ;
create table t_lx2 as select * from dba_segments t ;
begin
for i in 1..5 loop
insert into t_lx select * from t_lx;
insert into t_lx2 select * from t_lx2;
end loop;
commit;
end;
1.
创建示例表及初始化数据
一一、包含ROWNUM伪列的视图调优演练脚本
create index t_lx_n1 on t_lx(object_name);
create index t_lx2_n1 on t_lx2(segment_name);
exec dbms_stats.gather_table_stats(SYS,T_LX,cascade = true);
exec dbms_stats.gather_table_stats(SYS,T_LX2,cascade = true);
2
创建索引、收集统计信息
一一、包含ROWNUM伪列的视图调优演练脚本
create or replace view t_lx_v as
select t1.owner,t1.object_name,
t1.object_type,sysdate rq ,
count(distinct t1.owner) cs
from (select owner,object_name,
object_type,rownum r# from t_lx ) t1 ,
(select owner,segment_type
,segment_name,rownum r# from t_lx2) t2
where t1.object_name=t2.segment_name
group by t1.OWNER,t1.object_type,t1.object_NAME
having count(0)10;
3
创建复杂视图(含ROWNUM伪列) : T_LX_V
一、包含ROWNUM伪列的视图调优演练脚本
5
查看视图T_LX_V执行计划
一、包含ROWNUM伪列的视图调优演练脚本
6
增加提示符HINT后无法使用索引扫描-情况一
一、包含ROWNUM伪列的视图调优演练脚本
7
增加提示符HINT后无法使用索引扫描-情况二
一、包含ROWNUM伪列的视图调优演练脚本
8
增加提示符HINT后无法使用索引扫描-情况三
一、包含ROWNUM伪列的视图调优演练脚本
9
思考:如何对刚才的视图进行优化?
一、包含ROWNUM伪列的视图调优演练脚本
(1) 通过查看视图执行计划发现视图无法使用OBJECT_NAME
或SEGMENT_NAME列上索引。
(2) 将T_LX_V视图中的查询语句增加提示符HINT也无法使用索引。
(3) 是否可以修改现有视中的查询语句进行优化?
10
将视图中的语句改写为以下写法可以使用索引,但是视图不灵活,每次都需要修改语句,不通用。
一、包含ROWNUM伪列的视图调优演练脚本
11
对刚才改写的视图进行修改,使之可以传递条件。
一、包含ROWNUM伪列的视图调优演练脚本
借助包来为视图传递条件,并且可以确认视图在创建时编译成功
12
对刚才改写的视图进行修改,使之可以传递条件。
一、包含ROWNUM伪列的视图调优演练脚本
13
调用改写后的视图并为视图传递条件。
一、包含ROWNUM伪列的视图调优演练脚本
1
包含分析函数的视图情况同上,大家可以参照脚本进行上机实践操作。
二、含分析函数的视图调优演练
附件
一
包含ROWNUM伪列的视图调优演练脚本
二
包含分析函数的视图调优演练脚本
17
谢谢大家
17
文档评论(0)