变量名 | 操作系统 | 值 |
---|---|---|
描述 | ||
DB2_BINSORT | 所有 | 缺省值 = NO
值:YES 或 NO |
启用一种新的排序算法来减少排序的
CPU 时间和经过时间。这种新算法将 DB2 UDB 的特别有效的整数排序技术扩展到所有排序数据类型,例如
BIGINT、CHAR、VARCHAR、FLOAT、DECIMAL 以及这些数据类型的组合。要启用此新算法,使用以下命令:
db2set DB2_BINSORT = yes | ||
DB2_BLOCK_BASED_BP | Solaris 操作环境 | 缺省值 = 无
值:取决于参数 |
指定在缓冲池内创建块区域所需要的值。缓冲池的标识是必需的,并且可以在 SYSCAT.BUFFERPOOLS 系统目录视图的 BUFFERPOOLID 列中看到。必须给定缓冲池中要分配给基于块的 I/O
的页数。要包括在块中的页数是可选的,缺省值为 32。
使用此注册表变量的格式为: DB2_BLOCK_BASED_BP=BUFFER POOL ID,BLOCK AREA SIZE,[BLOCK SIZE];... 通过使用同一变量(并用分号来隔开各个条目),可以将多个缓冲池定义为是基于块的。 BLOCK SIZE 可以是 2 到 256 范围内的值。如果没有给定 BLOCK SIZE,则将使用缺省值 32。 如果指定的 BLOCK AREA SIZE 大于总缓冲池大小的 98%,则缓冲池将不是基于块的。最好是始终让缓冲池的某些部分处于缓冲池的基于页的区域中,这是因为即使系统上大多数 I/O 都是顺序预取装的,但仍然可能需要个别页面。如果为 BLOCK AREA SIZE 指定的值不是 BLOCK SIZE 的倍数,则它将降低至最接近的块大小边界。有关基于块的 I/O 的更多信息,参见 10.2.1, 基于块的缓冲池。 | ||
DB2_NO_FORK_CHECK | UNIX | 缺省值 = OFF
值:ON 或 OFF |
如果此变量为“N”,则客户机进程将允许应用程序复制要运行的进程(称为派生)。当进行派生时,结果将是不可预测的。结果可能是没有任何效果、出现更坏结果、返回一些错误代码或是应用程序中出现陷阱。如果确定应用程序没有派生且想要性能更佳,则应将此变量的值更改为“N”。 | ||
DB2_MINIMIZE_LIST_PREFETCH | 所有 | 缺省值 = NO
值:YES 或 NO |
列表预取装是一种特殊的表存取方法,它涉及到从索引中检索合格的
RID,按页号将它们排序,然后预取装数据页。
有时,优化器没有准确的信息来确定列表预取装是否是一种很好的存取方法。当谓词选择中的参数标志符或主变量可防止优化器使用目录统计信息来确定选择时,就可能会发生这种情况。 此注册表变量将防止优化器在这种情况下考虑使用列表预取。 | ||
DB2_INLIST_TO_NLJN | 所有 | 缺省值 = NO
值:YES 或 NO |
在某些情况下,SQL 编译器可以将 IN 列表谓词重写到连接中。例如,可以将以下查询:
SELECT * FROM EMPLOYEE WHERE DEPTNO IN ('D11', 'D21', 'E21')改写为: SELECT * FROM EMPLOYEE, (VALUES 'D11', 'D21', 'E21) AS V(DNO) WHERE DEPTNO = V.DNO 如果具有关于 DEPTNO 的索引,则此修订可以提供更高的性能。将首先存取值的列表,并通过使用索引来应用连接谓词,从而利用嵌套的循环连接来连接至 EMPLOYEE。 有时,优化器没有准确的信息来确定查询的重写版本的最佳连接方法。如果 IN 列表中的参数标志符或主变量可防止优化器使用目录统计信息来确定选择时,就会发生这种情况。此注册表变量将导致优化器使嵌套的循环连接更有利于连接值的列表,将提供了 IN 列表的表用作连接中的内部表。 |
|注册表变量 DB2BPVARS 支持两个新参数:NUMPREFETCHQUEUES 和 |PREFETCHQUEUESIZE。这些参数适用于所有平台,并且可用来改进缓冲池数据的预取。例如,考虑顺序预取, |在此操作中,期望的 PREFETCHSIZE 被分成 |PREFETCHSIZE/EXTENTSIZE 预取请求。在此情况下,将请求放置在预取队列上,从预取队列中,分派 |I/O 服务器执行异步 I/O。缺省情况下,DB2 为每个数据库分区维护一个大小为 |max( 100 , 2*NUM_IOSERVERS) 的队列。在某些环境中,通过使用更多队列和/或不同大小的队列来提高性能。预取队列数至少应该是 |I/O 服务器数目的一半。当设置这些参数时,应考虑其它参数(例如,PREFETCHSIZE、EXTENTSIZE、NUM_IOSERVERS、缓冲池大小和 DB2_BLOCK_BASED_BP)以及工作负荷特征(例如,当前用户数)。
|如果您认为缺省值对于您的环境来说太小了,则首先应稍微增大这些值。例如,可以设置
|NUMPREFETCHQUEUES=4 和 PREFETCHQUEUESIZE=200。以受控方式更改这些参数,以便可以监视和评估更改的效果。
|
参数名称 | 缺省值 | 有效范围 |
---|---|---|
NUMPREFETCHQUEUES | 1 | 1 到 NUM_IOSERVERS
如果已将它设置为小于 1,则将它调整为 1 如果已将它设置为大于 NUM_IOSERVERS,则将它调整为 NUM_IOSERVERS |
PREFETCHQUEUESIZE | max(100,2*NUM_IOSERVERS) | 1 到 32767
如果已将它设置为小于 1,则将它调整为缺省值 如果已将它设置为大于 32767,则将它调整为 32767 |
|DB2_NEWLOGPATH2 注册表变量可供所有操作系统使用。系统已经引入了新变量 DB2_ROLLFORWARD_NORETRIEVE。这些变量的更正信息如下所示。
|
|系统已经引入了新变量 DB2_REDUCED_OPTIMIZATION。
|
变量名 | 操作系统 | 值 |
---|---|---|
描述 | ||
DB2_REDUCED_OPTIMIZATION | ALL | 缺省值 = NO
值:YES、NO 或任何整数 |
此注册表变量会让您禁用在特定优化级别使用的某些优化技巧。如果减少使用的优化技巧,则会减少优化期间使用的时间和资源。
注意,优化级别为 5 的动态优化降低(就象《管理指南:性能》中的『调整优化类』中描述的那样)优先于 DB2_REDUCED_OPTIMIZATION 设置为 YES 时对优化级别 5 描述的行为以及对整数设置描述的行为。 |