From time to time certain settings need to be updated to improve Datical's deployment performance (see items 1 through 4). This is especially true when you upgrade from an older version of Datical to a newer version which takes advantage of enhancements introduced in recent releases.
Upgrading to a newer version of Datical may also be helpful (see item 5 below).
These are some settings that are known to 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. Stored Logic Validity Check="limited" → The "limited" option is only available in Datical DB 5.3 or higher: Configuring Project Settings
5. forecastDML=false → Disabling Forecast DML can improve performance if you don't need to forecast DML: 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="false" 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"
- deployMode="quick" → Check the Deployment Setting > "Full Deploy"
- In Datical GUI, make this change in Deployment Settings > Stored Logic Validity Check > select "Limited"
In the CLI, you can set those same items using "hammer set" commands for enableRowCount, limitForecastProfiling, deployMode, and invalidsCheck. 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)
6. 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