Hi, Bruno : first things first, let me try to clarify V$SESSION_LONGOPS' meaning.... See, to 'run' a given SQL, the RDBMS may need to execute many operations, such as read an index, create a hash table, create temporary data, read data blocks, sort data, etc, etc... V$SESSION_LONGOPS do NOT register the duration of the SQL, BUT the duration of any and all ** LONG Operations ** that a given SQL did - LONG here is a operation taking more than a few seconds.
The two possible missing points for V$SESSION_LONGOPS, thus, can be :
a. if a given SQL is taking a long time to execute due to a myriad of small operations (reading a ton of data blocks,say, but one block a time) this will NOT be registered in V$SESSION_LONGOPS, becuase each operation (each block read, in my example) takes only a fraction of a second
b. v$session_longops register ** Operations Being Done ** : if the session is doing nothing, ie, is WAITING for something (waiting for RDBMS inner works such as gererate, write/read logs and archive them, waiting for locks, waiting for other sessions reading/using the data blocks in question, etc) this will NOT BE REGISTERED inside V$SESSION_LONGOPS
Back to your case : if you are seeing nothing in V$SESSION_LONGOPS, much probably the session doing your 'ALTER TABLE DROP COLUMN' is WAITING for something OR doing an awful lot of small operations... To monitor and see what is occurring :
1. use a lock-waiting script : search in My Oracle Support/Metalink for 'lock script', you will find many good ones
2. query frequently the V$ that register the WAITs and ACTIONs of the session doing the DROP and the internal RDBMS activities : among others, see V$ACCESS, V$SESSION, V$SESSION_WAIT, V$SESSTAT, v$SYSSTAT ...
3. do a TRACE of the session doing the ALTER TABLE : with this, a trace file will be generated in the server, and this trace file will show to you what the session is doing, in details
Regards,
J. Laurindo Chiappa
P.S. :
see, drop columns IS a very COMPLEX operation : column names are referred in so many places inside the data dictionary, the column can be in use/referred by other objects... And in top of that, a LARGE portion of redo/undo can be generated... See
https://www.red-gate.com/simple-talk/sql/oracle/dropping-columns/ for an example...
So, if your table is large AND is being actively used, please do a favor to yourself and ADD SOME SPACE in this database, allowing you to use DBMS_REDEFINITION... You will not regret this decision...