服务器之家:专注于服务器技术及软件下载分享
分类导航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|数据库技术|

服务器之家 - 数据库 - DB2 - IBM DB2 基本性能调整

IBM DB2 基本性能调整

2020-06-01 17:36DB2数据库教程网 DB2

本文主要讲解IBM DB2数据库基本性能调整方法,有需要的同学可以参考一下。

缓冲池

如果你有使用DB2UDB的经验,你应该知道,缓冲池是内存中的一些单独分配给DB2数据库管理器的空间,让它去做为数据库添加新数据或者去响应一个查询从磁盘返回一些数据数据页的缓冲区。由于从内存中访问数据势必比从磁盘上读取要快的多,因此通过减少磁盘的I/O操作缓冲池改善了数据库的整体性能。实际上,研究缓冲池是怎样被创建和被使用在调整优化的数据库性能是最重要的一步。

由于缓冲区的重要性地位,每个DBA都应该了解DB2UDB怎么使用他们。这里是关于它的快速回顾课程。当新数据增加到数据库时,它首先在缓冲区中增加新页。最终这个页将被具体化到数据库存储空间中。另一方面,为了响应查询当数据从数据库中被检索出来的时候,DB2数据库管理器首先将会将这些包含数据的页存放在缓冲池中,然后才会把它传递给需要它的应用程序或者用户。每次执行新的查询时,将会在每个可以利用的缓冲池中搜寻是否已经有所需要数据的页驻留在内存中。如果那样,就会立刻将它传递给对应的的应用或用户。但是,如果不能在这些缓冲池找到需要的数据的话,DB2数据库管理器将会讲这些数据从存储器中检索出来并且在传递数据之前将它复制到缓冲区中。一旦页被复制到缓冲池,那么这个页将会一直驻留在缓冲区中直到数据库被关闭或直到它所在的空间需要存储其他页为止。(由于所有数据的加载和修改首先发生在缓冲区——修改过的页最终会去刷新磁盘存储——因此存放在缓冲池中的数据总是最新的)当缓冲池满了之后,DB2数据库管理器将通过检测页的最后引用时间,页类型,或者页的修改不会影响磁盘内容的改变来选择去除哪些页,这些页可能再次被引用。例如,在30分钟前被检索以响应查询的页会比包含更新操作而没有落实更新的页更容易被覆盖。

DB2UDB缺省创建了一个缓冲池(IBMDEFAULTBP)作为数据库创建过程的一部分。在Linux和Unix平台,该缓冲池从内存中被分配了1,000个4KB页;在Windows平台,该缓冲池从内存中被分配了250个4KB页。你可以通过在控制中心找到缓冲池菜单并且选择适当的操作或者执行ALTERBUFFERPOOL语句来增加或减少这个缓冲池的4KB页的数量。你也可以通过在控制中心同样的方法或者执行CREATEBUFFERPOOL语句来创建另外的缓冲区。

由于缓冲区的重要性,你应该仔细考虑使用多少个缓冲池来适应你的实施需要;每一个究竟需要多大;以及每个缓冲池怎么样能被充分利用。在多数环境里,能被有效使用的缓冲区个数取决于可利用的系统内存的大小。如果可利用的内存可以保留10,000个4k页(或更少),那么通常的使用单独的大缓冲池比去使用多个小缓冲池要好。使用多个小缓冲区将导致频繁地访问页来经常与内存进行进出交换,反过来会导致为存储对象比如编目表的I/O竞争或者重复的访问用户表和索引。但是,如果有比较多的内存,应该考虑创兼各自的缓冲区为以下:

·每一种临时表空间被定义

  • ·包含着被一些短期的更新事务一直或者重复访问表的表空间
  • ·包含着表和索引频繁地被更新的表空间
  • ·包含着表和索引频繁地被查询但很少被更新的表空间
  • ·包含着表频繁地被使用于随意的查询的表空间
  • ·包含着很少被应用程序访问的数据的表空间
  • ·包含着一些你想要使用的数据和索引的表空间。

在许多情况下,大一点的缓冲池要优于较小的缓冲池。但是,考虑到可以使用的内存总额以及缓冲池将怎么被使用。如果你拥有一个要从一个非常大的表中执行许多随机存取操作的应用,那么你应该为这个特殊表创造和使用一个小缓冲池。在这种情况下,没有必要在缓冲池内存中保留数据页一旦他们被用于去执行一次单独的查询。另一方面,如果你拥有一个要从几个看似很小的表中频繁地检索数据的应用,你应该考虑创建一个足够大缓冲池来存放所有在这些表里免得数据。采用这个设计方案,数据能一次装入内存,并且允许它反复的被获取而没有必要额外的磁盘I/O。

延伸 · 阅读

精彩推荐
  • DB2分析DB2活动日志满的原因及解决DB2日志满方法与避免方案

    分析DB2活动日志满的原因及解决DB2日志满方法与避免方案

    本文简单地介绍了DB2中日志的使用、活动日志以及首个活动日志的概念、日志满的原因、日志满的诊断、临时处理以及避免办法 ...

    wdc3462020-06-05
  • DB2DB2专家王云谈商业智能BI

    DB2专家王云谈商业智能BI

    王云说: 既然讲商业智能,我们大家都在讲及时性,我们讲要有绩效,要有BPM,我自己就来看看我们能不能在这个会场上,我们来实践一下,如果大家抬头...

    DB2数据库教程网4202020-06-10
  • DB2CentOS下DB2数据库安装过程详解

    CentOS下DB2数据库安装过程详解

    这篇文章主要介绍了CentOS下DB2数据库安装过程详解,本文步骤详细,操作的命令也比较全,需要的朋友可以参考下 ...

    DB2数据库教程网3572020-06-06
  • DB2python之sqlalchemy创建表的实例详解

    python之sqlalchemy创建表的实例详解

    这篇文章主要介绍了数据库之sqlalchemy创建表的实例详解的相关资料,希望通过本文能帮助到大家,让大家掌握理解这部分内容,需要的朋友可以参考下...

    wait_for_eva8502020-06-11
  • DB2如何访问大型机、小型机上的DB2 9数据服务器

    如何访问大型机、小型机上的DB2 9数据服务器

    数据库连接工具软件 DB2 connect的基本特性是为桌面应用程序和服务主机的数据库服务器之间提供一种连接交互访问的方法。这些桌面应用程序所在的环境可...

    脚本之家3242020-06-10
  • DB2DB2 SELECT语句高级用法

    DB2 SELECT语句高级用法

    DB2 SELECT语句高级用法,学习db2数据库的朋友可以参考下。 ...

    DB2数据库教程网6242020-06-08
  • DB2db2数据库常用操作命令大全

    db2数据库常用操作命令大全

    这篇文章主要介绍了db2数据库常用操作命令大全,汇总了DB2的常用操作命令,分享给大家供大家参考,需要的朋友可以参考下...

    db2教程网6962021-10-21
  • DB2DB2 UDB V8.1管理学习笔记(三)

    DB2 UDB V8.1管理学习笔记(三)

    本文主要讲解DB2 UDB V8.1管理学习笔记(三),有需要的朋友可以参考下 ...

    DB2数据库教程网3182020-06-03