as you are using 10g, and if you feel that you have a old stats, please use the nice dbms_stats package to gather stats.

"analyze" in 10g is for backword compatibility and it needs lock on the object. In your case probably it is waiting to acquire the lock. Trace the session and see what actually it is doing.

Thanks,