Assuming you're using the pipelinewise target: I believe each destination table gets its own DB connection, and each DB connection gets its own copy of the DB schema. Plus the last batch of rows for each table is held in memory until the end of the process, when they're all flushed together, So if you have lots of tables that all adds up to lots (and lots) of memory.