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. OpenGl从零开始之坐标变换(上)

    坐标变换是深入理解三维世界的基础,非常重要.学习这部分首先要清楚几个概念:视点变换.模型变换.投影变换.视口变换. 在现实世界中,所有的物体都具有三维特征,但计算机本身只能处理数字,显示二维的图形,因 ...

  2. Epic - Spiral Matrix

    Given aNXN matrix, starting from the upper right corner of the matrix start printingvalues in a coun ...

  3. bzoj 3270 博物馆(高斯消元)

    [题意] 两人起始在s,t点,一人pi概率选择留在i点或等概率移动,问两人在每个房间相遇的概率. [思路] 把两个合并为一个状态,(a,b)表示两人所处的状态,设f[i]为两人处于i状态的概率.则有转 ...

  4. 解读Cardinality Estimation<基数估计>算法(第一部分:基本概念)

    基数计数(cardinality counting)是实际应用中一种常见的计算场景,在数据分析.网络监控及数据库优化等领域都有相关需求.精确的基数计数算法由于种种原因,在面对大数据场景时往往力不从心, ...

  5. Mapreduce执行过程分析(基于Hadoop2.4)——(二)

    4.3 Map类 创建Map类和map函数,map函数是org.apache.hadoop.mapreduce.Mapper类中的定义的,当处理每一个键值对的时候,都要调用一次map方法,用户需要覆写 ...

  6. python添加windows域验证

    1.安装python-ldap https://pypi.python.org/pypi/python-ldap/ 在 Ubuntu/Debian 下安装 python-ldap 模块: $ sudo ...

  7. Cocos2d-JS v3.0 alpha不支持cocos2d-x的Physics integration

    cocos2d-x 3.0新的Physics integration,把chipmunk和Box2D封装到引擎内部 auto scene = Scene::createWithPhysics(); s ...

  8. Windows Azure使用必读(转)

    原文:http://www.cnblogs.com/dyllove98/archive/2013/06/15/3137528.html 近些日子帮了不少用户移植应用到了Windows Azure上,在 ...

  9. ASP.NET自定义控件入门Demo

    最近看了MSDN关于自定义控件的介绍,根据官方的文档,自己学着做了一个简单的Demo给需要的朋友参考. ASP.NET 源生的TextBox是不带Label标签的,这里我要实现的是创建一个带Label ...

  10. Linux下的hostname命令详解

    1.临时修改: #hostname ***** //*****为修改的hostname 2.永久修改: # vi /etc/sysconfig/networkNETWORKING=yesHOSTNAM ...