This is not news, but it was a small slap to the medula in terms of remembering it.

The best practice for MOPS 2007 in terms of SQL is this: MOPS can share a SQL Server (or a cluster) with a lot of other applications. But, and this is important, you should put MOPS in it’s own SQL instance.

Why, you ask.

MOPS is churning through calculations all the time. The sever-side scheduling engine is calculating dates, durations, effort, etc every time a transaction hits. SQL uses a temp db to perform a lot of these calculations. Many applications do this same trick. So, if your MOPS databases are in the same instance with other applications, all of those applications, including MOPS, potentially use the same temp db to perform calculations. This can cause contention for the temp db, and can slow response, sometimes significantly.

A new instance of SQL gives you a new temp db, and, if MOPS is the only app using the SQL instance, you’ll get no contention.