我们有tempdb在自己的驱动器arrays拆分成几个文件的性能。 我们在非数据驱动器上有DB日志文件。 我们质疑是否应该将tempDB日志文件放在所有数据库或其他地方的日志驱动器上,但是将其与temdb数据文件分开。
我从来不担心这件事。 看看MS的网站,它说,loggingtempdb是最小化。 这对你来说可能不是问题。 当然,过早优化并不是一个好主意,也就是在实际负载下testing当前环境之前。 对于所有情况下的SQLconfiguration没有单一的最佳做法。
我们是在谈论二进制事务日志还是纯粹的文本应用程序日志文件? 数据库工作负载的一般最佳实践是将您的事务日志保存在数据存储的不同物理磁盘上; 这将顺序写入事务日志中,并通过最小化cachingstream失来提高两个卷上的caching命中率。
传统观点认为,用户数据库的数据文件应该位于一个驱动器上,用户数据库的另一个驱动器上的日志文件(这是真正需要快速延迟的驱动器),TempDB位于另一个驱动器上。 除了隔离它们之外,日志和数据文件具有非常不同的IO特征。
事情随着SAN的出现而改变,因为SANpipe理员通常给DBA分配大量光盘的一部分 – 性能差异并不那么明显。
虚拟化已经改变了一些东西,因为DBA可能以为他把自己的数据文件从他的日志中从他的TempDB中分离出来,但是虚拟机pipe理员把所有这些不同的“驱动器”放在同一个物理驱动器上 – 在虚拟机领域,只是文件。
我的观点是,将数据文件,日志文件和TempDB文件分开保存是很好的 – 如果其中一个膨胀了,你希望得到更多的时间去修复它 – 而且不会把所有东西都取下来。
如果你能做到这一点,最好的做法是保持你的数据文件和日志文件分开 – 如果你能保持TempDB分离,那么很好。 一些应用程序(特别是使用读取提交的快照隔离)大量使用TempDB。
是的,您最好将TempDB日志和数据文件放在不同的驱动器中。 像往常一样,我们将所有数据库的数据文件和所有数据库的日志文件放在不同的驱动器中,因为事务在两个文件中同时写入数据。 所以相同的概念也适用于TempDB文件。