There are all kinds of reasons associated with machine tuning and database design etc. The best place to start would be to run performance monitor on the job and collect the stats to see what area is causing the CPU useage, then investigate according to what it’s telling you.
My general view starts with ‘well, the machine wouldn’t allocate that much CPU if it had other things to do or thought it didn’t need to’
– Did it impact on other stuff? was other work slowed down?
Can you make the machine busy with CPU activity ( calculate PI to 10 million places or until 30 minutes have elapsed)
Make it busy with Disk I/o ( write 1000000 records read 1000000 records, dlete 10000000records)
and run the job concurrently to see what happens?
It isn’t a PC – it usually knows what its doing.