Oracle Single table with json vs set of tables using joins
Part of that depends on whether or not you need to ever parse that JSON, say in a WHERE clause, or GROUP BY, etc...
If it stays a faceless blob, it's probably faster to leave it as option #1; but keep in mind this is rarely the case - you're likely to unexpectedly be asked to report/query on the JSON at some point!!!
I don't know about Oracle, but in Microsoft SQL Server, UNIONs tend to perform poorly when ALSO joining; they seem fine as a standalone query but once it becomes a subquery things seem to slow down, unless you do something like a materialized view.
So while I personally prefer option 2, the performance may bog down with a large data set that is over 1 million rows. Can you refrain from using a UNION, and instead place the records in the same table but distinguish them with a type column?

How many rows (and how wide is a single row) of your &quot;large data set&quot;?
Can you temporarily obtain a test environment and try both options under a load test?