驱动器configuration5个大型数据库

我有5个数据库,每个300GB,目前在由5个驱动器组成的RAID 5arrays上。 所有的数据库都被大量使用,同时,所以驱动速度是一个问题。

如果我摆脱了RAID 5configuration,并将每个数据库放在单独的驱动器上,我会看到更好的性能吗? 由于在别处进行镜像,RAID 5提供的冗余不是必需的。

服务器能够并行执行对不同数据库驱动器的读/写吗? 至less比在RAID里的时候还要多?

这全部在Windows 2003 / SQL 2008上。

如果同时使用不同主轴上的数据库,则最有可能执行得更快。 如果他们经历繁忙的时期彼此抵消,虽然单个RAIDarrays执行速度更快,因为单个数据库的读取将分布在多个驱动器上(当然,如果它位于单个驱动器上,则永远不会)。

由于其倾注写性能,RAID5通常是数据库性能的瓶颈。 如果你的arrays是一个直驱的5驱动arrays,那么写入磁盘的每个数据块都可能导致三次读取,然后是奇偶校验,然后是两次写入(更新的数据块和更新的奇偶校验数据块),以及每次更新数据库将导致至less两个块写入:一个到事务日志,一个到数据文件。 如果你正在运行4-drive-plus-hot-spare,事情会好一些,但是不会太多。 这就是为什么RAID1 + 0通常用于数据库工作(而不是RAID1E),而不是RAID5的原因(有些情况下,RAID1E或类似的,性能更好)。

所有事情都被写入事务日志以及数据文件的事实是一个重要的事实。 通过将日志文件和数据文件放在不同的驱动器(等等不同的磁头上),可以大大加快插入/更新操作的速度。 在五个驱动器周围安排数据库可能会更好,因此每个驱动器上都有其日志和数据。 如何安排这一点将取决于每个数据库的预期活动 – 如果可能的话,您希望避免两个同时处于繁忙状态的数据库在同一个驱动器上。

另一个select是有两个独立的RAID1arrays – 一个用于所有日志文件,一个用于数据文件。 我怀疑你会看到从每个数据库(包括数据+日志)在它自己的单个驱动器上的显着更好的性能。 或者如果你真的不在意冗余(例如,如果你的镜像是使用复制/集群configuration来维护的,这意味着如果主DB数据库死了,你将会失去很less的事务),你可以用一对RAID0来代替额外的速度。

如果三个驱动器的小钱不成问题,而且您的机器可以容纳更多的驱动器,则可以有一对RAID10arrays(一个用于数据,一个用于日志,总共有8个驱动器),那么您可以使用RAID5写性能问题,在独立驱动器上具有日志和数据的写入性能提升,以及RAID10(带有良好控制器的4个驱动器RAID10往往与2个驱动器RAID0类似)的潜在读取和写入提升, 。 我们的一些生产数据库正在进行这样的安排,我可以告诉你,与我testing过的其他安排相比, 如果你有一个支持RAID1E的硬件控制器(不幸的是它在不同的控制器上有不同的名字),那么你可以用两个3驱动器RAID1Earrays来做同样的事情,只需要6个驱动器。

RAID 5写入性能非常差。 对于大量使用的数据库,使用RAID 10可能会更好。