我们告诉客户端将SQL Server数据库文件(mdf)放在与事务日志文件(ldf)不同的物理驱动器上。该技术公司(由我们的客户雇用)希望将事务日志放在比数据库驱动器更慢(例如更便宜)的驱动器上,因为使用事务日志,您只需按顺序写入日志文件。
我告诉他们我认为驱动器(实际上是RAID配置)也需要在快速驱动器上,因为每个数据更改调用数据库需要保存在那里,以及数据库本身。
在说完之后,我意识到我并不完全确定。事务日志驱动器的速度是否会在性能上产生显着差异...如果带有数据库的驱动器速度很快?
答案 0 :(得分:5)
日志驱动器的速度是写密集型数据库的最关键因素。没有比可以写入日志更快的更新,因此您的驱动器必须支持在峰值时遇到的最大更新速率。所有更新都会生成日志。由于两个因素,数据库文件(MDF / NDF)更新可以提供较慢的写入速率
因此,您认为日志吞吐量至关重要。
但与此同时,日志写入具有特定的顺序写入模式:始终在末尾附加日志。对于顺序操作,所有机械驱动器具有更高的读取和写入吞吐量,因为它们涉及磁盘头的物理移动较少。所以你的操作人员说慢速驱动器实际上可以提供足够的吞吐量也是如此。
但所有这些都伴随着一些重大警告:
答案 1 :(得分:2)
简单来说,如果您谈论的是OLTP数据库,那么您的吞吐量取决于您对事务日志的写入速度。一旦达到此性能上限,所有其他相关操作必须等待提交才能完成记录。
这是对交易日志内部的一种非常简单的看法,整本书都是专用的,但基本要点仍然存在。
现在,如果您正在使用的存储系统可以提供同时支持事务日志和数据库数据文件所需的IOPS,那么共享驱动器/ LUN将足以满足您的需求。
为了向您提供特定的推荐操作,我需要了解有关数据库工作负载以及数据库服务器要求的性能的更多信息。
获取标题SQL Server 2008 Internals以全面了解SQL Server事务日志的内部,它是最好的SQL Server标题之一,它将在几分钟内从价值中收回成本你从阅读中获益。
答案 2 :(得分:0)
嗯,事务日志是提供ACID的主要结构,可能是性能的一大瓶颈,如果你经常备份它所需的空间有一个上限,所以我会把它安装在一个安全,快速的驱动器中只是足够的空间+一点保证金。
答案 3 :(得分:0)
事务日志应该在最快的驱动器上,如果它只是可以完成对日志的写入,它可以在内存中执行剩余的事务并让它稍后命中磁盘。