I'm used to working with SQL Server databases that are somewhat small (10 GB or less, usually a lot less), so I'm curious how people deal with huge databases, like those that hold Amazon's transactions or whatever. Do you have to have the latest and greatest hardware running with clustered servers? Do you have to do a lot of database partitioning? How do you handle upgrades? Do you do then in the middle of the night so that you can take the db down briefly?