• In addition to being my company's DBA, I'm also a certified Compellent SAN administrator.

    If you want to achieve optimum performance on your database server(s), separate each of your database files (data, log, (and indexes if you have them in separate physical files)) onto a different LUN. This statement includes the TempDB.

    For TempDB, place all of your TempDB data files (one per CPU core) onto a single LUN. Place your single TempDB log file onto another LUN.

    The recommendations I'm giving you were worked out with the assistance of Compellent advanced tech support and myself, and has produced an outstanding high-performance environment for our database server.

    To give you an idea of the level of performance we've realized, we have our real-time data acquisition and query response environment mixed with our reporting environment. This is not a best practice but is a limitation imposed by our system design. We have 6 application databases (one almost a terabyte) with our server processing up to 1,000,000 online transactions per hour, plus whatever intermittent reporting requirements are placed on top of that.

    In this environment, I was able to execute the DBCC CHECKDB command against all of our databases. While it executed, the President of the company and I watched the Performance Monitor, Logical Disk:Average Disk Read Queue Length exceed a sustained rate of 62,000 read requests per second. The command executed for approximately 10 minutes before I stopped it. No one in our tech support group nor any of our clients noticed the slightest bit of degradation in system performance.

    LC