1. Don't have too many views. Each time you change/add a document, Notes has to update every appropriate view.
2. Keep views simple. More columns mean more calculation. It gets worse if the columns are sorted, and worse still if the columns are categorized.
3. Don't use @Today or @Now in selection formulas. The views will never be up to date, and the server will be forever recalculating them. If you have to use today's date in a selection formula, then have a background macro running each day to set an environmental variable in the server's notes.ini and reference this.
4. If you want to display compound information in a view column from multiple fields, calculate it in a hidden document field. The column should then reference this single field rather than carrying out the calculation.
5. To avoid generating @DBColumns/@DBLookups (used to generate keyword lists, etc.) at read time, use something like this for the formula:
@If(@IsDocBeingLoaded & !@IsNewDoc; @Unavailable; @DbColumn(""; ""; "By _Category (Main View)"))
Editing documents will take just as long, but document readers will notice a big improvement. This example is from a keyword format formula.
6. Use column numbers, not field names, for lookups.
7. If you're doing lots of lookups to multiple columns in a single view, then append all the data in a single column with a unique delimiter string and do a single lookup. You can then parse the value returned with @Left/@Right/@Mid or @Explode to get the separate field values.
8. Put 64MB of RAM on the server and push the buffer pool sizes to their limits. This is documented in the IBM Lotus Knowledge Base.