楼主: kelsoncong

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

[复制链接]
论坛徽章:
5
2010新春纪念徽章
日期:2010-03-01 11:08:292010年世界杯参赛球队:南非
日期:2010-06-20 11:17:01ITPUB9周年纪念徽章
日期:2010-10-08 09:32:272010广州亚运会纪念徽章:田径
日期:2011-01-09 00:21:452011新春纪念徽章
日期:2011-02-18 11:42:49
71#
发表于 2012-6-26 14:58 | 只看该作者
仓库系统里,基本原则就是拆分,数据结构上化整为零,然后就可以各种并行快速处理(加载转换都可以),这个思路与分布式计算也是类似的。
parallel确实很强大,但得IO够强大,楼主那个情况,不只是48core那么简单,估计存储IO也不弱。
在10g的仓库系统里,要小心误走NestLoop的执行计划,吃了很多苦头,无奈只能hint抑制。

使用道具 举报

回复
论坛徽章:
314
行业板块每日发贴之星
日期:2012-07-12 18:47:29双黄蛋
日期:2011-08-12 17:31:04咸鸭蛋
日期:2011-08-18 15:13:51迷宫蛋
日期:2011-08-18 16:58:25紫蛋头
日期:2011-08-31 10:57:28ITPUB十周年纪念徽章
日期:2011-09-27 16:30:47蜘蛛蛋
日期:2011-10-20 15:51:25迷宫蛋
日期:2011-10-29 11:12:59ITPUB十周年纪念徽章
日期:2011-11-01 16:19:41鲜花蛋
日期:2011-11-09 20:33:30
72#
发表于 2012-6-26 14:59 | 只看该作者
kelsoncong 发表于 2012-6-25 11:33
哈哈,除了这三个,大师还有没有什么大招?

其实还有几招,
1  分区,并定时迁移走历史业务数据,用好11G新出的那几类分区,几乎无往不利。
2  除了采集表的统计信息,还要采集 system, fix_table, dict 等统计信息,

使用道具 举报

回复
论坛徽章:
314
行业板块每日发贴之星
日期:2012-07-12 18:47:29双黄蛋
日期:2011-08-12 17:31:04咸鸭蛋
日期:2011-08-18 15:13:51迷宫蛋
日期:2011-08-18 16:58:25紫蛋头
日期:2011-08-31 10:57:28ITPUB十周年纪念徽章
日期:2011-09-27 16:30:47蜘蛛蛋
日期:2011-10-20 15:51:25迷宫蛋
日期:2011-10-29 11:12:59ITPUB十周年纪念徽章
日期:2011-11-01 16:19:41鲜花蛋
日期:2011-11-09 20:33:30
73#
发表于 2012-6-26 15:00 | 只看该作者
finalarrow 发表于 2012-6-25 11:35
学习了。

虽然不是DBA,但刚好也经历过类似的performance enhancement,我也加几点:

若能把UPDATE 改为 INSERT ,效果更佳,我曾优化过,UPDATE 21分钟,改为INSERT 1分钟。

使用道具 举报

回复
论坛徽章:
314
行业板块每日发贴之星
日期:2012-07-12 18:47:29双黄蛋
日期:2011-08-12 17:31:04咸鸭蛋
日期:2011-08-18 15:13:51迷宫蛋
日期:2011-08-18 16:58:25紫蛋头
日期:2011-08-31 10:57:28ITPUB十周年纪念徽章
日期:2011-09-27 16:30:47蜘蛛蛋
日期:2011-10-20 15:51:25迷宫蛋
日期:2011-10-29 11:12:59ITPUB十周年纪念徽章
日期:2011-11-01 16:19:41鲜花蛋
日期:2011-11-09 20:33:30
74#
发表于 2012-6-26 15:01 | 只看该作者
magscott 发表于 2012-6-25 14:34
在oracle11g中,启用compress table,有可能导致悲剧,压缩表会导致一个bug出现,ora-600[2015],上一周遇到这 ...

哪个版本?

使用道具 举报

回复
论坛徽章:
9
ITPUB9周年纪念徽章
日期:2010-10-08 09:31:22奥运会纪念徽章:游泳
日期:2012-07-19 16:38:15奥运会纪念徽章:篮球
日期:2012-10-18 09:31:28奥运会纪念徽章:田径
日期:2012-10-19 10:00:44复活蛋
日期:2013-02-18 15:53:36迷宫蛋
日期:2013-03-05 10:32:55沸羊羊
日期:2015-02-21 23:08:28处女座
日期:2016-02-09 23:01:49妮可·罗宾
日期:2022-02-22 16:23:25
75#
发表于 2012-6-26 15:03 | 只看该作者
ZALBB 发表于 2012-6-26 15:01
哪个版本?

版本是11.2.0.2.0,杯具啊,欲哭无泪....

使用道具 举报

回复
论坛徽章:
314
行业板块每日发贴之星
日期:2012-07-12 18:47:29双黄蛋
日期:2011-08-12 17:31:04咸鸭蛋
日期:2011-08-18 15:13:51迷宫蛋
日期:2011-08-18 16:58:25紫蛋头
日期:2011-08-31 10:57:28ITPUB十周年纪念徽章
日期:2011-09-27 16:30:47蜘蛛蛋
日期:2011-10-20 15:51:25迷宫蛋
日期:2011-10-29 11:12:59ITPUB十周年纪念徽章
日期:2011-11-01 16:19:41鲜花蛋
日期:2011-11-09 20:33:30
76#
发表于 2012-6-26 15:03 | 只看该作者
hwtong 发表于 2012-6-25 17:04
找性能问题,,根据客户反映或者AWR报告找到性能较差的sql
分析性能问题,调试SQL,检查执行计划,查看统计信息 ...

HINT 一般只用来调优,不适合放在SQL语句里。

使用道具 举报

回复
论坛徽章:
314
行业板块每日发贴之星
日期:2012-07-12 18:47:29双黄蛋
日期:2011-08-12 17:31:04咸鸭蛋
日期:2011-08-18 15:13:51迷宫蛋
日期:2011-08-18 16:58:25紫蛋头
日期:2011-08-31 10:57:28ITPUB十周年纪念徽章
日期:2011-09-27 16:30:47蜘蛛蛋
日期:2011-10-20 15:51:25迷宫蛋
日期:2011-10-29 11:12:59ITPUB十周年纪念徽章
日期:2011-11-01 16:19:41鲜花蛋
日期:2011-11-09 20:33:30
77#
发表于 2012-6-26 15:04 | 只看该作者
再推荐,10046,跟踪整个语句的执行过程,哪里耗时调哪里。 这招最管用。

使用道具 举报

回复
论坛徽章:
9
ITPUB9周年纪念徽章
日期:2010-10-08 09:31:22奥运会纪念徽章:游泳
日期:2012-07-19 16:38:15奥运会纪念徽章:篮球
日期:2012-10-18 09:31:28奥运会纪念徽章:田径
日期:2012-10-19 10:00:44复活蛋
日期:2013-02-18 15:53:36迷宫蛋
日期:2013-03-05 10:32:55沸羊羊
日期:2015-02-21 23:08:28处女座
日期:2016-02-09 23:01:49妮可·罗宾
日期:2022-02-22 16:23:25
78#
发表于 2012-6-26 15:05 | 只看该作者
magscott 发表于 2012-6-26 15:03
版本是11.2.0.2.0,杯具啊,欲哭无泪....

好像说11.2.0.3.0,解决了这个bug问题...,如果不升级,db过个几分钟,pmon会自动kill instance,导致db stop

使用道具 举报

回复
论坛徽章:
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
79#
发表于 2012-6-26 15:13 | 只看该作者
ZALBB 发表于 2012-6-26 15:00
若能把UPDATE 改为 INSERT ,效果更佳,我曾优化过,UPDATE 21分钟,改为INSERT 1分钟。

之前已经insert过的记录,因为业务的流程及逻辑所限,只能做update的。

一般来说,尽可能是做insert,避免update。性能确实是差很远的。

使用道具 举报

回复
论坛徽章:
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
80#
发表于 2012-6-26 15:16 | 只看该作者
lei 发表于 2012-6-26 14:58
仓库系统里,基本原则就是拆分,数据结构上化整为零,然后就可以各种并行快速处理(加载转换都可以),这个 ...

对的。如果partition分区一开始没数据,然后新加了数据马上操作,很容易引起 Nest Loop的执行计划,这时就头大了,平时一分钟的SQL花十几个小时也跑不完。

使用道具 举报

回复

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

本版积分规则 发表回复

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