Versions Compared

Key

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

...

Running out of available memory is the most common issue caused by large DML scripts in Datical for any supported database platform. Therefor Therefore it is recommended that you allocate at least 8 GB (8192 MB) of memory to the Datical run time environment. See Increase the amount of RAM used by Datical DB for more details on managing available memory settings.

...

To preserve the order of execution for the statements in the original file, add a numeric indicator to each filename. For example, a large file named myLargeDMLFile.sql would become myLargeDMLFile_1.sql, myLargeDMLFile_2.sql, myLargeDMLFile_3.sql, myLargeDMLFile_4.sql To ensure that the file set is appropriately ordered in the resulting change log:

...

SQL Parser forecasting (Oracle only)

SQL Parser for Oracle is not intended to be applied to large DML scripts because parsing each DML statement can cause performance slowdown.

...

If you are using SQL Parser for Oracle in your project, do not put large DML scripts in folders that will use the parser, such as:

  • the folder folders called “ddl_direct”, “sql_direct”, or “sql” in fixed folder name configurations

  • or folders with other flexible folder names that have packageMethod=”ddl_direct”, packageMethod=”direct”, or packageMethod=”sqlfile” set in the metadata.properties

  • or in folders that have enableSqlParserdisableSqlParser=”false” set in the metadata.properties.

...

If you are using SQL Parser for Oracle in your project, it is good to put DML statements in their own script in a DML folder (without parser) and put other types of statements (such as ddl) in a separate script in other appropriate folders that might use parser. Using separate scripts for DML change sets is better than using one large script that combines both DML and other change types (such as DDL).

Disabling SQL Parser at the Folder level

...

Set disableSqlParser=true in the metadata.properties file for any folders that you do not want SQL Parser to process. 

Code Block
disableSqlParser=[true | false]

Disabling SQL Parser at the Change Set level

...

Add disableSqlParser=true in the appdba:sqlplus section of the change set for a specific change set you do not want SQL Parser to process.

Code Block
<changeSet appdba:scriptChecksum="9f8a11051d1478faf2752baacb76cf0e" author="J Doe" created="2020-08-10 18:37+0000" datical:origFileName="adding_test_new_001.sql" datical:origFilePath="scripts/sql_direct" datical:version="1" datical:versionStrategy="DEPLOY_ALL" id="20200810183704986_adding_test_new_001" labels="509,deploy-test1,deploy-test1,adding_test_new_001.sql">
    <appdba:sqlplus disableSqlParser="true" enableRollbackOnError="true" path="sql/20200810183704986_adding_test_new_001.sql" removeSpools="First" schemaName="SCHEMA1"/>
    <comment>Test script</comment>