In the view V_$TRANSACTION, there are two columns, which include the number of undo blocks used (USED_UBLK) and number of undo records used (USED_UREC) in the transaction.

Usually, the number of undo blocks used in the transaction defines the size of the transaction.

In 9i, there is a view called V_$UNDOSTAT, whose column UNDOBLCKS show the number of undo blocks consumed for all 10 minute intervals during the last 24 hours. There is a corresponding column called TXNTOTAL. If you want to know how big an avarage transaction is in blocks, you may use AVG(UNDOBLCKS)/AVG(TXNTOTAL). This will give you the "Average Transaction Size" during the last 24 hours. This is my formula. There is no 'real' algorithm you can use to determine your average transaction size.

Clear? :-)