This configuration setting specifies how many threads Essbase may use during the stage of the data load process that writes blocks on the disk. Multiple threads, processing in parallel, may improve data load performance.
Since Essbase uses a single thread during the write stage of the aggregate storage data load process, this setting does not apply to aggregate storage databases.
DLTHREADSWRITE [appname [dbname]] n
appname—Application name. Optional parameter for using the specified number of threads in one or all databases within the application. If you specify a value for appname and do not specify a value for dbname, the setting applies to all databases in the specified application. If you do not specify an application, you cannot specify a database and the setting applies to all applications and databases on the Essbase Server.
dbname—Database name. Optional parameter for using the specified number of threads when loading the specified database within the specified application. If you do not specify a value for dbname, the setting applies to all databases within the specified application. If appname is not specified, you cannot specify dbname
n—The number of threads the data load process may use for writing data blocks to the disk. Specify an integer between 1 and 32. The default value is 1. If n > 32, or a negative number, the value is assumed to be 32.
This setting, and related settings DLTHREADSPREPARE and DLSINGLETHREADPERSTAGE, are related to parallel data load processing. The concept of a pipeline is relevant to Essbase data loads. A pipeline is a series of data processing elements in memory that may be executed serially or in parallel. An Essbase data load operation uses a pipeline consisting of 5 stages. By default, a single thread is used for each stage. Therefore, all data load operations need a minimum of 5 threads.
To improve data load performance by maximizing use of processor resource for your situation, you can use these settings to enable additional multiple-thread processing within the preparation and write stages of data load processing.
You can specify DLTHREADSWRITE for individual databases, all databases within an application, or for all applications and databases on the server.
In order for Essbase to use the value specified for DLTHREADSWRITE, the configuration setting DLSINGLETHREADPERSTAGE must be set to FALSE.
For more information about parallel thread processing in data loads, see Optimizing Data Loads.
You can use another configuration setting, DLTHREADSPREPARE, to specify the number of threads for the preparation stage of data load processing.
Many factors affect the possible optimal values for DLTHREADSWRITE including the number of processors on the machine and the number of other processes running on the machine. If you want to set this setting to a value higher than the default (1), check with your system administrator, as higher values can consume considerable system resources. As a rule of thumb, do not expect performance advantages if the number of threads for this setting is greater than the number of processors on the server machine.
Setting the value for DLTHREADSWRITE to be greater than 1 (one) may produce little if any benefit on a single-processor machine.
DLSINGLETHREADPERSTAGE Sample Basic FALSE DLTHREADSWRITE Sample Basic 3
Because DLSINGLETHREADPERSTAGE is set to FALSE for the Sample Basic application and database, Essbase uses 3 parallel threads during the write stage when loading data to Sample Basic.