谈到数据库优化概念,总感觉很庞大,无从下手;最近,听了一次DBA的分享,感觉有些思路;整理成文字,强化记忆;仅仅是一些个人理解和信息聚合,可能有所偏差,还望有所指正:
为什么需要数据库优化?
数据库性能优化主要的目的无非就是降低数据库响应时间,提升数据库响应能力TPS;
数据库响应时间
数据库响应时间=连接时间+SQL解析时间+SQL执行时间+结果集返回时间
可以看出需要优化的方面:数据库连接、SQL解析、SQL执行、结果集这个四个方面;
可以将上述四方面的优化简单来看:
1.SQL执行:硬盘数据访问与写入、日志记录、排序、表连接、SGA内存优化、比较
2.SQL解析:执行计划缓存、SQL解析、执行计划优化(CBO/RBO)、表连接策略、索引策略、排序
3.结果集: 结果集内存缓存、网络数据传输
4.数据库连接:数据库连接池、SQL请求
数据库IO性能试图:
从IO性能来看,优化的方向:
1.减少磁盘访问:硬盘数据访问与写入、日志、大数据量排序、大表表连接、
2.减少网络传输:结果数据请求、SQL请求、数据库连接
3.降低CPU与内存开销:SGA缓存数据访问、比较、排序、表连接、事务检测、SQL解析、函数与逻辑运算
从上述两个方向来看,优化的内容相同,划分的问题不同:
从IO性能方向的优化,可以参考:
MKing's Blog 面向程序员的数据库访问性能优化法则:
http://blog.csdn.net/yzsind/article/details/6059209
从响应时间角度来看,其中涉及到了:SQL执行、结果集、数据库连接 等方面
对于SQL解析方面涉及较少,这方面的资料可以参考:
ORACLE 执行计划分析:
http://www.cnblogs.com/rootq/archive/2008/09/06/1285779.html
执行计划优化策略:
Oracle RBO、CBO简介:
http://blog.csdn.net/suncrafted/article/details/4239237
如果想深入理解Oracle数据库体系结果,可以参考:
Oracle数据库体系结构:
http://www.knowsky.com/386200.html
分享到:
相关推荐
开发人员:如果你是做数据库开发,那本文的内容非常适合,因为本文是从程序员的角度来谈数据库性能优化。 架构师:如果你已经是数据库应用的架构师,那本文的知识你应该清楚90%,否则你可能是一个喜欢折腾的架构师...
nacicat 数据库操作工具,程序员必备nacicat 数据库操作工具,程序员必备nacicat 数据库操作工具,程序员必备nacicat 数据库操作工具,程序员必备nacicat 数据库操作工具,程序员必备nacicat 数据库操作工具,程序员...
这篇文档从程序员的角度讨论了linux的ELF二进制格式。介绍了一些ELF执行 文件在运行控制的技术。展示了如何使用动态连接器和如何动态装载ELF。 我们也演示了如何在LINUX使用GNU C/C++编译器和一些其他工具来创建...
面向程序员的数据库访问性能优化法则.pdf
一本非常好的从程序员角度出发讲解计算机系统的书籍。从此书中我们可以看到计算机计算的本质到底是什么,如何构成的,各部分的协作,程序语言到机器语言,程序优化设计等等。
程序员Word文档复习数据库知识,帮助要考程序员的学子们
总结了程序员面试中数据库有关的知识点,包括:范式,SQL语言,存储过程.并给出了部分相关的面试题目。
浅谈数据库设计技巧,里面详细解说数据库设计方面的技巧,让程序员做数据库设计更灵活处理.
《MySQL数据库原理、设计与应用》课后习题及答案 黑马程序员编著 答案都是正确的,因为是老师给的资源。 如果不想下载,也可以去我的博客看,一模一样的。 ...
不好意思,本人发的"北大青鸟ACCP 6.0 软件开发初级程序员:c#语言和数据库技术基础"和 "北大青鸟ACCP 6.0 软件开发初级程序员:使用C#语言开发数据库应用系统" 文件搞反了,如果一起下载不影响的。呵呵 ACCP...
采集soso问问程序员代码,支持数据库本地保存。用了php的cli模式开发,定时执行采集程序,可以有效的防止IP封锁
一份程序员看的数据库面试题,里面内容详细。适合即将找工作的朋友看。会有不少收获哟。
达梦数据库DM8程序员手册.pdf