For persistent databases, it can be a significant optimization in some cases to preload C++ User Defined Functions into memory from external dynamic load libraries. Specifically, the performance gain can be achieved when there are not too many UDF's in the database (all of which are used) and it is critical to not incur a timeout when the UDF is being used for the first time.
Note that this feature is included specifically for applications that demand optimal performance like the Securities Technology Analysis Center (STAC) benchmark; and it is intended for use on Unix-Linux systems.
C++ Applications
In C++ applications the SqlOptimizerParamter class parameter
preloadUDF
can be set to true to enable the preload feature; then the optimizer parameters are added to the McoSqlOpenParameters passed the McoSqlEngine methodopen()
. For example:McoSqlEngine engine; McoSqlOpenParameters params; SqlOptimizerParameters oParams; oParams.preloadUDF = true; ... params.optimizerParams = oParams; engine.open(params); ...xSQL Configuration Parameter
When using xSQL as the SQL server application, the preload feature can be set as xSQL parameter in
sql_optimizer_params
section. When enabled, xSQL will load all UDFs on startup:
sql_optimizer_params : { preload_udf : true }