楼主: 2009532140

话题讨论:oracle的执行计划,你会看么?

[复制链接]
求职 : 数据库管理员
论坛徽章:
17
2011新春纪念徽章
日期:2011-02-18 11:43:34itpub13周年纪念徽章
日期:2014-10-08 15:13:382014年世界杯参赛球队: 俄罗斯
日期:2014-07-17 17:21:42ITPUB季度 技术新星
日期:2014-07-17 14:37:00马上加薪
日期:2014-05-30 16:34:48马上有房
日期:2014-05-16 14:12:02马上有车
日期:2014-05-05 11:57:522014年新春福章
日期:2014-04-29 11:42:05技术图书徽章
日期:2014-02-09 09:36:59优秀写手
日期:2013-12-18 09:29:16
21#
发表于 2014-4-3 10:08 | 只看该作者
2009532140 发表于 2014-4-3 09:59
哈,老总是CU 的实习管理啊...指点指点呗...

谈不上指点呀,术业有专攻,性能优化感觉还是本帖中版主和几位大牛说的方法好。

使用道具 举报

回复
论坛徽章:
82
2013系统架构师大会纪念章
日期:2015-07-31 17:48:20探花
日期:2015-08-17 14:58:32榜眼
日期:2015-08-17 14:59:28进士
日期:2015-08-17 15:00:55举人
日期:2015-08-17 15:00:55秀才
日期:2015-08-19 09:36:37秀才
日期:2015-08-20 08:50:41嫦娥
日期:2015-08-21 09:11:54秀才
日期:2015-08-24 09:48:07进士
日期:2015-08-17 14:58:18
22#
发表于 2014-4-3 12:16 | 只看该作者
TX__wangbeng 发表于 2014-4-2 13:27
那个头像极丑的robinson?
优化的结果证明他的思路是对的。

怎么能这么说呢,虽然确实是丑。。。哈哈

使用道具 举报

回复
论坛徽章:
4
灰彻蛋
日期:2013-01-10 11:04:47马上有房
日期:2014-04-16 17:18:382014年世界杯参赛球队: 洪都拉斯
日期:2014-06-14 16:29:47蓝色妖姬
日期:2015-01-05 16:02:09
23#
发表于 2014-4-3 16:33 | 只看该作者
1:做过oracle DBA 的应该都查看过某个SQL 的执行计划,关于看SQL 的执行计划你都用过什么方式呢?

1)通过PL/SQL Dev工具
2)通过sqlplus
  2.1set autotrace on
  2.2用explain plan命令
  
2:你觉得哪种方式查看的计划最为准确?为什么?能否给出例子。

用explain plan命令比较准确。

(1) sqlplus > explain plan for select * from testdb.myuser(2) sqlplus > select * from table(dbms_xplan.display);  其实,在很多情况下,我们只会听一个客户抱怨说现在系统运行很慢,而我们不知道是哪个SQL引起的。此时有许多现成的语句可以找出耗费资源比较多的语句,如:SELECT ADDRESS, substr(SQL_TEXT,1,20) Text, buffer_gets, executions,buffer_gets/executions AVG  FROM  v$sqlareaWHERE executions>0 AND buffer_gets > 100000   ORDER BY 5;ADDRESS      TEXT                     BUFFER_GETS    EXECUTIONS        AVG-------- ---------------------------------------- ----------- ---------- ------------------------------------------------------------66D83D64   select t.name,  (sel               421531        60104             7.0133601766D9E8AC   select t.schema, t.n               1141739        2732             417.91325066B82BCC   select s.synonym_nam             441261        6                73543.5  从而对找出的语句进行进一步优化。当然我们还可以为一个正在运行的会话中运行的所有SQL语句生成执行计划,这需要对该会话进行跟踪,产生trace文件,然后对该文件用tkprof程序格式化一下,这种得到执行计划的方式很有用,因为它包含其它额外信息,如SQL语句执行的每个阶段(如Parse、Execute、Fetch)分别耗费的各个资源情况(如CPU、DISK、elapsed等)。


3:作为DBA 来说,很可能对业务不甚了解,再加上业务的繁杂可能导致要DBA 帮助优化的SQL 可能是上百行,有丰富经验的你来说,如何快速定位一个SQL 性能问题的关键部分?
例如:http://www.itpub.net/forum.php?m ... ra=pageD1%3D&page=1
这位楼主的SQL ,性能问题可能出在哪里?为什么?




使用道具 举报

回复
求职 : 数据库管理员
招聘 : Java研发
论坛徽章:
6402
娜美
日期:2021-10-12 20:11:36技术图书徽章
日期:2021-09-30 12:11:1120周年集字徽章-年	
日期:2021-09-30 12:12:5820周年集字徽章-20	
日期:2021-09-30 12:43:0619周年集字徽章-周
日期:2021-09-30 13:18:3120周年集字徽章-20	
日期:2021-09-30 16:44:1219周年集字徽章-周
日期:2021-09-30 17:01:04技术图书徽章
日期:2021-09-30 17:59:14技术图书徽章
日期:2021-10-06 10:36:4019周年集字徽章-19
日期:2021-10-06 14:43:24
24#
 楼主| 发表于 2014-4-3 17:06 | 只看该作者
qq262420958 发表于 2014-4-3 16:33
1:做过oracle DBA 的应该都查看过某个SQL 的执行计划,关于看SQL 的执行计划你都用过什么方式呢?

1)通 ...

查看方式还有好几种。
另外,查看准确的执行计划方法可不是explain 啊

使用道具 举报

回复
论坛徽章:
4
灰彻蛋
日期:2013-01-10 11:04:47马上有房
日期:2014-04-16 17:18:382014年世界杯参赛球队: 洪都拉斯
日期:2014-06-14 16:29:47蓝色妖姬
日期:2015-01-05 16:02:09
25#
发表于 2014-4-3 17:15 | 只看该作者
2009532140 发表于 2014-4-3 17:06
查看方式还有好几种。
另外,查看准确的执行计划方法可不是explain 啊

我是新手,还请赐教~
请问你觉得最准确的方法是什么呢

使用道具 举报

回复
论坛徽章:
737
季节之章:春
日期:2015-07-31 17:16:29ITPUB季度 技术新星
日期:2014-07-17 14:37:00季节之章:秋
日期:2015-07-31 17:16:14季节之章:夏
日期:2015-07-31 17:16:29股神
日期:2014-10-15 09:23:31衰神
日期:2014-10-20 22:47:12季节之章:冬
日期:2015-07-31 17:16:14红钻
日期:2014-12-16 17:51:41洛杉矶湖人
日期:2016-09-23 08:18:15布鲁克林篮网
日期:2016-09-23 08:17:18
26#
发表于 2014-4-3 18:57 | 只看该作者
2009532140 发表于 2014-4-3 17:06
查看方式还有好几种。
另外,查看准确的执行计划方法可不是explain 啊

看了cuihua的书了,?

使用道具 举报

回复
求职 : 数据库管理员
招聘 : Java研发
论坛徽章:
6402
娜美
日期:2021-10-12 20:11:36技术图书徽章
日期:2021-09-30 12:11:1120周年集字徽章-年	
日期:2021-09-30 12:12:5820周年集字徽章-20	
日期:2021-09-30 12:43:0619周年集字徽章-周
日期:2021-09-30 13:18:3120周年集字徽章-20	
日期:2021-09-30 16:44:1219周年集字徽章-周
日期:2021-09-30 17:01:04技术图书徽章
日期:2021-09-30 17:59:14技术图书徽章
日期:2021-10-06 10:36:4019周年集字徽章-19
日期:2021-10-06 14:43:24
27#
 楼主| 发表于 2014-4-4 08:23 | 只看该作者
oracle_cj 发表于 2014-4-3 18:57
看了cuihua的书了,?

那江老板给说说呗...
我之前看OO 说过一嘴..

使用道具 举报

回复
论坛徽章:
8
马上有房
日期:2014-10-17 16:12:52优秀写手
日期:2014-12-06 06:00:14暖羊羊
日期:2015-03-04 14:54:572015年新春福章
日期:2015-03-06 11:59:47目光如炬
日期:2015-06-07 22:00:00秀才
日期:2015-07-14 09:44:30秀才
日期:2015-11-23 09:48:22狮子座
日期:2016-01-25 13:38:55
28#
发表于 2014-4-4 08:30 | 只看该作者
膜拜下

使用道具 举报

回复
论坛徽章:
737
季节之章:春
日期:2015-07-31 17:16:29ITPUB季度 技术新星
日期:2014-07-17 14:37:00季节之章:秋
日期:2015-07-31 17:16:14季节之章:夏
日期:2015-07-31 17:16:29股神
日期:2014-10-15 09:23:31衰神
日期:2014-10-20 22:47:12季节之章:冬
日期:2015-07-31 17:16:14红钻
日期:2014-12-16 17:51:41洛杉矶湖人
日期:2016-09-23 08:18:15布鲁克林篮网
日期:2016-09-23 08:17:18
29#
发表于 2014-4-4 13:22 | 只看该作者
zhichi....

使用道具 举报

回复
论坛徽章:
57
SQL极客
日期:2013-12-09 14:13:35秀才
日期:2016-01-21 13:42:39秀才
日期:2016-01-13 12:14:26SQL大赛参与纪念
日期:2016-01-13 10:32:19SQL数据库编程大师
日期:2016-01-13 10:30:43秀才
日期:2015-12-14 14:47:54秀才
日期:2015-10-19 15:50:392015年新春福章
日期:2015-03-06 11:58:18懒羊羊
日期:2015-03-04 14:52:11优秀写手
日期:2014-11-08 06:00:14
30#
发表于 2014-4-6 20:28 | 只看该作者
dbm_xplan.display_cursor看生产的比较准,使用advanced选项可以看到绑定变量,其实有条件的做个trace会比较好。一般f5也能够用,连接方式扫描方式连接顺序,就这三个可以调整,往往是sql太复杂和统计信息和表设计不好引起的,所以不要写太复杂的sql,适当分解或用hint固定

使用道具 举报

回复

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

本版积分规则 发表回复

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