Shut down all other apps. Reboot before starting Aperture. Never force-quit Aperture. In my experience, Aperture will either actually crash, or finish its tasks. Every force-quit I've done has seemed to make performance worse.
Put your Library on your fastest drive. Upgrade your internal drive as needed. Fastest: use an SSD. Leave c. 25% free space on all drives. (Search the forum for SSD -- you'll find some good buying advice.)
Periodically copy your Library to an external drive, delete the original, and copy it back. This forces a rewrite of all files (it's easily possible for a high-volume photographer to end up with more than a million files in the Aperture Library package), which in turn defragments all the files in the Aperture Library.
Periodically run "Repair Library". This is best done overnight.
Turn off Faces (as mentioned). Turn off "Share Previews w. iLife and iWork". Turning off Preview creation may speed things up initially, but I wouldn't recommend it for a wedding photographer. Set Previews to the size of your display. Depending on your GPU, you might consider not using a second monitor.
You don't need two workflows. IME, there is no performance gain from limiting Library size (as long as your have the drive space). Adjusting a hundred images will take the same amount of time whether they are in a Library of a thousand images or a Library of a quarter-million images.
SierraDragon's posts on performance are all worth reading. Here's one.
Aperture does a lot of processing. A lot of this is done in the background. The best thing you can do (besides give it more and better hardware) is to to give it time to completely process all imports. If your wedding is 3,000 12MB RAW exposures, it's going to take an hour or more to process (perhaps much more). If there is any way to include letting Aperture run while not using your computer, I'd put that into your workflow.
Prior to import, select the top-most item on the Library tab of the Inspector (this should be the name of your Library, and will blank the Viewer). Blanking the Viewer means Aperture doesn't have to update the display while importing.
There is no way I've found to know when Aperture is truly finished processing. (I monitor CPU, GPU, memory, and drive activity with iStat Monitor.) Launch Aperture's Activity Window prior to import, and don't use Aperture at all until every listed task is done.
Message was edited by: Kirby Krieger