解决方法
要移动tempdb文件,只需执行以下操作:
alter database tempdb modify file ( name = tempdev,filename = 'C:\YourNewTempdbDir\tempdb.mdf' ) go alter database tempdb modify file ( name = templog,filename = 'C:\YourNewTempdbDir\templog.ldf' ) go
如果要向tempdb添加新文件,只需执行以下操作(假设您要将其添加到PRIMARY文件组,或创建自己的文件组):
alter database tempdb add file ( name = tempdb2,filename = 'C:\YourNewTempdbDir\Tempdb2.ndf' ) go
要使这些更改生效,您需要重新启动sql Server服务.因此,就最大限度地减少停机时间而言,您将受限于服务重启所需的时间.您不必担心移动预先存在的tempdb数据库文件,因为sql Server总是重新创建文件,并且将在服务启动时创建新的位置/文件.
至于“每个核心1个tempdb数据文件”,这在很大程度上是一个神话.正确的方法是监视页面可用空间(PFS),全局分配映射(GAM)和共享全局分配映射(SGAM)页面的tempdb文件争用.请参阅通过sys.dm_os_waiting_tasks DMV查看的this article to get a query,以查看有多少tempdb文件争用.然后你需要离开这个,而不是仅仅使用与核心相同数量的文件覆盖tempdb.这是更明智的方法.