欢迎来到天天文库
浏览记录
ID:50174363
大小:872.27 KB
页数:17页
时间:2020-03-06
《Oracle数据库优化之视图优化技巧.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、九次方培训Oracle数据库性能优化之复杂视图优化技巧主讲人:研发中心,马飞目录一含ROWNUM伪列的视图调优演练二含分析函数的视图调优演练三上机演练及答疑讨论四作业:自己实际操作练习droptablet_lx;droptablet_lx2;createtablet_lxasselect*fromdba_objectst;createtablet_lx2asselect*fromdba_segmentst;beginforiin1..5loopinsertintot_lxselect*fromt_lx;insertintot_l
2、x2select*fromt_lx2;endloop;commit;end;1.创建示例表及初始化数据一一、包含ROWNUM伪列的视图调优演练脚本createindext_lx_n1ont_lx(object_name);createindext_lx2_n1ont_lx2(segment_name);execdbms_stats.gather_table_stats('SYS','T_LX',cascade=>true);execdbms_stats.gather_table_stats('SYS','T_LX2',casca
3、de=>true);2创建索引、收集统计信息一一、包含ROWNUM伪列的视图调优演练脚本createorreplaceviewt_lx_vasselectt1.owner,t1.object_name,t1.object_type,sysdaterq,count(distinctt1.owner)csfrom(selectowner,object_name,object_type,rownumr#fromt_lx)t1,(selectowner,segment_type,segment_name,rownumr#fromt_lx
4、2)t2wheret1.object_name=t2.segment_namegroupbyt1.OWNER,t1.object_type,t1.object_NAMEhavingcount(0)>10;3创建复杂视图(含ROWNUM伪列):T_LX_V一、包含ROWNUM伪列的视图调优演练脚本5查看视图T_LX_V执行计划一、包含ROWNUM伪列的视图调优演练脚本6增加提示符HINT后无法使用索引扫描-情况一一、包含ROWNUM伪列的视图调优演练脚本7增加提示符HINT后无法使用索引扫描-情况二一、包含ROWNUM伪列的视图调
5、优演练脚本8增加提示符HINT后无法使用索引扫描-情况三一、包含ROWNUM伪列的视图调优演练脚本9思考:如何对刚才的视图进行优化?一、包含ROWNUM伪列的视图调优演练脚本(1)通过查看视图执行计划发现视图无法使用OBJECT_NAME或SEGMENT_NAME列上索引。(2)将T_LX_V视图中的查询语句增加提示符HINT也无法使用索引。(3)是否可以修改现有视中的查询语句进行优化?10将视图中的语句改写为以下写法可以使用索引,但是视图不灵活,每次都需要修改语句,不通用。一、包含ROWNUM伪列的视图调优演练脚本11对刚才改
6、写的视图进行修改,使之可以传递条件。一、包含ROWNUM伪列的视图调优演练脚本借助包来为视图传递条件,并且可以确认视图在创建时编译成功12对刚才改写的视图进行修改,使之可以传递条件。一、包含ROWNUM伪列的视图调优演练脚本13调用改写后的视图并为视图传递条件。一、包含ROWNUM伪列的视图调优演练脚本1包含分析函数的视图情况同上,大家可以参照脚本进行上机实践操作。二、含分析函数的视图调优演练附件一包含ROWNUM伪列的视图调优演练脚本二包含分析函数的视图调优演练脚本17谢谢大家17
此文档下载收益归作者所有