楼主: SunnyXu

[精华] 通过分析SQL语句的执行计划优化SQL(总结)

[复制链接]
论坛徽章:
2
授权会员
日期:2005-12-15 11:35:11ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:44
71#
发表于 2006-2-5 22:02 | 只看该作者
感谢分享!——有点不同意见
set autotrace traceonly并不是不执行语句,一样会执行语句,只是不显示语句执行的结果而已,所以说sqlplus中的autotrace有些不太爽……

使用道具 举报

回复
论坛徽章:
2
开发板块每日发贴之星
日期:2005-08-30 01:02:31会员2006贡献徽章
日期:2006-04-17 13:46:34
72#
发表于 2006-2-9 10:23 | 只看该作者
感谢真情奉献!!!

使用道具 举报

回复
论坛徽章:
0
73#
发表于 2006-2-10 14:04 | 只看该作者
非常感谢楼主的辛勤工作, 但我发现有不同之处, 不解其意:
我的OPTIMAL_MODE=CHOOSE
A. select a.dname, b.sal
from scott.dept a, scott.emp b
where a.deptno=b.deptno

我得到了相反的解释计划.请指导


B. select /*+ use_hash(a) */ empno from scott.emp a, scott.dept b
where a.deptno=b.deptno

使用道具 举报

回复
论坛徽章:
1
授权会员
日期:2006-01-04 13:42:23
74#
发表于 2006-2-16 14:48 | 只看该作者
Very Good !!!    UP

使用道具 举报

回复
论坛徽章:
0
75#
 楼主| 发表于 2006-2-20 09:37 | 只看该作者
对71楼的答复:
的确如所说的那样,谢谢你提出更正意见,现对这部分已做修改:
1).最简单的办法
Sql> set autotrace on
Sql> select * from dual;
执行完语句后,会显示explain plan 与 统计信息。
这个语句的优点就是它的缺点,这样在用该方法查看执行时间较长的sql语句时,需要等待该语句执行成功后,才返回执行计划,使优化的周期大大增长。

如果想得到执行计划,而不想看到语句产生的数据,可以采用:
Sql> set autotrace traceonly
这样还是会执行语句。它比set autotrace on的优点是:不会显示出查询的数据,但是还是会将数据输出到客户端,这样当语句查询的数据比较多时,语句执行将会花费大量的时间,因为很大部分时间用在将数据从数据库传到客户端上了。我一般不用这种方法。

Sql> set autotrace traceonly explain
如同用explain plan命令。对于select 语句,不会执行select语句,而只是产生执行计划。但是对于dml语句,还是会执行语句,不同版本的数据库可能会有小的差别。这样在优化执行时间较长的select语句时,大大减少了优化时间,解决了“set autotrace on”与“set autotrace traceonly”命令优化时执行时间长的问题,但同时带来的问题是:不会产生Statistics数据,而通过tatistics数据的物理I/O的次数,我们可以简单的判断语句执行效率的优劣。

使用道具 举报

回复
论坛徽章:
2
授权会员
日期:2006-04-28 13:53:48ITPUB元老
日期:2006-05-25 09:17:44
76#
发表于 2006-2-20 10:17 | 只看该作者
谢谢楼主!

使用道具 举报

回复
论坛徽章:
0
77#
发表于 2006-2-20 11:24 | 只看该作者
好好收藏,留待备用!

使用道具 举报

回复
论坛徽章:
12
授权会员
日期:2005-10-30 17:05:332014年世界杯参赛球队: 哥斯达黎加
日期:2014-05-19 14:34:28ITPUB十周年纪念徽章
日期:2011-11-01 16:20:28迷宫蛋
日期:2011-07-21 13:54:54鲜花蛋
日期:2011-07-15 10:32:07灰彻蛋
日期:2011-07-08 16:52:40迷宫蛋
日期:2011-07-07 18:54:532010新春纪念徽章
日期:2010-03-01 11:06:24祖国60周年纪念徽章
日期:2009-10-09 08:28:002009新春纪念徽章
日期:2009-01-04 14:52:28
78#
发表于 2006-2-20 15:05 | 只看该作者
楼主强,我最近发现总结是学习、进步的好方法。
能把好东西拿出来,和大家分享,才是高手,上档次,佩服。
可惜没有那么多时间细研究,有时间在说吧

使用道具 举报

回复
招聘 : 数据库管理员
论坛徽章:
38
ITPUB北京九华山庄2008年会纪念徽章
日期:2008-01-21 16:50:24马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:14现任管理团队成员
日期:2012-10-18 17:11:21版主4段
日期:2012-05-15 15:24:112012新春纪念徽章
日期:2012-02-13 15:09:232012新春纪念徽章
日期:2012-02-13 15:09:232012新春纪念徽章
日期:2012-02-13 15:09:23
79#
发表于 2006-2-24 19:33 | 只看该作者
支持

使用道具 举报

回复
论坛徽章:
10
授权会员
日期:2006-12-11 19:12:24会员2007贡献徽章
日期:2007-09-26 18:42:10数据库板块每日发贴之星
日期:2007-09-09 01:03:40ERP板块每日发贴之星
日期:2007-08-30 01:04:32ERP板块每日发贴之星
日期:2007-08-28 01:04:00ERP板块每日发贴之星
日期:2007-08-26 01:04:03ERP板块每日发贴之星
日期:2007-08-19 01:03:49数据库板块每日发贴之星
日期:2007-08-06 01:03:19ERP板块每日发贴之星
日期:2007-04-02 01:03:29ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:44
80#
发表于 2006-2-28 08:37 | 只看该作者
我也来看看....顶一下

使用道具 举报

回复

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

本版积分规则 发表回复

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