Maybe sorta OT for this list, but:
- assuming the db is MySQL, I'd do a SHOW PROCESSLIST from a MySQL 
client (or use mytop) to see if the query is still running, if it's 
maybe blocked by something else, or what... 8 hours for 100K rows?  
Something's wrong...
- Since you're assigning the same value to all rows for this 
newly-created column, perhaps setting a default value for the column 
would be appropriate instead?  

    add_column :x_logs, :x_type, :string, :default => 'blah'


dwh


Nic Xie wrote:
> I have a migration including a update_all statement to a big
> table(having 100K+ rows).
>
> It gets too slow. It has been running for 8 hours and not done yet. I
> don't know if it is still running.
> ...