Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

From time to time certain settings need to be updated to improve Datical's deployment performance. This is especially true when you upgrade from an older version of Datical to a newer version which takes advantage of enhancements introduced in the new release.

These are some settings that are known to improve performance. 

...


Table of Contents

Recommendations to improve Deploy performance

  • Optimize your Project Settings by disabling features you don't use or by narrowing the scope of the features you do use.
  • Increase the amount of RAM used by Datical.
  • Upgrade to a newer version of Liquibase Enterprise/Datical.

Project Settings that improve deploy performance

Check your values of these Project Settings

1.  enableRowCount=”disabled” or "approximate" → Settings for Collecting Row Counts

...

2.  limitForecastProfiling=”true” → For more information on this topic: 

...

Limited Forecast

3.  deployMode=”quick” → For more information on this topic

...

These settings can up changed from Datical GUI or directly injected into datical.project file (notice new attributes at the end):"Quick Deploy" Deployment Mode

4.  storedLogicValidityCheck="disabled" or "limited" or "local": → Limited or Disabled will have faster performance than Local or Global

  • Please see the notes in these pages:
  • Performance recommendations:
    • If you do not review or use the information in the Stored Logic Validity Check section of your deploy reports, then set storedLogicValidityCheck="disabled" to avoid possible performance slow down for a feature you aren't actively using.
    • If you review and use the Stored Logic Validity Check information in your deploy reports but you do not use the storedLogicValidityAction=FAIL option, then we recommend setting storedLogicValidityCheck="limited".
    • If you review and use the Stored Logic Validity Check information in your deploy reports and you also have enabled the storedLogicValidityAction=FAIL option, then we recommend setting storedLogicValidityCheck="local". (This is the default setting.)
    • Although storedLogicValidityCheck="global" is an available setting and is the most comprehensive, if performance timing is an important consideration then it may be better to use a smaller scope such as "local" or "limited".

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

How the values look in datical.project file

Code Block
languagexml
linenumberstrue
<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="falsetrue" multiSchema="true" dbSchemaDefinition="project" schemaSelectionStep="PAMAND5" trackingSchema="DATICAL" storedLogicValidityCheck="limited" enableRowCount="falsedisabled" limitForecastProfiling="true" deployMode="quick" autoGenSQL="false" forecastDML="false">

How to Change the Project Settings

There are more details about each setting option on the Configuring Project Settings page.   You can change them using the method you prefer:

In Datical GUI, you would manipulate the above mentioned settings as follows:

...

  • Image Removed

...

  • Image Removed

...

  • Image Removed

...

<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" storedLogicValidityCheck="limited" runtimeCredentials="false" multiSchema="true" dbSchemaDefinition="project" schemaSelectionStep="PAMAND5" trackingSchema="DATICAL" enableRowCount="false" limitForecastProfiling="true" deployMode="quick">

...

GUI

In the desktop client/Eclipse GUI, open your project, go to the Settings tab, and expand open the Deployment Settings section.  Here is an example of what the settings would look like in the GUI when optimizing for performance:

Image Added

Command Line

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

Project Creator

If you use the optional project_creator script, you can set these settings when initially creating the project.  Please see the instructions here: Creating a Datical Project Using the Project Creation Script (project_creator.groovy)

Increase the amount of RAM used by Datical

The default is -Xmx2048m.  You can increase it to -Xmx4096m or -Xmx8192m.

Please see the instructions on this page: Increase the amount of RAM used by Liquibase Enterprise

Upgrade to a newer version of Liquibase Enterprise/Datical DB

  • 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 Status, statusDetails, and Pipeline Status in Datical DB version 6.14 (and higher). This also improved operations which run status implicitly such as deploy, rollback, deployPackager, convert SQL and changeLogSync.  
  • There were improvements for memory utilization of SQL scripts that produce a high-volume output in 7.11 (and higher).
  • There were improvements for SQL Parser for Oracle in version 7.12 (and higher). 
  • There were improvements for Limited Forecast in version 7.13 (and higher):
    • Limited Forecast will only profile tables impacted by the changesets to be forecasted or deployed
    • Limited Forecast will only profile the schema impacted by the changesets to be forecasted or deployed in multi-schema projects
  • Significant performance improvements for Forecast profiling in version 7.14 (and higher):
    • Faster forecasting of Views and Materialized Views
    • Faster profiling for tables, columns, and views in multi-schema projects
    • Use multiple connections (maximum of 10 connections) to profile schemas simultaneously in Oracle multi-schema projects.  Note that with 7.14 (and higher) in Oracle projects with multiple schemas, you may notice higher CPU utilization due to multiple connections being used for Oracle forecast profiling.


There are other performance improvement suggestions on these pages:


Info

Filter by label (Content by label)
showLabelsfalse
max5
spacescom.atlassian.confluence.content.render.xhtml.model.resource.identifiers.SpaceResourceIdentifier@1ff1d7
showSpacefalse
sortmodified
reversetrue
typepage
cqllabel in ( "deploy" , "limitforecastprofiling" , "performance" , "deployment" , "deploymode" , "enablerowcount" ) and type = "page" and space = "DDKB"
labelsdeployment performance deploy enableRowCount limitForecastProfiling deployMode

...