How can I perform SPARQL Updates without exceeding transactional log size?

SPARUL updates are generally not meant to be transactional. To prevent running out of rollback space, it is usually best to tell Virtuoso to commit each operation as it is done, with this SQL call:

SQL> log_enable (2);

Transaction logging can also be turned off for bulk updates. In such case, one should do a manual checkpoint after the bulk insert operation, to ensure persistence across server restart, since there will be no roll forward log.

If you're only occasionally exceeding the configured transactional log size, you may prefer to set the "TransactionAfterImageLimit?" parameter in the virtuoso.ini config file to a higher value than its 50MB default:

TransactionAfterImageLimit = 99999999   ; bytes default 50000000