暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle分布式查询语句的优化

广州天凯信息科技有限公司 2021-06-10
534


数据库优化服务



公司简介

广州天凯信息科技有限公司是一家专注于综合IT服务提供商的技术服务企业,注册资金100W,主要以提供数据库技术服务为主,包括Oracle,Mysql,Sqlserver等数据库运维与优化服务。同时也提供各行业软件开发与系统集成服务,包括thinkPHP5.0,django2.0等框架网站开发,微信小程序开发,系统集成运维,网络规划等专业服务。为保障企业IT信息系统的高效稳定运行,提供高品质,高效率的专业技术服务。

广州天凯信息科技有限公司为广州专业的IT服务提供商,拥有资深专业的技术专家,技术专家具有8年以上企业数据库运维与开发经验,服务行业包括移动,金融,税务,电子商务等关键行业,长期与国内知名企业合作,包括人人聚财,杭州图软,深圳安车等大型企业。我们的服务宗旨是“专业,诚信,可靠”,同时我们的优势是,助企业低成本获得高效服务。

      广州天凯信息科技有限公司锐始终追求卓越的服务品质,以保障客户的IT信息系统高效稳定运行为已任,愿以我们丰富的管理经验,诚信可靠的服务意识和强大的技术队伍为中国各企业单位在公司快速发展的道路上保驾护航。



1Oracle分布式查询语句的优化

原SQL语句:

Select

 Wb.*,

 (Select Wi.Nextarrivedate

    From Mbs7_Oms.Xs_Warearriveinfo@Dc.Moonbasadb.Com Wi

   Where Wi.Warecode = Wb.Warecode) As Nextarrivedate

  From Mbs7_Crm.Wi_Warebase@Dc.Moonbasadb.Com Wb                 ---这里远端表较大

 Inner Join (Select Wa.Stylecode, Max(Wa.Warecode) As Warecode

               From Mbs7_Crm.Wi_Warebase@Dc.Moonbasadb.Com Wa

              Inner Join (Select Stylecode

                           From Dc_Support.Kh_Visitpage Vis

                          Where Vis.Cuscode = :B1

                            And Vis.Addtime >= Trunc(Sysdate - 31)

                            And Vis.Addtime < Trunc(Sysdate - 30)

                            And Rownum <= 5

                          Order By Addtime Desc) Vis

                 On Wa.Stylecode = Vis.Stylecode

              Group By Wa.Stylecode) Wc

    On Wb.Warecode = Wc.Warecode

分析:

        由于优化器无法判断或获得远端表的统计信息,故原执行计划默认会采取把远程表(无论大小)拉到本地再连接的方式执行,这样如果远程表较大的情况将会比较缓慢,像上述查询耗时在1分钟以上。

解决方案:

用以下HINTS方式加上去后,优化器会调整执行计划,把运算端控制在WB,并且远端表MBS7_CRM.WI_WAREBASE表字段的索引(STYLECODE)缺少连接索引,于是在目标端创建以下索引进行优化,优化后COST从7百多下降到20,运行2秒内可返回结果,性能增加不少。

远端表创建索引:

create index mbs7_crm.ix_WI_WAREBASE_STYLECODE on mbs7_crm.WI_WAREBASE(STYLECODE)

结果:

Select /*+DRIVING_SITE(WB)*/

 Wb.*,

 (Select Wi.Nextarrivedate

    From Mbs7_Oms.Xs_Warearriveinfo@Dc.Moonbasadb.Com Wi

   Where Wi.Warecode = Wb.Warecode) As Nextarrivedate

  From Mbs7_Crm.Wi_Warebase@Dc.Moonbasadb.Com Wb                 ---远端表较大

 Inner Join (Select Wa.Stylecode, Max(Wa.Warecode) As Warecode

               From Mbs7_Crm.Wi_Warebase@Dc.Moonbasadb.Com Wa

              Inner Join (Select Stylecode

                           From Dc_Support.Kh_Visitpage Vis

                          Where Vis.Cuscode = :B1

                            And Vis.Addtime >= Trunc(Sysdate - 31)

                            And Vis.Addtime < Trunc(Sysdate - 30)

                            And Rownum <= 5

                          Order By Addtime Desc) Vis

                 On Wa.Stylecode = Vis.Stylecode

              Group By Wa.Stylecode) Wc

    On Wb.Warecode = Wc.Warecode

到此,问题解决!

天凯科技,为你提供专业IT服务

专业提供数据库运维与优化

软件开发,微信小程序开发等服务

咨询QQ:282321952  手机/微信:13926108245

文章转载自广州天凯信息科技有限公司,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论