In simple mode/truncate on check point what happens is SQL writes the action to the log, then applies the change to the db, then removes the action from the log. This keeps the log size small, but you dont have the ability to do log backups and their associated point in time recovery.
When I say transaction I mean SQL transaction, like this:
insert 5million rows here
Instead, either use no SQL transaction or keep it small, maybe 1000 rows.
Steve is right, bypassing logging is NOT something you would want to do. With logging you can walk over to the server while those 5 millions rows are loading and physically pull the server plug - when you restart and recovery is complete you'll have either your original db or the original db plus 5 million rows (depending on exactly what was occurring when the power went off), but nothing in between.