I'd like to add another performance advice:
Split your scene into layers, like "building", "flowers", etc. Then, download "CV Layer Comps" from Cineversity. It allows to mute and unmute layers with a single click.
Now, when animating, mute every layer you don't need. This should help performance massively.
Before rendering, unmute all layers. You can even store the parametric or unoptimized versions of objects in muted layers without performance penalty. Everything tidy in one scene file 🙂
CV layer comps lets you also define presets of muted/unmuted layers, so you can change between "animation state" and "render state" with a single click.
I fought with heavy scenes on a regular basis, and this technique with layers made them really managable.
You can of course combine this with all the other hints mentioned so far, it's all good advice!