How do I reduce the logging of my procedure?
As you are completely dropping all the data and rebuilding it, if there is any overlap in the new data and old (especially if there is a lot of overlap - i.e. many of the rows in each table will be the same after the process has completed) then it would be far more efficient to only delete rows that are no longer needed, insert rows that are new to this revised snapshot, and update rows that already exist and need to change.

This could be a lot more code, but it will potentially be much more efficient.

To do this in a DB agnostic way you will need up to three statements to delete, insert and update, wrapped in a transaction to avoid partial results. In many cases updates aren't needed and you only need the delete and insert phases - you will know if this is the case as you know your data better than I.

If portability is not an issue then Oracle supports a MERGE statement that will likely be far more efficient still and result in smaller, easier to maintain, code. See http://docs.oracle.com/cd/B28359_01/server.111/b28286/statements_9016.htm for reference documentation, if that isn't clear you will likely find many examples/tutorials that flesh out the explanation further.