管理:性能

8 8 8

新的系统环境变量(Linux)

8

修订包 8 中添加了 DB2_MAPPED_BASE 和 DB2DBMSADDR 系统环境变量。

8

仅建议高级用户才使用这些注册表变量。

8
8DB2_MAPPED_BASE 8

8
8
变量名
8
DB2_MAPPED_BASE 8
8
8
0 OR(十六进制)31 位和 32 位地址范围中的虚拟地址 OR NULL(未设置) 8
8
操作系统
8
x86 上的 Linux 和 zSeries 上的 Linux(31 位) 8
8
描述
8
DB2_MAPPED_BASE 注册表变量可以用来增大可用于 DB2 Universal Database(DB2 通用数据库,UDB)的邻接虚拟地址空间量,这是通过重新定位特定进程的共享库的连接地址来实现的。邻接虚拟地址空间对于使可用于 DB2 UDB 的数据库共享内存量达到最大化是很重要的。此变量仅对于将 mapped_base 文件包括在 proc 文件系统中的进程标识目录的分发有效。 8

如果未设置此变量,则 DB2 UDB 将尝试把共享库重新定位至虚拟地址 80x20000000。

8

如果新地址将共享库放在地址空间中较低的位置,则还可以将该注册表变量设置为 31 位和 32 位地址空间范围内的任何虚拟地址(十六进制)。

8 8
注:
8
不正确的地址会导致 DB2 UDB 产生严重问题,这些问题包括无法启动 DB2 UDB,甚至无法连接至数据库。不正确的地址就是与内存中已经在使用的区域相冲突的地址或者是预先指定为用于其它某些用途的地址。要解决此问题,可使用以下命令来将 DB2_MAPPED_BASE 变量重新设置为 NULL: 8
db2set DB2_MAPPED_BASE=
8

以下消息在 db2diag.log 文件中可能会多次出现,这是因为对每个逻辑节点都需要进行一次此更改: 8

8
ADM0506I  DB2 已自动将“mapped_base”内核参数从
8
8“0x40000000(hex) 1073741824(dec)”更新为建议值 8
8“0x20000000(hex) 536870912(dec)”。
8

仅当成功设置了该注册表变量时才会出现此消息,并且它将包括共享库被重新定位至的地址。

8
8
8
8DB2DBMSADDR 8

8
8
变量名
8
DB2DBMSADDR 8
8
8
0x09000000 到 0xB0000000 范围内的虚拟地址,其增量为 0x10000 8
8
操作系统
8
x86 上的 Linux 和 zSeries 上的 Linux(31 位) 8
8
描述
8
以十六进制格式指定缺省数据库共享内存地址。 8 8 8
注:
8
不正确的地址会导致 DB2 UDB 产生严重问题,这些问题包括无法启动 DB2 UDB,甚至无法连接至数据库。不正确地址的示例就是与内存中已经在使用的区域相冲突的地址或者是预先指定为用于其它某些用途的地址。要解决此问题,可使用以下命令来将 DB2DBMSADDR 变量重新设置为 NULL: 8
db2set DB2DBMSADDR=
8

可以将此变量与 DB2_MAPPED_BASE 一起设置,也可以单独设置此变量,以便精细调整 DB2 UDB 进程的地址空间布局。此变量将把实例共享内存的位置从它在虚拟地址 0x10000000 的当前位置更改为给定的新值。

8
8
7 7 7

新增通信注册表变量

7

已在版本 8.2 中添加了 DB2TCP_CLIENT_RCVTIMEOUT 注册表变量。

7 77777777777777777777777
表 11. 通信变量
变量名 操作系统
描述
DB2TCP_CLIENT_RCVTIMEOUT 所有 7

缺省值为 0(未设置)

7

值:0 至 32767 秒

7

指定 TCP/IP 接收操作中客户机等待数据的秒数。

7

如果注册表变量未设置或已设置为零,则没有超时。如果 TCP/IP 接收在超时值到期之前返回数据,则应用程序将如常继续。如果超时值到期仍未返回数据,则连接关闭。

7

7 7
注:
7
此注册表变量仅适用于 DB2 客户机和 DB2 网关的客户端。它不适用于 DB2 服务器。
7 7 7

新增性能变量

7

已在版本 8.2 中添加了 DB2_LARGE_PAGE_MEM 性能变量。

7 77777777777777777777777
表 12. 性能变量
变量名 操作系统
描述
DB2_LARGE_PAGE_MEM 7

仅 AIX 5.x 64 位

7

Linux

缺省值为 NULL 7

使用 * 指示应使用大页内存的所有适用内存区域或者应使用大页内存的特定内存区域的用逗号分隔的列表。可用区域根据操作系统有所变化。在 64 位 AIX 5.x 上,可指定下列区域:DB、DBMS 或 PRIVATE。在 Linux 上,可指定以下区域:DB。

7

大页内存仅对于 DB2 Universal Database(DB2 通用数据库,UDB)AIX 5L 版 64 位版和 DB2 UDB Linux 版才是受支持的。

7

DB2_LARGE_PAGE_MEM 注册表变量用于在 AIX 5.x 或带有适当内核支持的任何 Linux 体系结构上运行时启用大页支持。此注册表变量不推荐使用 DB2_LGPAGE_BP 注册表变量,该变量只能用于对数据库共享内存区域启用大页内存。现在,可通过设置 DB2_LARGE_PAGE_MEM=DB 启用大页内存。提到使用 DB2_LGPAGE_BP 注册表变量启用大页的任何说明可被视为设置 DB2_LARGE_PAGE_MEM=DB。

7

大页的使用主要是为了改进性能以获取高性能计算应用程序。使用大量虚拟内存的密集内存存取型应用程序可以通过使用大页来提高性能。为使 DB2 UDB 能够使用大页,必须先将操作系统配置为使用大页。

7

启用大专用页将显著增加 DB2 UDB 内存使用量,而每个 DB2 UDB 代理进程将至少消耗 1 个大页(16MB)的物理内存。要对 64 位 DB2 UDB AIX 版上的代理进程专用内存启用大页(DB2_LARGE_PAGE_MEM=PRIVATE 设置),除了在操作系统上配置大页之外,还必须满足下列条件:

7
    7
  • 实例所有者必须拥有 CAP_BYPASS_RAC_VMM 和 CAP_PROPOGATE 功能。
  • 7
  • 内核必须支持允许进程在运行时修改其页大小的接口。 .
7

在 64 位 DB2 UDB AIX 版上,启用此变量将降低共享内存段的大小,使数据库内存的需求降至最低。缺省情况是创建 64 GB 7内存段:有关更多详细信息,请参阅数据库共享内存大小(database_memory)数据库配置参数。这将避免在 RAM 中插入过量的共享内存。

7

通过设置此变量,动态增加总数据库共享内存配置(例如,增加缓冲池的大小)的能力将受到限制。

7

在 Linux 上,还需要有 libcap.so 库可用。必须先安装此库才能使此选项起作用。如果此选项已打开,且该库不在系统上,则 DB2 UDB 将禁用大内核页并继续如常运作。

7

在 Linux 上,要验证大内核页是否可用,发出以下命令:

7
      cat /proc/meminfo
7

如果可用,应出现下列三行(带有不同数字,这取决于在机器上配置的内存量):

7
      HugePages_Total:   200
7      HugePages_Free:    200
7      Hugepagesize:    16384 KB
7

如果没看到这几行,或者如果 HugePages_Total 为 0,则需要配置操作系统或内核。

8 8 8

SQL 编译器变量

8

以下更新适用于《管理指南:性能》的附录 A『DB2 注册表和环境变量』中的主题“SQL 编译器变量”:

8

当 DB2 编译器变量 DB2_MINIMIZE_LISTPREFETCH 和 DB2_INLIST_TO_NLJN 的其中一个变量或两个变量都设置为 8ON 时,它们都保持活动,即使指定了 REOPT(ONCE) 也是如此。

8 8 8

配置参数更新

8

以下是对配置参数文档的更新:

8 8

认证 - 认证类型

8
8

认证类型(认证)数据库管理器配置参数还接受下列值:

8
8 8

util_impact_lim - 实例影响策略

8
8

从 DB2 Universal Database(DB2 通用数据库)版本 8.2 开始,实例影响策略util_impact_lim)数据库管理器配置参数的缺省值就从 100 更改为 10。

8 8

sysadm_group、sysmaint_group、sysctrl_group 和 sysmon_group

8
8

在所有平台上,下列数据库管理器配置参数全部都可以接受长度为 30 个字节(或更少)的组名:

8 8

“数据库管理器配置参数总结”这一主题中的表包含这些数据库管理器配置参数的不正确的数据类型。所有情况下的正确值都是 char(30)。

8 8

estore_seg_sz - 扩展存储器内存段大小

8
8

在基于 Windows 的平台上,扩展存储器内存段大小数据库estore_seg_size)配置参数的最大大小为 16 777 216。

8 8

hadr_timeout - HADR 超时值

8
8

HADR 超时值hadr_timeout)数据库配置参数的正确上限为 4 294 967 295。

8 8

locklist - 锁定列表的最大存储器

8
8

锁定列表的最大存储器locklist)数据库配置参数的文档指出仅对本地客户机服务的 Windows 64 位和 32 位服务器的最大值为 860 000。此值是不正确的,应该为 524 288。

8 8

num_db_backups - 数据库备份数

8
8

数据库备份数num_db_backups)数据库配置参数的值的范围不正确。正确范围是 0 到 32 767。

8 8 8

SQLDBCONF 数据库配置参数文件

8

从 DB2 Universal Database(DB2 通用数据库,UDB)版本 8.1 到版本 8.2 之后, 8DB2 UDB 将使用新的 16 KB 数据库配置参数文件,其名称为 8SQLDBCONF。(在版本 8.1 中,数据库配置参数文件只有 4 KB,其名称为 SQLDBCON)。

8 8 8

对 DB2_HASH_JOIN 缺省值的更改

8

从版本 8.1 开始,注册表变量 DB2_HASH_JOIN 缺省情况下将设置为 ON。

8

应该使用散列连接变量,但是需要调整它才能获得最佳性能。

8

如果可以避免散列循环和溢出至磁盘,则散列连接性能将是最佳的。要调整散列连接性能,估计可用于 sheapthres 参数的最大内存量,然后调整 sortheap 参数。增大该参数的值,以尽可能避免存在太多散列循环和磁盘溢出,但是,不要达到 sheapthres 参数指定的限制。

8

有关更多信息,请参阅《管理指南:性能》手册中的“连接方法”主题。

7 7 7

不推荐使用 DB2NTNOCACHE 注册表变量

7

先前通过 DB2NTNOCACHE 实现的功能可通过在 CREATE TABLESPACE 或 ALTER TABLESPACE 7语句上指定 NO FILE SYSTEM CACHING 子句在表空间级别实现。有关用法的详细信息,参阅 SQL Reference。DB2NTNOCACHE 注册表变量在将来的发行版中会被除去。

7 7 7

说明表和说明信息的组织

7

说明表可能对多个用户是公共的。 7但是,可对一个用户定义这些说明表,并可对使用相同名称的每个其它用户定义别名以指向定义的表。或者,可在 SYSTOOLS 7模式下定义说明表。如果在用于动态 SQL 的用户会话标识或用于静态 SQL 的语句授权标识下未发现任何其它说明表或别名, 7则说明设施将缺省为 SYSTOOLS 模式。共享公用说明表的每个用户必须对那些表有插入许可权。公用说明表的读许可权通常也应限于分析说明信息的用户。

7 7 7

捕获说明信息的准则

7

如果在编译 SQL 语句时请求说明数据,则捕获该数据。 7考虑您期望在请求说明数据时如何使用捕获的信息。

7
7捕获说明表中的信息 7
7 7 7

db2CfgGet API 中的附加返回码 collate_info 参数

7

整理信息参数仅可使用 db2CfgGet API 显示。它不能通过命令行处理器或控制中心来显示。

7
7
配置类型
7
数据库 7
7
参数类型
7
参考 7
7
7

此参数提供 260 个字节的数据库整理信息。前面 256 个字节指定数据库整理顺序,其中字节“n”包含代码点的排序权重,该代码点在数据库代码页中的基本十进制表示为“n”。

7

最后 4 个字节包含关于整理顺序类型的内部信息。collate_info 的最后 4 个字节是整数。该整数依据平台的字节存储顺序。可能的值包括:

7 7

如果使用此内部类型信息,在另一平台上检索有关数据库的信息时需要考虑字节反向。

7

可在创建数据库时指定整理顺序。

8 8 8

自动设置缺省预取大小和更新缺省值

8

从 DB2 Universal Database(DB2 通用数据库,UDB)版本 8.2 开始,可以对表空间使用 AUTOMATIC 预取大小。当表空间的容器数更改时,DB2 UDB 将自动更新预取大小。

8

扩展了 DB2_PARALLEL_IO 注册表变量的语法,以识别具有不同 8I/O 并行性特征的容器。通过扩展的语法,不同表空间的容器可以具有不同的 8I/O 并行性特征。当为表空间指定的预取大小为 AUTOMATIC 时,将使用每个表空间的 8I/O 并行性特征。如果启用了 DB2_PARALLEL_IO 注册表变量,但是未使用用于标识表空间的特定 8I/O 并行性特征的扩展语法,则假定使用缺省级别的并行性。缺省级别为 RAID 5(6+1)。

8

仅当发出了用于更改表空间的预取大小或者更改容器数(使用 ADD/DROP/BEGIN NEW STRIPE SET/ADD TO NEW STRIPE SET)的 8ALTER TABLESPACE 语句时,才会刷新优化器使用的预取大小信息。如果每个容器注册表设置的物理磁盘数发生更改,则应该发出 ALTER TABLESPACE <table space name> PREFETCHSIZE AUTOMATIC 语句来刷新优化器信息(除非已经发出了用于刷新优化器信息的 ALTER TABLESPACE 语句)。

8

如果重定向或者复原了表空间以使用不同的容器数,则通过发出 ALTER TABLESPACE <table space name> PREFETCHSIZE AUTOMATIC 语句来刷新优化器信息。如果一个表空间中具有多个条形集,则使用条形集中的最大容器数来计算预取大小。如果通过计算获得的预取大小超过了最大大小(32 767 页),则将小于最大值的容器数的最大乘积用作预取大小。

8

在 DB2 UDB 企业服务器版环境中,如果表空间使用 8AUTOMATIC 预取大小,则不同数据库分区上的预取大小可能不同。这种情况是存在的,这是因为不同的数据库分区用来计算预取大小的容器数可能不同。为了生成查询存取方案,优化器使用数据库分区组中的第一个分区的预取大小。

[ 页的顶部 |上一页 | 下一页 | 目录 ]