Let me answer the 2nd question first. It is difficult to know how long it should take to update 1.6 million records without knowing the table schema, the update method, the load on the server, etc. However, 20 minutes seems like a long time to update 1.6 million records.
Processor usage can vary greatly, even while a single application is running. SQL will use both processors if you have configured it to do so. Load will be balanced between the processors. Usage spikes are to be expected. The more important measure is the average processor usage unless the spikes last a long time.
Other factors probably have more impact on performance than the processors. Speed, type and amount of disk space and the amount of RAM are key hardware factors in performance.
The most important aspect of performance tuning is making sure the applications are optimized. Applications are optimized by proper table design, creation of proper indexes on the tables and good query design.
Read the following topics in SQL Books Online.
Optimizing Database Performance Overview
Monitoring Server Performance and Activity
Check the following web links for more performance tips.
Terry
Please review faq183-874.
"The greatest obstacle to discovery is not ignorance -- it is the illusion of knowledge." - Daniel J Boorstin