楼主: 丸喵喵

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

[复制链接]
论坛徽章:
2
秀才
日期:2017-06-29 10:05:55秀才
日期:2017-06-29 10:05:55
11#
发表于 2017-5-20 17:39 | 只看该作者
像要做数据方面的开发,sql优化得加把劲咯

使用道具 举报

回复
论坛徽章:
16
秀才
日期:2016-02-18 09:39:10ITPUB18周年纪念章
日期:2018-11-13 15:40:45ITPUB18周年纪念章
日期:2018-11-13 15:31:24ITPUB18周年纪念章
日期:2018-09-17 10:12:57ITPUB18周年纪念章
日期:2018-09-17 10:09:49ITPUB15周年纪念
日期:2018-07-27 16:11:00秀才
日期:2018-06-21 10:08:00秀才
日期:2018-04-08 14:48:31秀才
日期:2017-12-12 10:00:20秀才
日期:2017-09-18 17:02:05
12#
发表于 2017-5-21 15:50 | 只看该作者
本帖最后由 Fl_wolf 于 2017-6-5 17:09 编辑

1. SQL优化可以用到那些性能工具工具不太清楚,优化的话更多的了解偏向于语句的优化,可以通过sql自带的一些压测工具,对现有的语句进行压测,对语句进行优化。
2. 如何缩短SQL调优时间
模拟倍数级数据进行压力测试。
3. 影响性能的常见因素
查询语句的优化,索引的使用。
4. 学习索引的重要性
索引是数据库查询的list,如mysql索引是树形结构的,当数据小的时候查看不出什么优势,但是一旦数据量几何级增长,优势就非常的明显了。
5. SQL优化的误区
一味的增加从库,进行分库,分表等等。


其他:  最近google开源了一个 神器  tensorflow,它可以根据你要调优的选项进行调优,不管是CPU到连接池,都可以进行分析与调优!!

使用道具 举报

回复
论坛徽章:
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
13#
发表于 2017-5-21 15:57 | 只看该作者
昨天刚考完数据库系统工程师,今天来回答一下这些问题。
1. SQL优化可以用到那些性能工具
其实针对每个数据库,都有自己的工具来进行优化。工具只是一种辅助手段,关键还是要看优化人(也就是DBA)的水平如何了。虽然我没做过DBA。
2. 如何缩短SQL调优时间
这个关键还是看人。还有对原来的程序的了解程度啊。再优秀的DBA,针对一大堆自己一点也不了解的程序代码,不太可能快速的优化好SQL,特别是现在好多程序都使用诸如Hibernate这样的ORM工具了,生成的SQL也是五花八门的。
3. 影响性能的常见因素
一般来说,影响SQL的性能的原因主要还是索引使用不当,比如建立的索引没有使用,而条件查询的字段又没有建立索引。还有与连接查询的每个表中记录数以及表的排列顺序也有关系。
4. 学习索引的重要性
学习索引,就如学习一门编程语言先要学好基本语法一般重要,如果没有创建较好的索引,使用数据库(特别是在大数据量中查找时)那就是一种受罪。
5. SQL优化的误区
优化的误区可能也是只关注索引了,虽然没有索引是万万不能的,但索引却不是万能的。

使用道具 举报

回复
论坛徽章:
19
秀才
日期:2017-03-20 13:42:2019周年集字徽章-19
日期:2019-09-06 18:39:04ITPUB18周年纪念章
日期:2019-03-12 14:03:46ITPUB18周年纪念章
日期:2018-11-13 15:40:45ITPUB18周年纪念章
日期:2018-11-13 15:31:24ITPUB18周年纪念章
日期:2018-09-17 10:12:57ITPUB18周年纪念章
日期:2018-09-17 10:09:49秀才
日期:2018-04-08 14:48:31秀才
日期:2018-04-08 14:37:33娜美
日期:2018-03-28 14:24:56
14#
发表于 2017-5-21 16:10 | 只看该作者
1.SQL优化可以用到那些性能工具
SQLT:通常用于诊断性能不佳的 SQL 语句。
SQL Profile:SQL的监视工具,可以具体到每一行Sql语句,每一次操作,和每一次的连接。
SQL Trace:Oracle提供的一个非常好的跟踪工具,主要用来检查数据库的异常情况,通过跟踪数据库的活动,找到有问题的语句。

2.如何缩短SQL调优时间
(1)选择最有效率的表名顺序(只在基于规则的优化器中有效)
(2)WHERE子句中的连接顺序
(3)SELECT子句中避免使用 ‘ * ‘
(4)减少访问数据库的次数
(5)在SQL*Plus , SQL*Forms和Pro*C中重新设置ARRAYSIZE参数, 可以增加每次数据库访问的检索数据量 ,建议值为200
(6)使用DECODE函数来减少处理时间
(7) 整合简单,无关联的数据库访问
(8) 删除重复记录

3.影响性能的常见因素
(1)逻辑数据库和表设计不合理
(2)无索引或索引设计不合理
(3)无缓存
(4)硬件问题

4.学习索引的重要性
(1)通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。
(2)可以大大加快 数据的检索速度,这也是创建索引的最主要的原因。
(3)可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。
(4)在使用分组和排序 子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。
(5)通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能。

5.SQL优化的误区
(1)SQL写法会导致性能问题:大多数场景中SQL语句的写法都不会影响最终的执行计划
(2)关系库中存在锁会导致性能问题:在一个高负载、高并发的关系库中存在大量的锁是关系库的核心机制
(3)SQL调优能解决一切问题:性能问题可能是OS层面或硬件层面导致的
(4)数据量大必然导致出现性能问题:数据量大只是导致出现性能问题的基础之一

使用道具 举报

回复
论坛徽章:
98
秀才
日期:2016-02-18 10:06:46山治
日期:2017-02-21 16:18:12秀才
日期:2017-02-22 15:14:12秀才
日期:2017-02-22 15:16:26秀才
日期:2017-02-22 15:18:00秀才
日期:2017-03-01 13:53:39秀才
日期:2017-03-20 13:42:20秀才
日期:2017-03-27 17:52:06秀才
日期:2017-03-28 15:11:09秀才
日期:2017-03-28 15:59:38
15#
发表于 2017-5-22 08:43 | 只看该作者
支持too

使用道具 举报

回复
论坛徽章:
19
秀才
日期:2015-12-21 09:48:11秀才
日期:2016-02-18 10:08:02秀才
日期:2016-02-18 10:07:49秀才
日期:2016-02-18 10:06:21秀才
日期:2016-02-18 09:39:10秀才
日期:2016-02-18 09:24:30秀才
日期:2016-02-18 09:24:18秀才
日期:2016-02-18 09:23:46秀才
日期:2016-02-18 09:21:30秀才
日期:2016-02-18 09:19:48
16#
发表于 2017-5-22 11:11 | 只看该作者
值的关注    

使用道具 举报

回复
论坛徽章:
0
17#
发表于 2017-5-22 13:25 | 只看该作者
1. SQL优化可以用到那些性能工具
      查看执行计划工具:EM,SQLDevelop、SQLPLUS等工具
     辅助工具:AWR报告,定位瓶颈SQL、  Linux操作命令:TOP等,定位CPU还是内存还是磁盘瓶颈

2. 如何缩短SQL调优时间
   首先要清楚SQL处理数据的逻辑以及业务基本逻辑,不可盲目上手,推测几个重要产生瓶颈点(可能是一小段语句、或表的关联、条件等)
  从这些可能的瓶颈点从可能性高低往下尝试,调整瓶颈点,再去看效果(在这过程要对收集统计信息合理时间去收集)、  最终看整个效果
  缩短时间必须性能障碍点定位要准

3. 影响性能的常见因素
  硬件方面:CPU、内存、磁盘(共享磁盘)以及网络等是否变化,或稳定
参数:是否设置合理、 合理划分表空间等
SQL方面:全表访问
               索引不合理
                并发访问方面
                是否表分区
               不合格SQL语句(开发人员随意乱写,不经过分析过的)
               等等

4. 学习索引的重要性
    索引是数据库访问的一个途经,索引的建立以及合理使用索引能加大访问速度、提高关联速度。
   学习好各种索引原理,才能在调整优化中发挥好的作用
  
5. SQL优化的误区
    一味的加索引反而会影响DML操作
    大表分表也要根据实际情况选择合理字段(或组合)来做,也要保证不影响到以后的数据清理等等性能

使用道具 举报

回复
论坛徽章:
0
18#
发表于 2017-5-22 15:35 | 只看该作者
1. SQL优化可以用到那些性能工具
  读之前以为:AWR,sql stace,10046 event ,sql执行计划,sql monitor等
  读了之后又加了这些:ASH,ADDM,AWRDD,AWRSQRPT
2. 如何缩短SQL调优时间
  对项目的整个环境要相当的了解(包括OS,网络,以及业务系统)
  另外就是调优的手段了,要熟练掌握调优工具,快速定位sql瓶颈
3. 影响性能的常见因素
  硬件设备问题,业务扩展,并发量变大,不合理的sql语句等
4. 学习索引的重要性
  创建合理的索引可以大大加快数据的检索速度,减少查询中分组和排序的时间,快速缩小查询范围。提高系统的性能
5. SQL优化的误区
  大量使用hint;
  索引越多越好;
  动不动升级硬件设备

使用道具 举报

回复
求职 : 数据库管理员
论坛徽章:
2
暖羊羊
日期:2015-03-04 14:54:572015年新春福章
日期:2015-03-06 11:59:47
19#
发表于 2017-5-22 16:02 | 只看该作者
拭目以待……

使用道具 举报

回复
论坛徽章:
30
阿斯顿马丁
日期:2014-01-19 12:48:30秀才
日期:2015-09-21 09:46:16秀才
日期:2015-10-26 09:55:08秀才
日期:2015-12-25 15:31:10秀才
日期:2016-01-12 11:23:27秀才
日期:2016-01-25 15:02:042016猴年福章
日期:2016-02-23 09:58:34秀才
日期:2016-04-21 14:08:53白羊座
日期:2016-05-30 14:22:00秀才
日期:2016-06-23 14:15:06
20#
发表于 2017-5-22 16:09 | 只看该作者
发现试读章节没有目录啊

使用道具 举报

回复

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

本版积分规则 发表回复

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