将事务日志文件放在单独的驱动器上是否会对性能产生好处?


9

有许多博客文章和最佳实践文章赞扬将SQL Server数据文件放在一个硬盘驱动器上并将事务日志放在另一个硬盘驱动器上的优点。给出的原因是,数据库文件将经历随机读写,而事务日志将仅具有顺序写。

但是,如果您有数百个数据库怎么办?将数百个事务日志文件放在单独的磁盘上,是否会对性能产生真正的好处?如果要写入多个事务日志,那么我认为事务日志的写入将与数据库写入的一样随机。

Answers:


7

正确。从理论上讲,如果您有100个DB,则需要100个驱动器,每个日志一个。实际上,尽管这种情况并不重要,但是当您有100个DB时,您显然不希望每个 DB都具有一流的TPC性能。您可能会拥有一些具有高吞吐量和严格SLA的DB,并且可以将它们分别放在单独的主轴上,而许多较低级别的SLA则在一些共享磁盘上进行装载。


2

事务日志正是...所有事务的运行日志。这样,它会在一个方向上连续填充,直到被检查点覆盖并被覆盖或被截断并覆盖为止。覆盖是顺序的。

考虑您的数据文件。客户记录可能包含5年前的订单和10年前的订单。如果删除这些订单(例如,您正在将数据归档到其他位置),则在当前日志中,您将依次删除1和2。但是,在您的数据文件中,您触及了5年前和10年前编写的块。

所以它确实很重要:)


2

与将事务日志与其他数据/日志文件放置在一起相比,将事务日志本身单独放置在单独的磁盘上将提供更好的性能。如果将所有日志放在同一磁盘上,则实际上不是在执行顺序IO,而是在这些日志文件之间进行随机IO。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.