From time to time certain settings need to be updated to improve Datical's deployment performance (see items 1 through 6 below).
You could increase the amount of RAM used by Datical (see item 7 below).
Upgrading to a newer version of Datical may also be helpful (see item 8 below).
These are settings that may improve deploy performance:
1. enableRowCount=”false” or "approximate" → Settings for Collecting Row Counts
- For Datical DB versions 5.6 or lower, set it to "false" to completely disable it
- For Datical DB versions 5.7 or higher, set it to the new "approximate" option
2. limitForecastProfiling=”true” → For more information on this topic: Limited Forecast
3. deployMode=”quick” → For more information on this topic: "Quick Deploy" Deployment Mode
4. storedLogicValidityCheck="limited" or "disabled" → Limited or Disabled will have better performance than Local or Global: Configuring Project Settings
5. forecastDML=false → Disabling Forecast DML can improve performance if you don't need to forecast DML: Configuring Project Settings
6. autoGenSQL=false → Disabling the Automatically Generate SQL setting can improve performance if you don't need it: Configuring Project Settings
These settings can up changed from Datical GUI, or by using hammer set commands in the CLI, or by using the optional project_creator script. Notice the attributes near the end of this excerpt from the datical.project file:
<dbproject:Project xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dbproject="http://datical.com/db/project/1.0" name="dpe-datical-paymentmanager" storedLogicExternal="true" deployThreshold="stopOnError" runtimeCredentials="true" multiSchema="true" dbSchemaDefinition="project" schemaSelectionStep="PAMAND5" trackingSchema="DATICAL" storedLogicValidityCheck="limited" enableRowCount="approximate" limitForecastProfiling="true" deployMode="quick">
In the Datical desktop client/Eclipse GUI, you would set the above mentioned settings Configuring Project Settings:
- enableRowCount="approximate" → Select approximate for the Deployment Setting > "Collect row counts for all tables during Forecast (if needed for rules)"
- limitForecastProfiling="true" → Check the Deployment Setting > "Limit Forecast Profiling"
- autoGenSQL=false → Uncheck the Deployment Setting > "Automatically generate SQL for Forecast, Deploy, and Rollback"
- deployMode="quick" → Check the Deployment Setting > "Full Deploy"
- forecastDML=false → Uncheck the Deployment Setting > "Forecast DAta Modification Changes (DML)"
- storedLogicValidityCheck="limited" → Select limited for the Deployment Setting > "Stored Logic Validity Check"
In the CLI, you can set those same items using "hammer set" commands for enableRowCount, limitForecastProfiling, deployMode, invalidsCheck, and autoGenSQL. Please see the set command details here: CLI Commands#set
If you use the optional project_creator script, you can set these settings when initially creating the project: Creating a Datical Project Using the Project Creation Script (project_creator.groovy)
7. Increase the amount of RAM used by Datical: Increase the amount of RAM used by Datical DB
8. Upgrade to a current version of Datical:
- There were performance improvements to forecast for those who run forecast/deploy on Windows clients or Windows agents in Datical DB version 6.8 (and higher).
- There were performance improvements for those who use the Stored Logic Validity Check project setting in Datical DB version 6.12 (and higher).
- There were performance improvements for several operations in Datical DB version 6.14 (and higher). Areas where you may notice performance improvements:
- Status/Pipeline Status operations in the Datical DB GUI
- 'status' & 'statusDetails' commands in the CLI
- Complex operations which run status implicitly (CLI & GUI) - All types of 'deploy' operations, All types of 'rollback' operations, Deploy Packager, Convert SQL, and Change Log Sync
There are other performance improvement suggestions on these pages:
Related articles