Some days ago, a customer encountered an application hang in its production database.
A little version upgrade was in progress. The upgrade was done online during the day because of the small ddl changes.
There were 4 ddls to execute. The first 3 were ok but the problem occurred when the last one started.
It’s just a column update to allow null values.
Normally, the sql runs in a few milliseconds as it modifies only the dictionary.
alter table TABLE_NAME modify COLUMN null;
But this time, the sql took nearly 25 minutes to run with a lock in the library cache, preventing access to the table and causing the application hang.
The entire table was read and all blocks have been modified. The table contains more than 100 million rows.