To eliminate overhead memory usage a garbage collection can explicitly be configured to be run after this amount of rows. This is only necessary in case of limited amount of memory on the server.
Syntax:
FORCEGC count_of_rows
Example:
/* In this example we are using the Oracle Managed Data provider and retrieving data from an Oracle database /LOAD ASSEMBLY 'Oracle.ManagedDataAccess.dll'DATASOURCE oracledb=DOTNET CONNECTION 'Oracle.ManagedDataAccess.Client.OracleConnection' 'data source=(DESCRIPTION =(ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST =myOracleServer)(PORT = 1521)))(CONNECT_DATA = (SERVER = DEDICATED)(SERVICE_NAME = )));User Id = oracleLogin; Password = readOraclePassword' / Force garbage collection to run every 10 million rows in this script – thereby freeing up memory during the import process*/FORCEGC 10000000/* Read the SalesInvoiceLines table with 400 mill rows /IMPORT SalesInvoiceLines=oracledb.{SELECT * FROM SALESINVOICELINES}/ Write the table to disk and release memory /FLUSH/ Import other tables where we don't need to worry about memory /DO PARALLEL IMPORT LOCATIONS=oracledb.{SELECT * FROM LOCATIONS} IMPORT DEPARTMENTS=oracledb.{SELECT * FROM DEPARTMENTS} IMPORT PRODUCTS=oracledb.{SELECT * FROM PRODUCTS} IMPORT EMPLOYEES=oracledb.{SELECT * FROM EMPLOYEES}END PARALLEL/ Commit data to disk */SAVE

  • No labels