An operation like alter table drop column cannot be completed until Oracle acquires an exclusive table level lock meaning nobody else would be able to touch the table while the operation is in progress.
Oracle wouldn't be able to initiate the operation until acquiring such a lock.
The operation itself is very time consuming so for a large table you can expect a large timeframe.
You may want to schedule these kind of operations during scheduled maintenance window.
By the way, alter table drop column is not a "simple operation" -take a look at Oracle documentation and find out all the work Oracle has to perform on the background to complete your command.
Disclaimer: Advice is provided to the best of my knowledge but no implicit or explicit warranties are provided. Since the advisor explicitly encourages testing any and all suggestions on a test non-production environment advisor should not held liable or responsible for any actions taken based on the given advice.
Dropping column is time consuming depending upon the table size but other two should finish fast and you might want to look what session is waiting on(event column in v$session) and also try tracing.
Disclaimer: Advice is provided to the best of my knowledge but no implicit or explicit warranties are provided. Since the advisor explicitly encourages testing any and all suggestions on a test non-production environment advisor should not held liable or responsible for any actions taken based on the given advice.
... providing Oracle can get an exclusive lock on the affected table, isn't it?
Oracle will error out immediately(ORA-00054: resource busy and acquire with NOWAIT specified) if it could nt get exclusive lock while adding/logically dropping column using set unused so if the operation is taking time then it is nothing to do with locks.
Bookmarks