That is a general issue with with SQL developer. For every database request (Checking database catalogs, compile code, modifying tables, connection startup...) the UI just hangs for seconds or miliseconds until it receives a response from the database. It is more noticieable as farther you are from the database. I understand that in some environments DBA's get mad if you open multiple sessions, but there are ways to solve this. The developer user experience could be improved a lot.
1 - Not executing any network related transaction on the UI thread, and making them in background, and when receiving the response just updating the UI. This way the UI would remain completely responsive all times while navigating, writing etc and with just one DB session. If multiple requests are made, they would be queued for the same session in background. This is just the current behaviour of any app today, the UI must never be blocked.
2 - Like open unshared worksheets in background, it could open a new background session for every db transaction, this way every transaction would open a new session, execute, and when it finishes closing the connection.
Is very annoying to compile a package when you have pending transactions on it, like a scheduler job or whatever and your UI just gets blocked until the object gets released and the DB responds as it could take minutes. You end up opening multiple sql developer instances because all UI just hangs and you can't perform any action. Or even losing your progress as you cannot wait until it ends and you have to force-terminate sqldeveloper. What do you think? Could this be addressed some way? Thanks.