查看: 3936|回复: 24

[PL/SQL] sql还有优化的方法吗

[复制链接]
论坛徽章:
0
跳转到指定楼层
1#
发表于 2018-1-16 15:03 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
sql 优化

论坛徽章:
8
2009新春纪念徽章
日期:2009-01-04 14:52:28祖国60周年纪念徽章
日期:2009-10-09 08:28:002010新春纪念徽章
日期:2010-03-01 11:07:24ITPUB9周年纪念徽章
日期:2010-10-08 09:32:25ITPUB十周年纪念徽章
日期:2011-11-01 16:23:262013年新春福章
日期:2013-02-25 14:51:24沸羊羊
日期:2015-03-04 14:51:522015年新春福章
日期:2015-03-06 11:57:31
2#
发表于 2018-1-16 16:25 | 只看该作者
仅凭楼主提供的信息不好判断,还需要其他信息,例如:视图的定义,各表的数据量,各条件列的数据分布等信息。

使用道具 举报

回复
论坛徽章:
0
3#
 楼主| 发表于 2018-1-16 16:42 | 只看该作者
sqysl 发表于 2018-1-16 16:25
仅凭楼主提供的信息不好判断,还需要其他信息,例如:视图的定义,各表的数据量,各条件列的数据分布等信息 ...

视图定义如图

使用道具 举报

回复
论坛徽章:
0
4#
 楼主| 发表于 2018-1-16 16:47 | 只看该作者
表关联比较多。看得好复杂。无从下手,请指导。或者优化思路。渴望等待中。
数据量:
g3_zs_jks  760万
g3_zs_yjsf  730万
其它都是小表。几千到3万。

使用道具 举报

回复
论坛徽章:
0
5#
 楼主| 发表于 2018-1-16 17:16 | 只看该作者
laishiwan 发表于 2018-1-16 16:42
视图定义如图

完整执行计划


使用道具 举报

回复
论坛徽章:
8
2009新春纪念徽章
日期:2009-01-04 14:52:28祖国60周年纪念徽章
日期:2009-10-09 08:28:002010新春纪念徽章
日期:2010-03-01 11:07:24ITPUB9周年纪念徽章
日期:2010-10-08 09:32:25ITPUB十周年纪念徽章
日期:2011-11-01 16:23:262013年新春福章
日期:2013-02-25 14:51:24沸羊羊
日期:2015-03-04 14:51:522015年新春福章
日期:2015-03-06 11:57:31
6#
发表于 2018-1-16 17:25 | 只看该作者
laishiwan 发表于 2018-1-16 16:47
表关联比较多。看得好复杂。无从下手,请指导。或者优化思路。渴望等待中。
数据量:
g3_zs_jks  760万

你这个视图比较复杂,性能容易出问题,看你一直贴图,可能担心保密问题。目测了下,你的计划不全,而且也看不清楚,如果可能,最好按照如下方法取个执行计划看看,最好别截图,直接贴这里即可,谢谢。

sqlplus username/passwd
SQL>set linesize 300
SQL>explain for select ... from v... where ...;
SQL>select * from table(dbms_xplan.display);

使用道具 举报

回复
论坛徽章:
520
奥运会纪念徽章:垒球
日期:2008-09-15 01:28:12生肖徽章2007版:鸡
日期:2008-11-17 23:40:58生肖徽章2007版:马
日期:2008-11-18 05:09:48数据库板块每日发贴之星
日期:2008-11-29 01:01:02数据库板块每日发贴之星
日期:2008-12-05 01:01:03生肖徽章2007版:虎
日期:2008-12-10 07:47:462009新春纪念徽章
日期:2009-01-04 14:52:28数据库板块每日发贴之星
日期:2009-02-08 01:01:03生肖徽章2007版:蛇
日期:2009-03-09 22:18:532009日食纪念
日期:2009-07-22 09:30:00
7#
发表于 2018-1-16 23:47 | 只看该作者
搞清楚那些过滤谓词最终落在哪些表上面,过滤完剩下多少行,有没有高效的索引可以利用。

使用道具 举报

回复
论坛徽章:
0
8#
发表于 2018-1-17 10:24 | 只看该作者

没有完整的信息(表的定义,索引,数据分布,执行计划),我们也无法给出建议。

如果担心保密问题, 你可以下载一个免费的工具,自己优化下。

下载地址:
https://tosska.com/tosska-sql-tu ... acle-free-download/
官方详细介绍:
https://tosska.com/tosska-sql-tuning-expert-tse-oracle/
旧帖:
http://www.itpub.net/thread-2095752-1-3.html

使用道具 举报

回复
论坛徽章:
8
2009新春纪念徽章
日期:2009-01-04 14:52:28祖国60周年纪念徽章
日期:2009-10-09 08:28:002010新春纪念徽章
日期:2010-03-01 11:07:24ITPUB9周年纪念徽章
日期:2010-10-08 09:32:25ITPUB十周年纪念徽章
日期:2011-11-01 16:23:262013年新春福章
日期:2013-02-25 14:51:24沸羊羊
日期:2015-03-04 14:51:522015年新春福章
日期:2015-03-06 11:57:31
9#
发表于 2018-1-17 11:05 | 只看该作者
Johnelse 发表于 2018-1-17 10:24
没有完整的信息(表的定义,索引,数据分布,执行计划),我们也无法给出建议。

如果担心保密问题,  ...

是的。
他给出的信息不是很全面和清晰,这个SQL又有些复杂,只能楼主自己想办法了。
建议嘛,首选是索引,因为索引是关系库最主要、最核心、最有效的手段。
其次就是根据计划具体变化情况了,边走边看,这些建议也没多大用。
这个工具可以试试啊,我觉得这个工具对不太懂优化的同学帮助应该还是蛮大的。

使用道具 举报

回复
论坛徽章:
0
10#
 楼主| 发表于 2018-1-17 14:06 | 只看该作者
SELECT VW_G3_ZS_JKS.SHXYDM_NSRSBH SHXYDM_NSRSBH,
               VW_G3_ZS_JKS.TAX_PAYER_CODE TAX_PAYER_CODE,
               VW_G3_ZS_JKS.NSRMC NSRMC,
               sum(VW_G3_ZS_JKS.SJJE) SJJE,
               VW_G3_ZS_JKS.ZGSWSKFJ_DM_MC ZGSWSKFJ_DM_MC
          FROM VW_G3_ZS_JKS
         WHERE 0 = 0
           AND (VW_G3_ZS_JKS.SJJE >= 1000 AND
               VW_G3_ZS_JKS.SKGK_DM_MC like '%销售%' AND
               VW_G3_ZS_JKS.RKRQ >= date
                '2017-01-01' AND VW_G3_ZS_JKS.RKRQ < date
                '2017-12-31' + 1 AND VW_G3_ZS_JKS.NSRZTMC = '正常' AND
                VW_G3_ZS_JKS.ZGSWSKFJ_DM_MC in
                ('单位名称1',
                 '单位名称2',
                                 '单位名称3',
                                 '单位名称4',
                                 '单位名称5',
                                 '单位名称6',
                                 '单位名称7',
                                 '单位名称8',
                                 '单位名称9',
                                 '单位名称10',
                 '单位名称11'))
         group by VW_G3_ZS_JKS.SHXYDM_NSRSBH,
                  VW_G3_ZS_JKS.TAX_PAYER_CODE,
                  VW_G3_ZS_JKS.NSRMC,
                  VW_G3_ZS_JKS.ZGSWSKFJ_DM_MC;

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表