楼主: 丸喵喵

【大话IT】身怀数据库优化绝技,如何进行oracle性能诊断?

[复制链接]
论坛徽章:
220
状元
日期:2015-08-13 09:42:33榜眼
日期:2015-08-03 13:57:54探花
日期:2015-07-31 13:44:02举人
日期:2015-07-01 15:00:51秀才
日期:2015-07-27 09:45:52进士
日期:2015-07-27 11:26:492015年中国系统架构师大会纪念徽章
日期:2015-07-23 09:58:092014系统架构师大会纪念章
日期:2015-07-23 09:58:092013系统架构师大会纪念章
日期:2015-07-23 09:58:092012系统架构师大会纪念章
日期:2015-07-23 09:58:09
51#
发表于 2016-12-31 22:15 | 只看该作者
1 请讲述你在实际工作中最满意的一次oracle性能诊断经过?
我是程序员,不是专业的DBA,好像没有过性能诊断的经历。但是最牛B的时刻大概也是03年4月份的时候参加华为面试。我和面试官讨论的就是Oracle。当时刚把Oracle8i宝典看了两遍,好多知识点也算了解。面试官和我讨论Oracle讨论了一天(中午吃了饭就我下午接着去)。只可惜当时是测试的职位。由于其它原因没有去华为。
2 请讲述你认为的oracle性能诊断和Oracle开发之间的关系
可能做得最多的是开发了。用得最多的是Oracle存储过程。当时社会保险MIS主要开发模式是C/S,前端PB加后端Oracle PL/SQL存储过程。开发是把存储过程写好,保证没有错误和结果正确。而性能诊断是要优化性能相关的方面,保证运行速度。
3  请讲述你在oracle性能诊断方面的失误及教训
事隔多年,现在使用SQL Server Express版本。使用Linq 2 SQL,有时查询的时候这种ORM工具性能还是有较大的影响,感觉100多条数据的时候就有点慢。
4  请推荐你在oracle性能诊断方面使用的工具
这个方面不是专家,不敢瞎说。不过PL/SQL Developer和Toad好像还两款不错的第三方工具。

1人打赏

使用道具 举报

回复
论坛徽章:
0
52#
发表于 2017-1-3 10:12 | 只看该作者
英文的有

使用道具 举报

回复
论坛徽章:
0
53#
发表于 2017-1-3 23:25 | 只看该作者
1 请讲述你在实际工作中最满意的一次oracle性能诊断经过?
    其实在日常中,主要的性能问题就是SQL语句调优,主要是针对执行计划,索引,统计信息等手段进行。还有一部分是同硬件环境相关的问题排查解决,当然AIX,LINUX下的问题总结都很多,但记得最深的一次还是入行碰到的那一次。多年前某政府部门提供一台配置不错的机器,装的是windows系统+oracale10g,专用为向领导层演示用的,一天大领导要看系统演示,可不知怎么回事,这台机器开机启动就花了2小时,启来了本机连数据库没问题,访问其他机器的应用也没问题,但从其他机器的应用层访问不了数据库,用plsql也不行,就报tns无法连接。接骨眼上出问题很要命,客户要求15分钟内解决问题,一下变政治任务了。第一遍检查防火墙,交换机  都没有设置端口限制,本机访问操作数据库正常,telnet此机的1521默认端口也正常,但就是连不进来。客户逼得紧,也赶紧梳理一下oracle监听连接流程和原理,1521只是建立一个可访问连接握手,真正的连接访问端口是数据库另外发起的,连不上,说明除1521外的端口肯定被限制了。虽然可以设置use_shared_socket参数共用1521端口,但客户不赞同。重压之余,联系到此机以前只需5分钟而现在启动要2小时的异常,问客户最近对机器做过什么特殊操作没有? 客户很肯定的回答没有。网络没问题,单端口出现异常,那只能跟网卡有关联。突然想到是否网卡有古怪,不断检查网卡的各项属性,果然在网卡属性里的高级筛选选项中发现古怪,网卡对端口做了筛选,其中一个就是只允许1521和其他一些应用的端口通过。这也解释了机器为何启动如此慢。果断取消网卡中的筛选,重启机器,5分钟内就启动完成,数据库服务一开启,演示系统正常连接进来,问题总算解决了。后继给领导的演示就很顺利了。但最后谁修改了网卡的端口筛选,客户一个都不承认,这也是"正常的反应"。重压之下终得升天,痛并快乐着。
  

2 请讲述你认为的oracle性能诊断和Oracle开发之间的关系?
  性能诊断和调优有些是来自开发的需求,要想调优好就必须懂开发或者搞过开发,才能对系统有深入的使用体会和明确的目的。
  搞过开发后从事调优较有优势,至少从工具使用层面是没有问题的,同时一些SQL调优需要基于业务进行分析调整,不懂开发,则调优达不到好的效果。
  如果你提的改进建议没有站在开发的角度进行考虑,受到开发抵触几率是很大的。要会基于开发角度思考如何调整SQL实现,如何进行业务的合理变更达到更好的效果或改善性能。
  不能只单纯丢个报告,这个地方有问题,这个语句有问题就完事了。要具体到如何改,有什么选择方案。这样双方都能理解才能有好的合作。
  
3 请讲述你在oracle性能诊断方面的失误及教训?
  切记在没有完全了解环境和问题的来龙去脉之前就立马操刀,这是兵家大忌。
  一次测试数据库启动不了了,根据日志等错误提示直接就开始做恢复处理,可到恢复到最后,越处理问题越多,都快到库需要重建的地步。挫败感到顶点了,最后好好沉下心来仔细检查恢复步骤和日志,突然发现 alert.log中的日期好像同自己手机上的时间不同,一看差了一个月。原来有人改了linux机器时间,导致数据库启动不了 。
  折腾这么久,原来就是这个问题导致的,捶胸顿足不已。
  所以碰到问题,先不动现场,要检查时间,用户,实例号,IP等都是正确无误后,才能做下一步的环境信息和问题信息收集处理.
  解决方法能在自己机器上模拟一试的,一定要模拟通过后才能应用于现场。
  多做CASE总结,也多学习别人的处理思路、过程。
  对调优涉及到东西要知其然,更要知其所已然,对原理了解透彻后,才能分步骤,分范围的检查,缩小包围圈最终找到病根才可。
  技术要多收集整理学习,新版本和新特性要多了解.
   多上itpub等社区看看别人的交流和心得体会。

4 请推荐你在oracle性能诊断方面使用的工具?
  addmrpt,awr报告这是最常用的。
  aix,linux下的shell脚本处理要熟悉.
    平时多收集整理有用的SQL脚本,诊断脚本,用时就能直接出手了,这个是最实用个人专用武器。
  

使用道具 举报

回复
求职 : 数据库开发
论坛徽章:
4
2014年新春福章
日期:2014-02-18 16:43:09马上有钱
日期:2014-02-18 16:43:09优秀写手
日期:2014-04-23 06:00:19红宝石
日期:2014-06-03 13:13:19
54#
发表于 2017-1-8 23:15 | 只看该作者
1 请讲述你在实际工作中最满意的一次oracle性能诊断经过?
  作为一个甲方公司的开发DBA,优化就是份内工作,出现了就得解决,但小公司无非是些索引、执行计划走错、类型混淆的小case,没什么拿得出手的,倒是把这些常见问题(无索引导致的全表,少写条件的笛卡尔积,数字与字符混淆,date与timestamp混淆,统计信息导致的执行计划走错等)的SQL提前扫出来并发给开发人员整改从而有效地避免了性能问题的的产生,这个算是我最满意的;

2 请讲述你认为的oracle性能诊断和Oracle开发之间的关系?
  开发与性能的关系是密不可分的,要么开发人员同时掌握性能诊断,要么配备专门的性能诊断人员,只管开发上版本,不管性能与体验是不可取的,后面付出的代价往往更高;
  
3 请讲述你在oracle性能诊断方面的失误及教训?
删除索引要小心, 测试环境量太小,问题测不出,上线会话大阻塞;分区清理造成全局索引失效,原来走索引的变成大表全表扫描,会话大阻塞;
索引脚本打在了system用户下,在交易库内也能使用索引,但却导致索引不能复制到查询库,从而查询库走不了索引;

4 请推荐你在oracle性能诊断方面使用的工具?
AWR是巨无霸,信息量很大;
动态视图值得深挖;
sql monitor是优化尖刀;
执行计划固定是解决问题的快速方法;
10053,10046,必要的时候还得靠它们;
MyDBtools插件也不错哦,集成了各位大师的工具,能帮助提高效率;


使用道具 举报

回复
论坛徽章:
49
NBA季后赛之星
日期:2014-10-19 19:51:33蓝锆石
日期:2014-10-19 19:51:33指数菠菜纪念章
日期:2014-10-19 19:52:33指数菠菜纪念章
日期:2014-10-19 19:52:33指数菠菜纪念章
日期:2014-10-19 19:52:33指数菠菜纪念章
日期:2014-10-19 19:52:33问答徽章
日期:2014-04-15 10:41:44优秀写手
日期:2014-07-24 06:00:11保时捷
日期:2014-10-19 19:51:33三菱
日期:2014-10-19 19:51:33
55#
发表于 2017-1-10 16:46 | 只看该作者
1 请讲述你在实际工作中最满意的一次oracle性能诊断经过?
--太多了,不下一百次都很满意吧
2 请讲述你认为的oracle性能诊断和Oracle开发之间的关系
--不光是修路的和司机的关系,还要分析、纠正司机出事故的原因、规避办法
3  请讲述你在oracle性能诊断方面的失误及教训
--印象中没有失误
4  请推荐你在oracle性能诊断方面使用的工具  
--最好的工具就是查阅动态性能视图,偶尔用spotlight看看全局情况。

使用道具 举报

回复

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

本版积分规则 发表回复

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