SQL Server data files and RAID

Posted on

Question :

I have a server with a RAID1 volume (OS + apps) and a RAID10 volume (database).

The RAID10 volume has 6 physical disks. Should I split the SQL Server database into 6 datafiles (one for each physical disk) or leave it as one single .mdf file?

Edit: to clarify, I am not concerned with the theory of having single or multiple data files, I want to know if the fact that having 6 physical disks in the RAID means that I should have exactly 6 data files, or does the fact that they in an array make this irrelevant?


Answer :

If you have a single RAID10 volume then as far as SQL Server is concerned you have one volume and you can’t control how things are stored, splitting things into extra files unnecessarily will likely have detrimental effects as it would on a single disk.

If you wish to try gain performance benefits from segregating data between spindles then you need to split the drives into separate RAID arrays, perhaps four in R10 for data and two in R1 for logs, or three R1s for everything, data and logs spread over the three.

Unfortunately there is no fixed wisdom here, it will vary greatly depending on your application’s I/O loads. Splitting data and logs makes little difference for many load patterns (though can make a massive difference for certain write heavy loads) for instance. The only general advice that is applicable without a lot more detail about the application is “bung it all on that volume on one file/data and one/logs and trust the I/O scheduler to be fairly bright”.

Leave a Reply

Your email address will not be published. Required fields are marked *