直接线程写入

DLTHREADSWRITE 配置设置指定 Essbase 在块存储数据加载过程(在磁盘上写入块)阶段可能使用的线程数。并行处理的多个线程可能会提高数据加载性能。

由于 Essbase 在聚合存储 (ASO) 数据加载过程的写入阶段使用单个线程,因此 DLTHREADSWRITE 不适用于 ASO 数据库。

语法

DLTHREADSWRITE [appname [dbname]] n
  • appname - 应用程序名称。用于在应用程序内的一个或所有数据库中使用指定数量的线程的可选参数。如果为 appname 指定了值,但没有为 dbname 指定值,则该设置将应用于指定应用程序中的所有数据库。如果未指定应用程序,则无法指定数据库,该设置将应用于 Essbase Server 上的所有应用程序和数据库。

  • dbname - 数据库名称。用于在指定应用程序中加载指定数据库时使用指定数量的线程的可选参数。如果不为 dbname 指定值,则该设置将应用于指定应用程序中的所有数据库。如果未指定 appname,则无法指定 dbname

  • n - 数据加载进程可用于将数据块写入磁盘的线程数。指定 1 和 32 之间的整数。默认值为 1。如果 n > 32 或为负数,则假定值为 32。

说明

此设置以及 DLTHREADSPREPAREDLSINGLETHREADPERSTAGE 与并行数据加载处理相关。管道的概念与 Essbase 数据加载相关。管道是内存中可以串行或并行执行的一系列数据处理元素。Essbase 数据加载操作使用由 5 个阶段组成的管道。默认情况下,每个阶段都使用单个线程。因此,所有数据加载操作至少需要 5 个线程。

要通过最大限度地利用处理器资源来提高数据加载性能,可以使用这些设置在数据加载处理的准备和写入阶段中启用额外的多线程处理。

可以为单个数据库、应用程序中的所有数据库或服务器上的所有应用程序和数据库指定 DLTHREADSWRITE。

为了使 Essbase 使用为 DLTHREADSWRITE 指定的值,必须将配置设置 DLSINGLETHREADPERSTAGE 设置为 FALSE。

有关块存储数据加载中的并行线程处理的更多信息,请参见 Optimizing Data Loads

说明

  • 可以使用另一个配置设置 DLTHREADSPREPARE 指定数据加载处理的准备阶段的线程数。

  • 许多因素会影响 DLTHREADSWRITE 的可能最佳值,包括计算机上的处理器数以及在计算机上运行的其他进程数。如果要将此设置设置为高于默认值 (1) 的值,请与您的系统管理员联系,因为较高值会占用大量系统资源。如果此设置的线程数大于服务器计算机上的处理器数,则不要期望性能优势。

  • 如果将 DLTHREADSWRITE 的值设置为大于 1(一),则在单处理器计算机上几乎不会产生任何好处。

范例

DLSINGLETHREADPERSTAGE Sample Basic FALSE
DLTHREADSWRITE Sample Basic 3

由于 Sample Basic 应用程序和数据库的 DLSINGLETHREADPERSTAGE 设置为 FALSE,因此 Essbase 在将数据加载到 Sample Basic 时在写入阶段使用 3 个并行线程。