楼主: 丸喵喵

讨论送书:收获,不止SQL优化——抓住SQL的本质

[复制链接]
论坛徽章:
27
ITPUB官方微博粉丝徽章
日期:2011-08-17 10:35:36托尼托尼·乔巴
日期:2017-10-25 16:45:57秀才
日期:2017-04-05 13:18:06秀才
日期:2017-03-02 10:35:322016猴年福章
日期:2016-02-23 09:58:342016猴年福章
日期:2016-02-18 09:31:302015年新春福章
日期:2015-03-06 11:57:312014年新春福章
日期:2014-02-18 16:42:022013年新春福章
日期:2013-02-25 14:51:24ITPUB 11周年纪念徽章
日期:2012-10-09 18:07:31
61#
发表于 2017-6-12 10:47 | 只看该作者
好书,Mark留名

使用道具 举报

回复
论坛徽章:
0
62#
发表于 2017-6-12 11:52 | 只看该作者
好书,见过最好的好书

使用道具 举报

回复
论坛徽章:
3
秀才
日期:2017-01-20 11:04:31秀才
日期:2018-01-02 15:17:54秀才
日期:2018-01-02 15:29:29
63#
发表于 2017-6-13 09:10 | 只看该作者
wabjtam123 发表于 2017-6-12 05:52
有兴趣可以加我微信(18950296121) 或者Q 45240040,说明一下“SQL优化学习”,更多细节可以多多探讨。

买到了,今天就到货~

使用道具 举报

回复
论坛徽章:
2
秀才
日期:2015-12-14 15:09:38秀才
日期:2015-12-18 09:28:57
64#
发表于 2017-6-13 13:27 | 只看该作者
买买买,就冲着“收货,不止oracle”也要买,相信作者

使用道具 举报

回复
论坛徽章:
15
授权会员
日期:2011-02-21 16:41:592016猴年福章
日期:2016-02-23 09:58:34技术图书徽章
日期:2018-11-03 16:57:42
65#
发表于 2017-6-14 12:55 | 只看该作者
要先整体后局部,解决问题要注重效率,先尽量考虑不改写的优化,再考虑改写的优化。而不改写的优化靠的是体系结构知识的沉淀,而改写则要考虑逻辑等价改写和业务改写两大思路,其中业务改写是 SQL 优化的最高境界。另外还是要有一定的知识沉淀,高级 SQL 的语法也要掌握。

使用道具 举报

回复
论坛徽章:
6
奥运纪念徽章
日期:2013-07-18 13:55:122014年新春福章
日期:2014-02-18 16:49:31马上有钱
日期:2014-02-18 16:49:31目光如炬
日期:2016-12-12 01:27:58目光如炬
日期:2016-12-25 22:00:00火眼金睛
日期:2017-01-03 01:13:18
66#
发表于 2017-6-16 09:31 | 只看该作者
恩 已购买,有作者签名。

使用道具 举报

回复
论坛徽章:
1
秀才
日期:2015-11-30 09:59:23
67#
发表于 2017-6-16 11:14 | 只看该作者
hai503 发表于 2017-5-20 15:36
1. SQL优化可以用到那些性能工具
AWR首当其冲,ASH,ADDM,sql monitor,10046 event ...(这个问题在以前 ...

膜拜大神了。

我目前只懂一些基本的SQL,还淡不上什么优化。

希望可以有机会获赠这本书,进一步系统学习。

使用道具 举报

回复
论坛徽章:
32
懒羊羊
日期:2015-03-25 16:16:10ITPUB14周年纪念章
日期:2015-10-26 17:24:11射手座
日期:2015-09-23 08:53:55喜羊羊
日期:2015-06-15 13:04:17暖羊羊
日期:2015-05-21 16:12:35沸羊羊
日期:2015-05-07 17:25:26暖羊羊
日期:2015-05-21 16:12:35暖羊羊
日期:2015-05-21 16:12:35慢羊羊
日期:2015-04-21 17:07:36慢羊羊
日期:2015-03-25 09:38:59
68#
发表于 2017-6-16 13:41 | 只看该作者
还是一样的味道 还是一样的配方  已入手~

使用道具 举报

回复
论坛徽章:
0
69#
发表于 2017-6-16 14:32 | 只看该作者
样章读后感:     
      读了试读样章。作者文笔轻松活泼,由案例循循善诱,不断剖析不同场景下的不同处理心得,武功虽好也要善于灵活应用才是真的好,不然也只是花架子。
其实工作中 大部分的调优工作都是如同读者所述的分不同场景case,了解前因后果,选择最适合的方法解决,切忌一不做二不休的硬处理,这样会有很大的隐患。
要善于使用读取awr和addm报告,对整个系统的性能状况有全局性得到认识。在现在这种大数据的环境下,我们除了关心 top5的 event和 sql 外,正如作者所描述的
关注段和存储对象的使用统计,从IO热点度的方向去调优才能对整个大局有利,现在的硬件水平,SQL的性能限制主要集中在IO这块了,单纯某个sql的调优如果不放在大环境中考虑,
优化结果并不一定达到用户的要求,例如建个索引或者调整了执行计划让原本执行10秒的语句减为1s,但不考虑全局如果当前库的负担整体很重,sql执行频繁的情况,实际还是慢,这样的调优能带给用户多大的满意度呢?针对段、存储的热度合理进行数据库后台的IO搭建调整处理,才能使整个库的性能得到提升,然后基于sql优化就游刃有余。在样章中作者就对此种场景做了总结,有强烈共鸣。
样章中针对gc buffer busy,gc request的事件处理方式,虽然短短几句话,但会让迷茫着有醍醐灌顶之感, 因为这种事件是多节点数据库环境经常出现的问题,而根源其实关系到
前端应用的合理部署问题,一些生产系统为了应对访问压力,将前端系统部署多台应用服务器,访问不同的数据库节点,从而达到性能解决目的,但出现这些等待事件说明了前端部署
存在不合理之处。应该将相关模块行为一类的固定访问某个节点,从而在不增加sga内存的情况下降低此种事件的概率。这对前端的开发布局提出了要求,对数据库和前端的框架定义就要提前
进行合理的部署规划,这样后期的项目维护上线才有稳定可靠得到保证。 作者短短的一个样章就传递出多年的经验积累,让初涉调优行列的读者能少走弯路,加快成熟度非常有帮助。
读了样章,细细思考,获益良多,对全书更是期待拜读为快了。

1. SQL优化可以用到那些性能工具
quest工具,awr,addm,ash报告是获取第一手的资料来源。平时积累的监控事件的脚本能及时获取当前点的库等待问题所在。
其实最好用的工具类就是oralce 提供的报告工具和多种的数据字典,了解它们,熟练它们,实际使用中的不断总结就是最好的优化手段了。

2. 如何缩短SQL调优时间
一定要了解问题出现的时间点,时间点前做过何种操作,才能尽可能的预判断问题可能的根源。
了解当前sql的执行计划?是否存在多个执行计划?索引是否缺失,统计信息是否异常等等。
还可采用固化执行计划的手段降低调整周期,提高响应度。
当然平时对原理的了解,多吸取别人的调优案例,多总结自己的问题集,好记性不如烂笔头。时间一长基本上能做到了然于胸,优化时间自然就缩短了。
比如作者这本书如果通读后,总结实践一下,那也是事半功倍的经验获取。


3. 影响性能的常见因素
抛开设计不合理情况,针对SQL性能影响还存在下列因素:
a.上线功能出现问题临时进行现场调整但没有同步回开发库,后继发布有重现甚至出现新范围的影响。
b.高峰期进行索引的创建,引起大量的阻塞导致性能问题。
c.针对大的临时表进行了大批量的数据操作,但没有及时调整索引碎片和统计信息导致问题。
d.新上线的功能语句在大数据环境测试不充分,导致执行计划异常从而导致性能问题。
e.后台数据库出现了大量的 600 错误,触发了 bug 导致性能问题。
f.数据库双机间出现严重通讯问题,导致的异常sesssion形成性能问题
h.主机的参数设置不合理或存储出现了错误或者光钎卡通路问题导致 IO飙升导致全库性能崩溃。
g.维护人员为了满足客户的临时统计要求建立不合理大索引导致相关表访问的执行计划紊乱导致的性能问题。  
i.升级系统后忘记编译失效对象到哦之的性能阻塞访问问题。
j.链路不同甚至是scn 风暴导致的性能问题。
k.表空间不足,消耗完成但未及时处理导致的性能问题。
l.数据库日志目录没有做日常监控,错误 trc 文件没有定期清理导致的数据库挂起性能问题。
m.不合理的数据检索范围太大导致的热点表性能问题。
n.开放的外部接口没有做合理的资源限定导致某一时刻资源消耗过度当值的性能问题。
o.并行建立索引后没能正常关闭导致的并发访问性能问题。
p.一些 JOB不正常执行导致的表锁引起的热点争用引起的SQL性能问题.
q.迁移数据库后关键SQL没有测试执行计划是否正常


4. 学习索引的重要性
索引是一切 sql优化执行的根本,没有索引全表扫描是性能问题之根源。了解索引的结构和检索原理,各种索引的优缺点适用范围。
合理适用排序索引,组合索引。
一张表的索引需要有限制,不是随意增减索引,需要对模块功能涉及的索引合理统筹规划建立。
要合理适用索引就要能正确解读sql的执行计划,可基于执行计划合理选择建立索引。
最核心的原理就是用索引从大范围数据中选取极小的数据集进行处理,这是所有哦SQL调优的核心原则。

5. SQL优化的误区
切忌优化了一条特定sql 带出其他正常sql变不正常。
一些复杂的sQL,要建议开发分拆处理,优化不是万能的。
一些不符合实际需求的 SQL不是优化能处理的,而是在表设计和模块功能设计时就要考虑分析处理的。
SQL优化不是等系统上线后才火热进行的而是在系统设计开始就要考虑各类功能需求和操作,考虑数据量的增长规模,预判数据的分布,然后合理编写高效的SQL,做好大数据环境下的压力测试,及时收集问题SQL进行合理优化处理,
不能等到系统实际上线后才进行优化,一些不合理的功能需要的SQL 到此时基本是无法优化避免的,而是涉及功能改写了。

使用道具 举报

回复
论坛徽章:
407
紫蛋头
日期:2012-05-21 10:19:41迷宫蛋
日期:2012-06-06 16:02:49奥运会纪念徽章:足球
日期:2012-06-29 15:30:06奥运会纪念徽章:排球
日期:2012-07-10 21:24:24鲜花蛋
日期:2012-07-16 15:24:59奥运会纪念徽章:拳击
日期:2012-08-07 10:54:50奥运会纪念徽章:羽毛球
日期:2012-08-21 15:55:33奥运会纪念徽章:蹦床
日期:2012-08-21 21:09:51奥运会纪念徽章:篮球
日期:2012-08-24 10:29:11奥运会纪念徽章:体操
日期:2012-09-07 16:40:00
70#
发表于 2017-6-19 09:35 | 只看该作者
1. SQL优化可以用到那些性能工具 awr报告 oem
2. 如何缩短SQL调优时间 把常用工具先准备好
3. 影响性能的常见因素 存储 内存 CPU 统计信息 sql写法
4. 学习索引的重要性 知道哪些语句能用索引 哪些操作适合用索引 就能写针对性的sql
5. SQL优化的误区 没找到原因 乱"优化"

使用道具 举报

回复

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

本版积分规则 发表回复

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