DB2数据库性能优化介绍

作者:chszs,转载需注明。博客主页:http://blog.csdn.net/chszs
前段时间,我从CSDN得到了这本书《DB2数据库性能调整和优化(第2版)》,这是一本介绍DB2数据库性能调优的书籍,此书覆盖了DB2数据库性能调优所需的全部知识和工具,而且还提供了大量的性能调优的实际案例,颇有一种“一书在手,DB2尽在掌握”的豪情。大家都知道,性能调优是一个系统工程,通过全面的实时监控,分析OS、I/O性能、内存的使用情况,DBA才能找出是否是数据库自身程序出了问题,又或者是服务器上运行的应用出了问题。

对于DB2数据库来说,这一切都建立在深刻理解DB2的锁机制以及并发机制、索引原理、数据库参数、优化器原理、SQL脚本的优化等这些技术点的掌握之上,对这些技术点掌握的越深刻,那么出现问题后才能快速地估计和判断,并且提出解决问题的方法。

对于DB2数据库DBA来说,下面的工具是必须要熟练掌握的:

1)快照

2)db2pd

3)db2expln

4)事件监控器

为了让不熟悉DB2的朋友对DB2有正确的认识,下面我介绍一下DB2的背景信息。

DB2是IBM公司发行的一种大型关系数据库系统。它主要应用于大型的应用系统,并具有良好的可伸缩性,支持从大型机环境到单用户服务器环境,可应用于OS/2、Windows等操作系统环境之上。 DB2系统提供了高层次的数据利用性、完整性、安全性、可恢复性等特性,以及从小规模到大规模应用程序的执行和支持能力,而且具有与平台无关的基本功能和SQL命令。

DB2采用了数据分级技术,能够使大型机的数据很方便地下载到LAN数据库服务器,使得客户机/服务器用户和基于LAN的应用程序可以访问大型机的数据,并使数据库本地化以及远程连接的透明化。 它以拥有一个非常完备的查询优化器而著称,其外部连接改善了查询性能,并支持多任务并行查询。 DB2有很好的网络支持能力,每个子系统可以连接十几万个分布式用户,可同时激活上千个活动线程,对大型分布式应用系统尤为适用。

DB2数据库家族是非常庞大的,它有多种版本,比如:

1)DB2 Everyplace

主要用于移动计算。

2)DB2 Personal Edition

DB2 Personal Edition是单用户RDBMS,运行于低价的商用硬件桌面计算机。

3)DB2 Express - C

DB2 Express - C其实不算DB2系列的一个版本,但是它提供了DB2 Express 的大多数功能。

4)DB2 Express Edition

DB2 Express Edition是一种功能全面的支持Web 的客户机/服务器RDBMS。它提供一个低价的入门级服务器,主要用于小型企业和部门的计算任务。

5)DB2 Workgroup Edition

DB2 Workgroup Edition与DB2 Express的功能相同,仅在服务器可安装的内存和价值单元的数量方面有区别。

6)DB2 Enterprise Edition

DB2 Enterprise Edition是一种全功能的RDBMS。它持所有UNIX、Linux和Windows,适合作为大型和中型的部门服务器。

7)Data Enterprise Developer Edition

Data Enterprise Developer Edition是为应用程序开发人员提供的特殊版本,已经被废弃。

在了解了DB2的背景信息后,下面我们需要明确什么是性能?

性能是业务应用系统在特定硬件资源和工作负载下所表现出来的处理能力。

性能主要通过系统响应实际、吞吐量、可用性(资源利用率)等来衡量。

那么,如何让系统保持良好的性能呢?

主要从以下几个方面进行考虑:

1)物理资源足够且能充分合理地使用

系统需要配置充足的CPU、内存、高速硬盘、网络带宽,同时也要进行合理地分配使用。

2)良好的存储I/O设计

必须有足够的磁盘设备来确保充分的I/O并行性,以支持大容量的并发事务。

3)合理的数据库配置参数

这会影响到数据库资源的分配,资源优势的发挥,数据库运行是否最优。

4)确保应用程序持有锁的时间尽可能短

尽可能晚地启动事务的第一条SQL语句,并使事务的更新尽可能接近提交阶段,使得事务的持续时间尽可能地短。

5)为表创建最合理的索引

确保查询中进行连接操作的列都有索引。

6)高效地使用SQL语句

7)分析SQL执行计划

找出SQL的运行瓶颈,并做出调整。

8)数据库的物理和逻辑设计

用最合理的数据库技术来实现我们的业务逻辑,良好而合理的设计是整个系统高效运行的必要条件。

9)统计信息更新、碎片整理

定期更新统计信息,使得优化器时刻为SQL制定最合理的执行计划。

10)熟悉DB2优化器的工作原理

优化器是DB2的灵魂和心脏。

DB2数据库性能优化介绍的更多相关文章

  1. (转)Db2 数据库性能优化中,十个共性问题及难点的处理经验

    (转)https://mp.weixin.qq.com/s?__biz=MjM5NTk0MTM1Mw==&mid=2650629396&idx=1&sn=3ec17927b3d ...

  2. DB2数据库性能调整和优化(第2版)

    <DB2数据库性能调整和优化(第2版)> 基本信息 作者: 牛新庄 出版社:清华大学出版社 ISBN:9787302325260 上架时间:2013-7-3 出版日期:2013 年7月 开 ...

  3. mysql数据库性能优化(包括SQL,表结构,索引,缓存)

    优化目标减少 IO 次数IO永远是数据库最容易瓶颈的地方,这是由数据库的职责所决定的,大部分数据库操作中超过90%的时间都是 IO 操作所占用的,减少 IO 次数是 SQL 优化中需要第一优先考虑,当 ...

  4. 数据库性能优化:SQL索引

    SQL索引在数据库优化中占有一个非常大的比例, 一个好的索引的设计,可以让你的效率提高几十甚至几百倍,在这里将带你一步步揭开他的神秘面纱. 1.1 什么是索引? SQL索引有两种,聚集索引和非聚集索引 ...

  5. 数据库性能优化一:SQL索引一步到位

    SQL索引在数据库优化中占有一个非常大的比例, 一个好的索引的设计,可以让你的效率提高几十甚至几百倍,在这里将带你一步步揭开他的神秘面纱. 1.1 什么是索引? SQL索引有两种,聚集索引和非聚集索引 ...

  6. MySQL 数据库性能优化之缓存参数优化

    在平时被问及最多的问题就是关于 MySQL 数据库性能优化方面的问题,所以最近打算写一个MySQL数据库性能优化方面的系列文章,希望对初中级 MySQL DBA 以及其他对 MySQL 性能优化感兴趣 ...

  7. SqlServer数据库性能优化详解

    数据库性能优化详解 性能调节的目的是通过将网络流通.磁盘 I/O 和 CPU 时间减到最小,使每个查询的响应时间最短并最大限度地提高整个数据库服务器的吞吐量.为达到此目的,需要了解应用程序的需求和数据 ...

  8. 【SQL server初级】数据库性能优化一:数据库自身优化(大数据量)

    数据库优化包含以下三部分,数据库自身的优化,数据库表优化,程序操作优化.此文为第一部分 数据库性能优化一:数据库自身优化 优化①:增加次数据文件,设置文件自动增长(粗略数据分区) 1.1:增加次数据文 ...

  9. MySQL数据库性能优化:表、索引、SQL等

    一.MySQL 数据库性能优化之SQL优化 注:这篇文章是以 MySQL 为背景,很多内容同时适用于其他关系型数据库,需要有一些索引知识为基础 优化目标 减少 IO 次数IO永远是数据库最容易瓶颈的地 ...

随机推荐

  1. cocos2d-x 全面总结--字体描边和制作阴影

    关于字体描边的实现,不考虑效果和效率的话,是有三种方式: ① 利用CCLabelTTF制作文字描边和阴影效果 ② 利用CCRenderTexture渲染文理的方式生成带有描边效果的文字 ③ 利用sha ...

  2. 运算符重载 C++ 编程思想

    class Integer{ int i; public: Integer(int ii) : i(ii) {} const Integer operator+(const Integer& ...

  3. strcpy()的实现

    看到有一个博客讲的比平时理解的更深入,mark一下:strcpy函数的实现 这里只写平时理解的,三个要点: //strcpy自己实现 char *strcpy(char *dest, const ch ...

  4. 黑马程序员——Block数据类型

    Block数据类型,又被称为代码段.因为它可以封装一段代码.苹果官方建议多用block.因为在多线程控制.异步任务,集合遍历.集合排序.动画转场等方面用的很多. Block的特点: 1.Block 用 ...

  5. UML的类图关系分为: 关联、聚合/组合、依赖、泛化(继承)

    UML的类图关系分为: 关联.聚合/组合.依赖.泛化(继承).而其中关联又分为双向关联.单向关联.自身关联:下面就让我们一起来看看这些关系究竟是什么,以及它们的区别在哪里. 1.关联 双向关联:C1- ...

  6. systemd详解

    CentOS 7 使用systemd替换了SysV.Systemd目的是要取代Unix时代以来一直在使用的init系统,兼容SysV和LSB的启动脚本,而且够在进程启动过程中更有效地引导加载服务. s ...

  7. TransactionScope事务对多个数据库的操作

    .Net 2.0引入了轻量级事务管理器(Lighweight Transaction Manager),即System.Transactions.TransactionManager. 轻量级事务管理 ...

  8. C#操作Access的一些小结

    C#操作Access的一些小结 好久没有写blog,感觉今年一年都没怎么真正开心过,整天有一些事围绕在身边,使心情难以平静下来,真正写点有意义的东西.博客园是天天看的,看得多,写的少,偶尔也是Copy ...

  9. stm32 usb数据接收与数据发送程序流程分析

    http://blog.csdn.net/u011318735/article/details/17424349 既然学习了USB,那就必须的搞懂USB设备与USB主机数据是怎么通讯的.这里主要讲设备 ...

  10. 未能加载文件或程序集“Oracle.DataAccess, Version=2.112.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342”或它的某一个依赖项。 解决方法

    webconfig文件对于oracle的映射错误.需要在以下位置修改 <runtime> <legacyCorruptedStateExceptionsPolicy enabled= ...