这是我在TempDB方面的经验。当TempDB文件大小相同时,该算法工作得更好。
我们在一个比其他文件更大的TempDB文件上看到了大量的TempDB争用。在运行查询的情况下,我们需要更大的文件(因为人们没有正确地注销他们的机器,而不是Server),这偶尔会导致TempDB填充。
我们在TempDB上切换到16个RamDisk文件(16个CPU),这些文件大小相同,没有自动增长。
一旦TempDB达到80%,我们就设置一个作业来使用最多的TempDB资源来关闭spid。
在使用微软时,他们的技术人员测试是否在一个TempDB文件上创建了一个TempDB文件--如果需要的话,它也会溢出到另一个TermpDB文件(我对此很担心)。
我们的Server是一个只读AlwaysOn,我们运行一些使用大量TempDB的相当大的报告。我们的新TempDB设计已经投入生产超过6个月,没有任何问题。偶尔,由于TempDB超过80%,我们取消了一个spid,但不经常。
奇怪的是,我是否可以使用一些SQL代码来快速确定文件是否跨越多个TempDB文件?我们在Server 2017 CU 12上。
发布于 2019-07-25 23:38:36
乔纳森的博客文章很好地描述了这些表是以文件组的形式跨数据文件并以一致的方式写入的。
如果文件大小相同,并且从空开始,则应该看到每个文件之间表的数据量相同。
您应该能够使用相同的xEvents脚本来查看您自己的系统。
https://dba.stackexchange.com/questions/243823
复制相似问题