楼主: kelsoncong

[精华] 数据库调优的三板斧[已结贴]

[复制链接]
论坛徽章:
1088
金色在线徽章
日期:2007-04-25 04:02:08金色在线徽章
日期:2007-06-29 04:02:43金色在线徽章
日期:2007-03-11 04:02:02在线时间
日期:2007-04-11 04:01:02在线时间
日期:2007-04-12 04:01:02在线时间
日期:2007-03-07 04:01:022008版在线时间
日期:2010-05-01 00:01:152008版在线时间
日期:2011-05-01 00:01:342008版在线时间
日期:2008-06-03 11:59:43ITPUB年度最佳技术原创精华奖
日期:2013-03-22 13:18:30
21#
发表于 2012-6-25 11:03 | 只看该作者
调优秘籍:砍砍砍
没有必要做的动作,坚决不做

使用道具 举报

回复
论坛徽章:
67
现任管理团队成员
日期:2012-06-02 02:10:00ITPUB元老
日期:2012-09-12 14:06:14ITPUB社区千里马徽章
日期:2013-06-09 10:15:34季节之章:冬
日期:2012-09-04 11:05:30季节之章:春
日期:2012-09-05 09:20:36优秀写手
日期:2013-12-18 09:29:09马上有房
日期:2014-04-10 13:35:362014年新春福章
日期:2014-04-14 09:54:08马上有车
日期:2014-02-28 16:43:13马上加薪
日期:2014-02-19 11:55:14
22#
 楼主| 发表于 2012-6-25 11:17 | 只看该作者
继续

做个分层聚合的兄弟可能有过经验,那就是聚合后的数据的排序其实还是非常有规律性的。
Oracle11g里面的压缩表技术也比较的成熟了,分区表技术通过压缩技术减少空间的占用,可以大大的提升查询的性能。
正好个系统的数据库是11g的,经过测试以后,我把其中的几张超大的表,转换成了压缩表。 压缩率还是非常给力的。
这几张上百G的表,压缩以后都变成了30-40G左右,对这些标的分区扫描的时间也大大地缩短。性能得到了很大的提升。

未完待续....

使用道具 举报

回复
论坛徽章:
67
现任管理团队成员
日期:2012-06-02 02:10:00ITPUB元老
日期:2012-09-12 14:06:14ITPUB社区千里马徽章
日期:2013-06-09 10:15:34季节之章:冬
日期:2012-09-04 11:05:30季节之章:春
日期:2012-09-05 09:20:36优秀写手
日期:2013-12-18 09:29:09马上有房
日期:2014-04-10 13:35:362014年新春福章
日期:2014-04-14 09:54:08马上有车
日期:2014-02-28 16:43:13马上加薪
日期:2014-02-19 11:55:14
23#
 楼主| 发表于 2012-6-25 11:29 | 只看该作者
继续,

经过上面几板斧下来,性能已经得到很大的提升,而且不用担心历史数据的影响了,时间也缩短到了3个小时左右,已经满足客户的预期了,不过我最后一板斧砍下去以后,时间从3个小时缩短到了一个小时以内,效果好的我自己的都受不了。
这个斧头其实也不神秘,很多兄弟都会用的,只是我的那台服务器的CPU太强劲了,是64核的,说到这,有兄弟已经猜到要干什么了
对,就是DBA常用的必杀技,开并发。不过这个必杀技还是要看场合的,一般并发量大,用户多,操作小的oltp场景用几乎没什么效果,有时候还有副作用。
但是在现在这个场景里,低并发(大多数情况下就一个连接),大数据量,爆强CPU,开并发实在是太合适了,不开真的是对不起自己,对不起公司,对不起客户,对不起党和国家。。。

查看了一下数据库参数,已经支持并发了,下面我要做的就是在语句前面加hint,显示的要求并发操作。 这个hint一加,世界瞬间就和平了,真个过程在1个小时内就收工了,以至于客户经常怀疑我们的过程是不是没跑。

上面几板斧抡下来,基本就打完收工了,此次调优也获得了圆满成功。

使用道具 举报

回复
论坛徽章:
67
现任管理团队成员
日期:2012-06-02 02:10:00ITPUB元老
日期:2012-09-12 14:06:14ITPUB社区千里马徽章
日期:2013-06-09 10:15:34季节之章:冬
日期:2012-09-04 11:05:30季节之章:春
日期:2012-09-05 09:20:36优秀写手
日期:2013-12-18 09:29:09马上有房
日期:2014-04-10 13:35:362014年新春福章
日期:2014-04-14 09:54:08马上有车
日期:2014-02-28 16:43:13马上加薪
日期:2014-02-19 11:55:14
24#
 楼主| 发表于 2012-6-25 11:32 | 只看该作者
chen428 发表于 2012-6-25 10:06
楼主 有这样的疑问
你分区条件是什么
过程里面是动态添加分区吗?

这个系统的时间性很强,因此是根据时间分区的,
没做成动态的,基本山每年年底的时候运维的兄弟会依葫芦画瓢来手工添加的。

使用道具 举报

回复
论坛徽章:
4
灰彻蛋
日期:2012-05-16 11:07:37迷宫蛋
日期:2012-05-28 11:08:36咸鸭蛋
日期:2012-06-04 18:25:05蜘蛛蛋
日期:2012-06-07 14:48:16
25#
发表于 2012-6-25 11:33 | 只看该作者


正好这段时间在弄这个,谢谢LZ分享!

使用道具 举报

回复
论坛徽章:
67
现任管理团队成员
日期:2012-06-02 02:10:00ITPUB元老
日期:2012-09-12 14:06:14ITPUB社区千里马徽章
日期:2013-06-09 10:15:34季节之章:冬
日期:2012-09-04 11:05:30季节之章:春
日期:2012-09-05 09:20:36优秀写手
日期:2013-12-18 09:29:09马上有房
日期:2014-04-10 13:35:362014年新春福章
日期:2014-04-14 09:54:08马上有车
日期:2014-02-28 16:43:13马上加薪
日期:2014-02-19 11:55:14
26#
 楼主| 发表于 2012-6-25 11:33 | 只看该作者
lorikyo 发表于 2012-6-25 11:01
其实我觉得调优的 三板斧是,加索引,加hint,收集统计信息 over

哈哈,除了这三个,大师还有没有什么大招?

使用道具 举报

回复
论坛徽章:
67
现任管理团队成员
日期:2012-06-02 02:10:00ITPUB元老
日期:2012-09-12 14:06:14ITPUB社区千里马徽章
日期:2013-06-09 10:15:34季节之章:冬
日期:2012-09-04 11:05:30季节之章:春
日期:2012-09-05 09:20:36优秀写手
日期:2013-12-18 09:29:09马上有房
日期:2014-04-10 13:35:362014年新春福章
日期:2014-04-14 09:54:08马上有车
日期:2014-02-28 16:43:13马上加薪
日期:2014-02-19 11:55:14
27#
 楼主| 发表于 2012-6-25 11:34 | 只看该作者
dingjun123 发表于 2012-6-25 11:03
调优秘籍:砍砍砍
没有必要做的动作,坚决不做

这个的确是,有时候移除不必要的操作,效果比调优明显

使用道具 举报

回复
论坛徽章:
20
马上有钱
日期:2014-03-05 18:13:002013年新春福章
日期:2013-02-25 14:51:24ITPUB 11周年纪念徽章
日期:2012-10-09 18:05:072012新春纪念徽章
日期:2012-01-04 11:49:54ITPUB十周年纪念徽章
日期:2011-11-01 16:19:41迷宫蛋
日期:2011-11-07 14:46:51茶鸡蛋
日期:2011-07-11 20:36:00咸鸭蛋
日期:2011-06-30 15:11:57辩论纪念章
日期:2010-11-15 09:41:552010广州亚运会纪念徽章:网球
日期:2011-05-11 14:11:47
28#
发表于 2012-6-25 11:35 | 只看该作者
学习了。

虽然不是DBA,但刚好也经历过类似的performance enhancement,我也加几点:
1. 如果有update动作,当数据量非常大时,采用分批 update 并批量提交,尽早释放资源
2. 复杂的SQL必要时可以拆分;分开执行的SQL根据业务规则可以适当合并(非DBA干的活了)
3. 因为是数据仓库,可以适当运用bitmap index
4. 注意partition表的分析计划,因为没数据时是空的,容易导致插入数据后因为没有作analyze导致执行计划出错
5. 根据需要采用temp table(又是开发人员的活了)
6. 数据仓库有时采用分析函数会大大加快性能

其实优化的核心还是在于开发人员,DBA只能从现有的SQL和表结构去考虑。

使用道具 举报

回复
论坛徽章:
67
现任管理团队成员
日期:2012-06-02 02:10:00ITPUB元老
日期:2012-09-12 14:06:14ITPUB社区千里马徽章
日期:2013-06-09 10:15:34季节之章:冬
日期:2012-09-04 11:05:30季节之章:春
日期:2012-09-05 09:20:36优秀写手
日期:2013-12-18 09:29:09马上有房
日期:2014-04-10 13:35:362014年新春福章
日期:2014-04-14 09:54:08马上有车
日期:2014-02-28 16:43:13马上加薪
日期:2014-02-19 11:55:14
29#
 楼主| 发表于 2012-6-25 11:37 | 只看该作者
上面是我总结了某次调优的小案例,用的招数其实是很简单很普通的,相信大家都有用过。
不过最终的效果还算不错,主要原因是在这些招数都运用在了合理的场合。

使用道具 举报

回复
论坛徽章:
67
现任管理团队成员
日期:2012-06-02 02:10:00ITPUB元老
日期:2012-09-12 14:06:14ITPUB社区千里马徽章
日期:2013-06-09 10:15:34季节之章:冬
日期:2012-09-04 11:05:30季节之章:春
日期:2012-09-05 09:20:36优秀写手
日期:2013-12-18 09:29:09马上有房
日期:2014-04-10 13:35:362014年新春福章
日期:2014-04-14 09:54:08马上有车
日期:2014-02-28 16:43:13马上加薪
日期:2014-02-19 11:55:14
30#
 楼主| 发表于 2012-6-25 11:38 | 只看该作者
我的砖头抛完了,大家的玉赶快砸过来

使用道具 举报

回复

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

本版积分规则 发表回复

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