深度优化sql 查询, 提升性能一百倍是什么概念?
2010-12-29 21:43
801 查看
正在做一个软件设计, 希望有个功能, 然而, 对于加上该功能后对系统性能造成的影响很是担忧. 可以说是, 一方面想要有这个功能, 另一方面又对性能问题是否能够解决很怀疑, 正处于犹豫不决状态.
于是决定进行实验. 首先对表结构和索引进行了优化, 初步结果还不错, 性能基本进入可接受的范围. 然而, 这是面向一个百万千万用户的系统, 所以, 刚好处于边缘状态是远不够的. 于是, 就借助于Sql Server Management Studio 的execution plan 显示功能, 对查询进行了优化. 为此, 在表中自动的插入了一百万条记录. 在接下来的一两个小时内, 写出了同一个sql查询功能的4个不同的版本, 居然把性能提高了一百多倍. 心里十分高兴.
请看下图中的数据, 注意方框内的数据, 可以看到, 同样的查询, 优化程度不同, 有 190倍的执行速度差异.
下图是数据库engine的执行计划图:
大家知道, 数据库在需要承担大量用户的网站软件中, 对于性能而言, 处于关键地位. 为了提高数据库的性能, 人们作出了多方面的努力, 包括scale up, scale out. 然而 scale up 通常是很废钱的, 比如, 一台16个cpu的服务器, 比一个普通的4核心机器要贵出二十倍以上, 而且scale up的上限也很低, 常常不能满足要求. 而scale out, 通常, 要从软件的架构设计到编程做出一整套的安排, 在开发上会增加成本. 如果能够根据对数据库engine的内部算法的深入知识, 对sql 查询做优化, 达到如此的性能提高, 实在是极其高效的.
于是决定进行实验. 首先对表结构和索引进行了优化, 初步结果还不错, 性能基本进入可接受的范围. 然而, 这是面向一个百万千万用户的系统, 所以, 刚好处于边缘状态是远不够的. 于是, 就借助于Sql Server Management Studio 的execution plan 显示功能, 对查询进行了优化. 为此, 在表中自动的插入了一百万条记录. 在接下来的一两个小时内, 写出了同一个sql查询功能的4个不同的版本, 居然把性能提高了一百多倍. 心里十分高兴.
请看下图中的数据, 注意方框内的数据, 可以看到, 同样的查询, 优化程度不同, 有 190倍的执行速度差异.
下图是数据库engine的执行计划图:
大家知道, 数据库在需要承担大量用户的网站软件中, 对于性能而言, 处于关键地位. 为了提高数据库的性能, 人们作出了多方面的努力, 包括scale up, scale out. 然而 scale up 通常是很废钱的, 比如, 一台16个cpu的服务器, 比一个普通的4核心机器要贵出二十倍以上, 而且scale up的上限也很低, 常常不能满足要求. 而scale out, 通常, 要从软件的架构设计到编程做出一整套的安排, 在开发上会增加成本. 如果能够根据对数据库engine的内部算法的深入知识, 对sql 查询做优化, 达到如此的性能提高, 实在是极其高效的.
相关文章推荐
- DB2性能优化 – 如何通过db2优化工具提升SQL查询效率
- SQL性能优化中的底层概念,时间复杂度,算法和数据结构,数据库组成,查询优化和表关联原理.
- 优化hbase的查询提升读写速率优化案例及性能提升的几种方法
- 以淘宝商品搜索漫谈查询条件的排序对效率的影响(SQL查询性能优化,附调优(性能诊断)DMV)
- 【MySql性能优化二】利用explain进行查询和分析sql语句
- SQL 查询性能优化 解决书签查找
- 什么是网站性能优化技术?怎样提升移动端的用户体验?
- 【查询优化】怎样用SQL语句查看查询的性能指标
- 划重点!必备 SQL 查询优化技巧,提升网站访问速度
- SQL查询安全性及性能优化
- SQL常见优化Sql查询性能的方法有哪些?
- 智能SQL优化工具--SQL Optimizer for SQL Server(帮助提升数据库应用程序性能,最大程度地自动优化你的SQL语句 )
- 划重点!必备 SQL 查询优化技巧,提升网站访问速度
- sql server08 查询优化系列 3-2 sql 查询性能分析
- 性能优化-查询最耗CPU的SESSION与SQL
- sql性能优化、查询提速总结
- Mysql 性能优化7【重要】sql语句的优化 浅谈MySQL中优化sql语句查询常用的30种方法(转)
- 【译】什么情况下应该分解复杂的查询来提升性能
- 智能SQL优化工具--SQL Optimizer for SQL Server(帮助提升数据库应用程序性能,最大程度地自动优化你的SQL语句 )
- sql性能优化 - sql查询优化