楼主: kelsoncong

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

[复制链接]
论坛徽章:
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
61#
发表于 2012-6-25 20:57 | 只看该作者
想起来后怕,要是这几招不起作用要影响报表报送了。

使用道具 举报

回复
论坛徽章:
0
62#
发表于 2012-6-25 23:10 | 只看该作者
本帖最后由 or_wei 于 2012-6-25 23:11 编辑
kelsoncong 发表于 2012-6-25 16:27
具体是什么bug,什么情况下会发生?压缩表我在生产环境下用过不少啊,还是比较稳定的

好像是update compressed data

使用道具 举报

回复
论坛徽章:
1
ITPUB十周年纪念徽章
日期:2011-11-01 16:20:28
63#
发表于 2012-6-26 02:35 | 只看该作者
拜读2次,收益良多啊。

使用道具 举报

回复
论坛徽章:
3
ITPUB 11周年纪念徽章
日期:2012-10-09 18:14:482013年新春福章
日期:2013-02-25 14:51:24射手座
日期:2015-12-17 12:42:07
64#
发表于 2012-6-26 10:24 | 只看该作者
1.创建合理的索引是至关重要的...
2.保证统计信息的准确性...
3.围绕的想得的数据,对sql语句进行拆分...
4.对系统相关性能的调整及对相关sql语句的优化...

使用道具 举报

回复
论坛徽章:
3
2013年新春福章
日期:2013-02-25 14:51:242014年新春福章
日期:2014-02-18 16:48:49马上加薪
日期:2014-02-18 16:48:49
65#
发表于 2012-6-26 10:29 | 只看该作者
olap可以尝试使用:物化视图,bit map等..

使用道具 举报

回复
论坛徽章:
1
咸鸭蛋
日期:2011-12-13 11:03:10
66#
发表于 2012-6-26 10:33 | 只看该作者
本帖最后由 thain 于 2012-6-26 10:34 编辑

分区、索引、并发、统计信息的收集
分析执行计划(分析前注意统计信息的收集),改写SQL
避免使用游标,用truncate代替delete,中间表、临时表一定要nolog
可以的话开启parallel dml以支持并发写入

使用道具 举报

回复
论坛徽章:
10
ITPUB学员
日期:2010-08-21 18:20:28奥运会纪念徽章:体操
日期:2012-06-26 13:43:312012新春纪念徽章
日期:2012-01-04 11:50:44ITPUB十周年纪念徽章
日期:2011-11-01 16:20:282010广州亚运会纪念徽章:击剑
日期:2011-04-29 11:38:362011新春纪念徽章
日期:2011-02-18 11:43:342010广州亚运会纪念徽章:田径
日期:2011-02-13 17:06:022011新春纪念徽章
日期:2011-01-04 10:37:102010广州亚运会纪念徽章:曲棍球
日期:2010-11-22 15:31:07ITPUB社区12周年站庆徽章
日期:2013-10-08 15:00:34
67#
发表于 2012-6-26 10:49 | 只看该作者
如果某一session比较慢,一般会直接看此session的等待事件,找出问题的根本原因,然后解决。
如果系统在某段时间比较慢,会收集那段时间的AWR报告,分析Top 5 events,逻辑读、物理读和时间模型,找出影响系统慢的主要问题,然后进行分析优化。
做优化N年,发现主要是两个问题:
1)SQL本身的执行计划出了问题:SQL过于复杂,缺少索引,或者是统计信息不准确,总之是SQL没有达到最优执行计划。
注:最优执行计划的确定,如果sql简单,直接人工分析确定,若是复杂,可以借助oracle 的sql advisor
2)数据存取逻辑设计不合理,如楼主举的例子。

使用道具 举报

回复
论坛徽章:
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
68#
发表于 2012-6-26 13:56 | 只看该作者
kelsoncong 发表于 2012-6-25 11:29
继续,

经过上面几板斧下来,性能已经得到很大的提升,而且不用担心历史数据的影响了,时间也缩短到了3个 ...

类似的系统,我有一次将月结从三四个小时优化后只有十一分钟,卡卡...

使用道具 举报

回复
论坛徽章:
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
69#
 楼主| 发表于 2012-6-26 14:02 | 只看该作者
finalarrow 发表于 2012-6-26 13:56
类似的系统,我有一次将月结从三四个小时优化后只有十一分钟,卡卡...

哈哈,介绍一下呢,用了哪些招

使用道具 举报

回复
论坛徽章:
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
70#
发表于 2012-6-26 14:22 | 只看该作者
1. 先从架构上去调整,把一些在OLTP上不必要运算改在OLAP中进行,避免OLTP在交易高峰日的处理风险
2. 采用 Partition & truncate (注意空白Partition表分析)
3. 有些逻辑能合并的就合并,不适合合并的就拆分;另外,业务处理根据实际情况上调整一下顺序(我本人就是其中开发人员之一)
4. 采用temp table(temp table本身在处理完就自动清除的)
5. 如果有update动作,当数据量非常大时,采用分批 update 并批量提交,尽早释放资源
6. 因为是数据仓库,可以适当运用bitmap index
7. 利用分析函数
8. Append + parallel(这一点效果不大,因为机器本身配置不高)
9. 前端ETL导出要尽可能采用增量方式
10. 采用预编译的更新或删除来处理动态SQL
11.  把SQL loader 改为exe/imp,减少前端导出的时间

使用道具 举报

回复

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

本版积分规则 发表回复

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