NO PAINS,NO GAINS

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

DB2 如何使用内存

全局控制块 运行数据库管理器所需的内存空间。在数据库管理器启动的时候分配该内存。快速通信管理器(Fast Communication Manager,FCM)为 DB2 EEE 提供了通信支持。而 FCM 缓冲区也是从该内存区域分配的。

数据库全局内存 运行数据库所需的内存。在激活数据库的时候分配该内存。内存段的数量由配置参数 numdb(数据库数量)来限制。而总的数据库全局内存的大小是由 表 1中所示的数据库配置参数来确定的:

表 1. 影响数据库全局内存大小的数据库配置参数

 buffpage  影响缓冲池大小(设置为 -1)
 pckcachesz  包缓存器大小
  ut_heap_sz  实用程序堆大小
dbheap 数据库堆
locklist 锁的最大存储量

应用程序全局内存 应用程序全局内存是指运行应用程序所需的内存。在要从应用程序接收请求的第一个代理程序要求建立连接的时候分配该内存。该内存是由数据库配置参数 app_ctl_heap_sz 控制的。所有工作于同一应用程序的代理程序将共享应用程序全局内存。

代理程序私有内存 每个代理程序都拥有自己的私有内存。低层配置参数 maxappls 和 maxagents 将限制内存段的数量:

表 2. 低层的 maxappls 和 maxagents 限制内存段

maxappls 所有活动数据库的应用程序的最大总数目
maxagents 代理程序的最大数目

其最大容量由 表 3中所示的各种配置参数来确定。

agent_stack_sz

代理程序堆栈大小 

 udf_mem_sz

udf 共享内存集大小

applheapsz

应用程序堆大小

sortheap

排序堆大小  

 stmtheap

语句堆大小

stat_heap_sz

统计堆大小 

query_heap_sz

查询堆大小

drda_heap_sz

drda 堆大小

代理程序/应用程序共享内存 工作于同一应用程序的代理程序将共享该内存。

代理共享内存受 表 4中所示的数据库和数据库管理器配置参数的影响。

表 4.影响代理程序共享内存的配置参数 

  aslheapsz

应用程序支持层堆大小 

  rqrioblk

客户机 i/o 块大小 

代理程序私有内存受 表 5中所示的数据库配置参数的影响。

表 5.影响应用程序共享内存的配置参数 

  applheapsz

应用程序堆大小 

  agent_stack_sz

代理堆栈大小 

  stat_heap_sz

统计堆大小 

  udf_mem_sz

udf 内存 

  sortheap

排序堆大小 

  rqrioblk

查询堆大小 

  query_heap_sz

客户机 i/o 块 

  drda_heap_sz

drda 堆大小 

图 2说明了 DB2 是如何使用内存的。请查阅 Making DB2 Use All the Memory以获得更多信息。

图 2 DB2 的内存使用情况

图 2 . db2 的内存使用情况

创建数据库

在 DB2 EEE 中,可从 DB2 命令行处理器(CLP)提示符发出一个简单命令来创建数据库。以下示例创建了一个名为 mydb的数据库。

CREATE DATABASE mydb

执行了以上语句之后,数据库 mydb将出现在实例目录中。

表空间

表空间是数据库与实际容纳数据的容器对象之间的逻辑层。DB2 EEE 支持两类表空间:系统管理的空间(SMS)和数据库管理的空间(DMS)。在 SMS 中,操作系统的文件管理器分配并管理存储空间。SMS 中所使用的容器必须是目录。在 DMS 中,数据库管理器控制存储空间。DMS 中所使用的容器则必须是预分配的文件或物理设备,如硬盘驱动器。DBA 有权选择目录表空间、临时表空间和用户表空间这三者所需的表空间类型。

如果您在创建数据库时使用默认值,则会创建下列系统管理的表空间:

System—— 存储系统表中的目录信息。目录包含关于数据库对象(如表、视图、索引和包)定义的信息以及关于用户对于这些对象的访问类型的安全性信息。

Temporary—— 存储数据库处理过程中所创建的系统临时表。

User—— 存储由用户所创建的数据库对象,如表和索引。

下列示例说明了数据库管理员可以如何使用 DMS 和 SMS 表空间来创建数据库。下列示例利用系统管理的目录表空间以及数据库管理的临时表空间和用户表空间创建了名为 tested的数据库。

 

 

CREATE DATABASE tested

 

CATALOG TABLESPACE

PAGESIZE 4096

MANAGED BY DATABASE USING

(FILE 'C:\\DATA\\CAT1.DAT' 3000,

FILE 'D:\\DATA\\CAT1.DAT' 3000)

EXTENTSIZE 12

PREFETCHSIZE 16

TEMPORARY TABLESPACE

MANAGED BY SYSTEM USING

('C:\\DATA\\TEMP1' , 'D:\\DATA\\TEMP2')

USER TABLESPACE

MANAGED BY DATABASE USING

('\\\\.\\PhysicalDrive1' 4096,

'\\\\.\\PhysicalDrive2' 4096)

 

 

页(PAGE):组成块的表数据行称作页(page)。DB2 支持大小为 4 KB、8 KB、16 KB 和 32 KB 的页。您可以基于所使用的应用程序类型为不同的表空间选择不同的页面大小。默认情况下,DB2 使用 4 KB 的页。

页大小(PAGESIZE):为目录表空间指定页面大小为 4 KB。

扩展块(EXTENT):形成分配单元的一组页称作扩展块(extent)。在上面的示例中, 扩展块大小(EXTENTSIZE)定义 12 个 4 KB 的页组成一个扩展块。

预取(PREFETCH):该方式允许 DB2 在检索数据时预先读取数据以避免等待时间。

预取大小(PREFETCHSIZE):定义可预取的页数。

命令 LIST TABLESPACES SHOW DETAILS 除了显示以上信息之外,还显示总的页、可用的页、已用的页、空页等信息。

在由 LIST TABLESPACES 命令找到表空间 ID 之后,您可以通过发出命令 LIST TABLESPACE CONTAINERS FOR 2 SHOW DETAIL 找到关于容器的更多信息。2 是这个表空间的 ID。该命令将列出所指定的表空间的容器。而对于每个容器,它将显示其 ID、名称、类型、可用的页以及该容器当前是否可被访问。

在 DB2 中,您可以将索引、数据置于不同的表空间。给容器使用不同的硬盘驱动器将减少 I/O 竞争。下列示例创建了表 employee。常规数据将被置于表空间 TBS1 之中,而索引数据将被置于 TBS2 之中。

 

 

CREATE TABLE employee(

 

E_NO INT NOT NULL,

E_NAME CHAR(20) NOT NULL )

IN TBS1 INDEX IN TBS2

 

 

创建缓冲池

当从硬盘驱动器读写表和索引数据时,DB2 使用缓冲池来缓存它们。在创建表空间的时候,会指派一个默认的缓冲池 IBMDEFAULTBP。DBA 在创建或更改表空间时可以将缓冲池映射到该表空间。对于每个不同页大小的表空间,应该存在一个页大小相匹配的缓冲池。

 

 

CREATE BUFFERPOOL bp1

 

SIZE 4000

PAGESIZE 4096

 

 

上面的 SQL 语句创建了一个 4000 个 4KB 页的缓冲池 bp1(4000*4K = 16000K)。

现在就可以更改当前的表空间以映射缓冲池 bp1。以下示例将 emp 表空间映射到缓冲池 bp1:

 

 

ALTER TABLESPACE emp BUFFERPOOL bp1

 

 

 

缓冲池在数据库服务器上被分配为许多共享的内存段。数据库记录是在内存的缓冲池区域里被读取和更新的。而所有的缓冲池是在数据库被激活时被分配的。当应用程序需要数据库中指定表或索引的数据时,包含该数据的页将被从硬盘转移到相关的缓冲池中。直到发生以下某种情形时,才将这些页写回到硬盘中:

所有的应用程序与数据库断开连接。

新的页需要被读入缓冲池。

页清除器(cleaner)可用,并且被数据库管理器激活。

缓冲池应该大到足以在内存中保留所需的数据,以便减少硬盘驱动器的活动。要利用增加的缓冲池,您必须重新绑定应用程序,以使优化器在决定其访问策略时考虑缓冲池大小。

配置数据库实例

DB2 EEE 实例或实例管理器都驻留在目录节点上。实例所属的机器(即节点 0)拥有存储了该信息的共享目录。添加到一个实例的其他数据库分区服务器被称为是 参与该实例的。

物理节点 首先在一台机器上安装该实例所属的分区数据库服务器,然后在参与了分区的数据库系统的其他每台机器上安装一个数据库分区服务器,您可以通过这样做来配置物理节点。

逻辑节点 将同一机器上有不止一个分区数据库服务器称作 多逻辑节点(MLN)配置。MLN 利用了 SMP 体系结构。可使用 db2ncrt 命令在实例上添加分区数据库服务器节点(逻辑节点)来创建 MLN 配置。

下列示例向机器 node1上的实例 BENCH 添加了一个新的数据库分区服务器。该命令将这个新节点安装到 node1并使用逻辑端口 1。

db2ncrt /n:1 /u:BENCH\\db2inst1,bmdb2 /I:BENCH /m:node1 /p:1 /h:node1

节点组 一个或多个数据库分区的命名子集称作节点组。而由不止一个数据库分区构成的子集就被称作多分区节点组。多分区节点组可以仅存在于属于同一数据库的数据库分区之中。

下列示例在所有数据库分区上创建节点组 allnodes:

 

 

CREATE NODEGROUP allnodes ON ALL NODES

 

 

 

这个示例仅仅在节点 0 至 3 以及节点 5 上创建节点组 snodes:

CREATE NODEGROUP snodes ON NODE (0 TO 3, 5)

在创建了节点组之后,您必须将之与表空间关联起来以指定在哪些节点上对数据进行分区。

 

 

CREATE TABLESPACE org

 

IN NODEGROUP s_nodes

MANAGED BY DATABASE

USING (DEVICE '\\\\.\\PhysicalDrive1' 2000) ON NODE(0)

USING (DEVICE '\\\\.\\PhysicalDrive1' 2000) ON NODE(1)

USING (DEVICE '\\\\.\\PhysicalDrive1' 2000) ON NODE(5)

 

 

图 3说明了给定分区的数据库对象之间的关系。

图 3. 给定数据库分区的 DB2 对象 - 关系图

图 3 . db2 对象 - 关系图

调优指南

DB2 有用于监控和分析数据库性能问题的工具。

解释工具 解释(Explain)工具对于识别性能问题非常有用。它有助于判断是否需要附加索引,是否需要重写查询,锁定策略是否合适,等等。可通过下列方式捕获解释快照信息。

启用 EXPLAIN SNAPSHOT 专用寄存器 将专用寄存器 CURRENT EXPLAIN SNAPSHOT 设置为 YES 以捕获动态 SQL 语句的快照。您可以在应用程序中嵌入下列语句或者交互发出该语句。通过设置专用寄存器,将获得任何后续的合格动态 SQL 语句的解释快照(Explain snapshot)。

 

 

SET CURRENT EXPLAIN SNAPSHOT YES

 

 

 

收集 SQL 过程的解释快照 存储过程需要将寄存器 EXPLSNAP 设置为 ALL 或 YES,用以收集存取方案。

 

 

db2 PREP <procedure name> EXPLSNAP {YES / ALL / NO }

 

YES = static SQL

ALL = static and dynamic

NO = No snapshot

 

 

当用 EXPLSNAP YES 或 ALL 准备好包时,您就可以获得关于整个程序包的方案。

db2expln 工具描述了为系统目录表中存储的程序包中的静态 SQL 语句选中的存取方案,而 dynexpln 工具描述了动态 SQL 语句的存取方案。

下列示例使用 db2expln 来检索用户 myuser 创建的数据库 mydb 中名为 neword 的包的存取方案,并写入输出文件 output.file。

db2expln -d mydb -p neword -c myuser -o output.file

影响性能的实用程序 DB2 提供了各种实用程序来提高数据库性能,如 RUNSTATS、REORG 和 REORGCHK。

RUNSTATS 实用程序更新系统目录表中的统计信息以帮助查询优化处理。数据库管理器通过这些统计信息可以做出决策以提高 SQL 语句的性能。大量更改数据之后或运行 REORG 之后使用该实用程序。

REORG 清除表和索引中的碎片,并且可选择根据索引的次序排列表行。当另一个实用程序 REORGCHK 指明需要 REORG 时以及当性能随时间下降时(当数据的插入、更新和删除造成群集或空间利用下降时),就使用 REORG。

REORGCHK 检查系统表中的数据和应用公式以判断是否要重新组织表及其索引。REORGCHK 还可以在检查统计信息之前调用 RUNSTATS。要定期运行 REORGCHK,或者在用户注意到性能下降时运行它。

示例

下列 RUNSTATS 示例收集基于索引的所有可能统计信息:

RUNSTATS ON TABLE bench.neword WITH DISTRIBUTION AND DETAILED INDEXES ALL

下列 REORG 示例重新组织客户表,并使用系统临时表空间 TEMPSAPCE1 作为工作区域以存储中间结果。

 

 

REORG TABLE bench.customer USING TEMPSPACE1

 

 

 

下列 REORGCHK 命令检查是否需要 REORG,并且更新关于表 bench.customer 的统计信息:

 

 

REORGCHK UPDATE STATISTICS ON TABLE bench.customer

 

 

 

最小化 I/O

通过利用索引、缓存、登录开销的减少、汇总表以及取数据的减少来减少 I/O。

使用索引 创建恰当的索引将提高查询的性能。DB2 索引顾问(index adviser)辅助设计表上的索引。它在下列情况中十分有用:

为问题查询找到最适合的索引。

为一组查询寻找最佳索引受到了优化应用的资源限制。

测试工作负载上的索引而无需创建该索引。

索引的创建有助于避免对表进行不必要的扫描和排序,加速频繁执行的查询以及确保惟一性。

创建索引之后,请使用解释(Explain)工具来确保 DB2 在使用它们。

目录缓存器、包缓存器和日志缓冲区 要设置大小适当的目录缓存器、包缓存器和日志缓冲区以提高性能。目录缓存器用于存储表描述符信息,而在先前的语句中引用表、视图或别名时将使用该信息。包缓存器设置数据库全局内存的总量以用于缓存程序包的静态和动态 SQL 语句。日志缓冲区将容纳存储器中的日志记录,直到它们被写回硬盘驱动器。当发生下列一种情况时,日志记录就被写入硬盘驱动器:

日志缓冲区已满。

提交一个事务或一组事务。

使日志缓冲区可以容纳一般事务所使用的日志空间总量是很重要的。否则,大量的日志写操作将带来糟糕的记录性能,而这主要是由日志缓冲区已满的状况导致的。

以下是用于更改这些缓存参数的命令:

 

 

db2 update db cfg for mydb using logbufsz 4096

 

db2 update db cfg for mydb using catalogcache_sz 1024

db2 update db cfg for mydb using pckacchesz 4096

 

 

提高 I/O 并行性 以下是提高 I/O 并行性的指南:

在多个硬盘驱动器上展开数据以减少 I/O 等待时间。

将数据和索引分隔到不同的表空间,以通过减少 I/O 竞争来提高 OLTP 和 OLAP 应用程序的性能。

作为 OLTP 应用程序的经验法则,可在多个设备上使用 DMS 表空间。而临时表空间和目录表空间必须置为 SMS。

日志文件的放置 对于 OLTP 应用程序,将日志文件放置在单独的物理设备上是极其重要的,因为这样它们的频繁活动就不会给在同一硬盘驱动器上的其他工作带来不良影响。

DB2 的并行 I/O 当从表空间容器读取或者向其写入数据时,如果数据库中的容器数量大于 1,DB2 就可能使用并行 I/O。然而,也存在受益于为单个容器的表空间启用并行 I/O 情形,特别是对于条带化的 RAID 设备。

启用分区内并行性 要启用优化器以选择分区内并行性,您必须按如下所示设置分区内并行的数据库管理器配置参数:

 

 

db2 update dbm cfg using intra_parallel YES

 

 

 

分区内并行需要设置数据库参数 dft_degree 以指定并行度。应将该值设置为大于 1 而小于等于数据库分区可使用的处理器数目。

数据库配置参数 dft_degree 指定每个数据库默认的并行性级别。1 意味着不存在分区内并行性。而 -1 则意味着由优化器基于处理器数目和查询类型来确定并行度。

当将数据库跨节点进行分区时,将自动启用分区间并行性。

汇总表 汇总表是指其定义基于查询结果的表。因此,汇总表通常包含基于其定义所基于的表中的现有数据的预计算结果。如果 SQL 编译器判断对汇总表运行动态查询比对基表运行更高效,则将对汇总表执行查询,您也将更快地获得结果。

如何对数据分区 分区键(partitioned key)是指一列或一组列,用于确定特定行数据所存储的分区。要在 CREATE TABLE 语句中指定表的分区键。如果您没有在表空间中指定表的分区键,而该表空间又被分隔给节点组中的多个数据库分区,DB2 则会默认地由主键的第一列创建一个。而如果没有指定主键,默认的分区键则为该表上所定义的第一个不为 long 字段的列。

 

 

CREATE TABLE customer(

 

C_ID INTEGER NOT NULL,

C_FIRST VARCHAR(20) NOT NULL,

C_MIDDLE VARCHAR(20) NOT NULL)

IN CUSTOMER

INDEX IN CUSTOMER_IDX

PARTITIONING KEY(C_ID) USING HASHING;

 

 

使用数据库快照监控器进行调优

数据库监控器向 DBA 提供了关于数据库和访问该数据库的应用程序的大量信息。下面列出了不同的监控器组开关:

SORT—— 使用的堆、溢出和执行的排序的总数。

LOCK—— 保存的锁、死锁和锁等待升级的数目。

TABLE—— 活动度量(读取行,写入行)。

BUFFERPOOL—— 物理读、逻辑读和定时信息。

STATEMENT—— 提交、回滚、选择和失败的数目。

您可以通过下列命令使用这些开关以运行快照监控器:

 

 

GET MONITOR SWITCHES

 

UPDATE MONITOR SWITCHES USING <

switch-name> ON/ OFF

RESET MONITOR ALL/ FOR DATABASE <

dbname>

 

 

调优缓冲区 缓冲区命中率表明了数据库管理器无需为服务页请求而加载来自于硬盘驱动器中的页的时间百分比;也就是说,该页已经存在于缓冲池中。缓冲池命中率越高,硬盘驱动器的 I/O 频率则越低。下列公式将通过缓冲池快照信息计算缓冲池命中率:

 

 

(1- ((pool_data_p_reads + pool_index_p_reads) /

 

(pool_data_l_reads + pool_index_l_reads))) * 100

 

 

如果命中率较低,则可以增加缓冲池页数来提高性能。

调优排序堆 快照数据排序的平均经过时间可被度量为 total_sort_time / total_sorts。随着排序性能的提高,此平均量将减少。排序堆的增加可能会消除合并阶段,因而减少排序时间。

调优排序堆阈值(sortheapthres) 总是要让阈值保持足够大以便满足所有应用程序所需的总排序堆。否则,应用程序进行管道排序的请求将遭到拒绝。数据库管理器所接受的管道排序请求百分比可以使用下列公式来计算:

 

 

100%*piped_sorts_accepted/piped_sorts_requested

 

 

 

小百分比表明可通过增大参数 sortheapthres 来提高性能。

调优包缓存器(pckcachesz) 可使用下列公式计算包缓存器的命中率:

 

 

(1 - (Package cache inserts / package cache lookups)) * 100

 

 

 

较小的命中率表明应该增大参数 pckcachesz。

调优目录缓存器 可使用下列公式计算目录缓存器的命中率:

 

 

(1 - (Catalog cache inserts / catalog cache lookups)) * 100

 

 

 

较小的命中率表明应该增大 catalogcache_sz。

调优并发应用程序的最大数目(maxappls) 数据库配置参数 maxappls 指定可连接到一个数据库的并发应用程序的最大数目。增加该参数的值而不减小参数 maxlocks 或增大参数 locklist 可能会达到数据库的锁(locklist)极限而不是应用程序的极限,并因此导致普遍锁升级问题。您应该确保应用程序有足够的可用代理程序(maxagents)。

调优数据库管理器代理程序的最大数目(maxagents) maxagents 表明用以在任何给定时间里接受应用程序请求的数据库管理器代理程序的最大数目。参数 maxagents 的值应该为允许并发访问的每个数据库中 Maxappls 值的总和。

快速通信管理器(FCM) DB2 可以使用 FCM 在工作于同一请求的代理程序之间进行通信。FCM 的可配置参数有 fcm_num_anchors、fcm_num_buffers、fcm_num_connect 和 fcm_num_rqb。随着分区数目的增加,连接条目的数目(fcm_num_connect)和 BQS RQB(fcm_num_rqb)也将会增加。而当请求块的数目增加时,FCM 缓冲区的数目(fcm_num_buffers)也会增加。当子段(subsection)数目(即查询复杂性)增加时,BDS RQB 的数目(fcm_num_rqb)和消息锚的数目(fcm_num_anchors)也将增加。

在一个 MLN 环境中将 DB2_FORCE_FCM_BP 设置为 YES,可允许 DB2 在单独的内存段中创建 FCM 缓冲区。而当在单独的内存段中创建 FCM 缓冲区时,在同一物理节点上的不同逻辑分区的 FCM 守护进程间的通信将通过共享存储器进行。

禁用 Windows 的文件系统缓存 文件系统缓存的执行如下:

对于 DMS 文件容器(以及所有 SMS 容器),操作系统可在文件系统缓存器中缓存页面。

对于 DMS 设备容器表空间,操作系统不在文件系统缓存器中缓存页面。

当在 Windows NT® 上工作时,注册表变量 DB2NTNOCACHE 指定 DB2 是否用 NOCACHE 选项打开数据库文件。如果 DB2NTNOCACHE=ON,将不进行文件系统缓存。而如果 DB2NTNOCACHE=OFF,操作系统将缓存 DB2 文件。除了对于包含 LONG FIELDS 或 LOBS 的文件,这适用于所有数据。消除系统缓存将允许更多内存对数据库可用,以便可以增加缓冲池或排序堆。要禁用文件系统缓存,您必须将注册表变量设置为 ON:

 

 

db2set DB2NTNOCACHE=ON

 

 

 

消除系统缓存将允许更多内存对数据库可用,以便可以增加缓冲池或排序堆。

调优 Linux、UNIX 和 Windows 上的 DB2 的示例 Perl 脚本

enable_snap.pl—— 启用所有 DB2 快照(即 BUFFERPOOLS、TABLES、LOCKS,等等)。

perl gather_stats.pl < dbname> < time_in_secs> —— 该脚本将所有 DB2 快照信息搜集到名为 dbrun.snap 的文件中。

perl buffhitratio.pl dbrun.snap—— 该脚本提供了每个缓冲池的数据和索引页命中率。

 

 

$ perl buffhitratio.pl dbrun.snap

 

BP Name Logical Rd Physical Rd Writes Async Rds Async Wrts Hit Ratio%

------------------------------------------------------------------------------

DATA 1538 133 19 117 0 91.35%

INDX 3084 38 2 0 0 98.77%

IBMDEFAULTBP DATA 1538 133 19 117 0 91.35%

IBMDEFAULTBP INDX 3084 38 2 0 0 98.77%

IBMDEFAULTBP DATA 1538 133 19 117 0 91.35%

IBMDEFAULTBP INDX 3084 38 2 0 0 98.77%

HINT :

It is good have high hit ratio; if not increase your bufferpool size.

 

 

perl cathitratio.pl dbrun.snap—— 该脚本提供了目录缓存器的命中率。

 

 

$ perl cathitratio.pl dbrun.snap

 

Cache Inserts Cache Lookups % Hit Ratio

-------------------------------------------------------

10 20 50%

HINT :

If hit ratio is less than increase catalog cache size

 

 

perl packhitratio.pl dbrun.snap—— 该脚本提供了包缓存器的命中率。

 

 

$ perl packhitratio.pl dbrun.snap

 

Package Cache Inserts Package Cache Lookups % Hit Ratio

--------------------------------------------------------------

1 244 99%

HINT :

Increase the catalog cache size if the hit ratio is less

 

 

perl sortthresh.pl dbrun.snap—— 该脚本提供了已服务的排序数目和被拒绝的排序数目。

 

 

$ perl sortthresh.pl dbrun.snap

 

Piped sorts requested Piped sorts accepted % Serviced Num Sorts Rejected

--------------------------------------------------------------------------------

1 1 100% 0

HINT :

If % Serviced is low then increase sheapthresh

If Num Sorts Rejected is higher then increase sortheap or sheapthreash is too small

 

 

perl sorttime.pl dbrun.snap—— 该脚本提供了每个排序的平均经过时间。

 

 

$ perl sorttime.pl dbrun.snap

 

Total Sort Time (ms) Total Sorts Average Elapsed Time per sort

-----------------------------------------------------------------

100 10 10

HINT :

As the performance improves, this average will decrease

 

 

perl tbs_usage.pl <dbname>—— 该脚本提供了给定数据库的所有表空间的空闲和已用空间。

 

 

$ perl tbs_usage.pl tpcd

 

connect to ebuis

Database Connection Information

Database server = DB2/LINUX 7.2.2

SQL authorization ID = EBUIS

Local database alias = EBUIS

Ts_Id Ts_Name Total Used Free Number_of_files

------------------------------------------------------------------

0 SYSCATSPACE 10M 10M 0M 1

1 TEMPSPACE1 0M 0M 0M 1

2 USERSPACE1 0M 0M 0M 1

3 BENCHTEMP 1000M 0M 999M 2

4 ORDERS_DATA 1000M 95M 903M 2

5 ORDERS_INDEX 1000M 18M 981M 2

6 LINEITEM_DATA 1000M 398M 600M 2

7 LINEITEM_INDEX 1000M 138M 861M 2

8 BENCHINDX 1000M 22M 977M 2

9 BENCHDATA 1000M 94M 905M 2

 

 

perl locklist.pl dbrun.snap <dbname> —— 该脚本显示总的锁列表、使用中的平均锁列表以及平均锁列表利用率。

 

 

$ perl locklist.pl dbrun.snap ebuis

 

Locklist (4K Page) Lock_list_in_use(4K Page) Lock list utilization

--------------------------------------------------------------------------------

100 6 6%

HINT :

If Lock list utilization is low then decresae the locklist

If Lock list utilization is more then increase the locklist

 

 

posted on 2007-03-16 10:19  JazzieZhang  阅读(3818)  评论(0编辑  收藏  举报