Would a sequence provide any performance gains over SELECT MAX(id)? I am working on re-factoring a database. There is a process that inserts a row in one of two tables, and the id needs to be unique across the two tables.

Currently the application layer iterates through a predetermined array of keys.

I am considering a Sequence to generate the next id, as apposed to a SELECT MAX(id) + 1.

Are there any performance gains to be realized from using a Sequence?
SELECT MAX(id)+1; is incorrect, will not work under even mild concurrency as multiple processes will find the same MAX and then attempt to insert the same next value.

A SEQUENCE is correct, so by definition better, but not necessarily the best. It should be used as a DEFAULT constraint on the column. 

By far simplest solution is to simply use an IDENTITY column.