mssql sqlserver tempdb优化误区


摘要:
下文讲述tempdb创建文件个数的建议。



需要创建多个数据文件的检测方法

当tempdb出现大量的分配页竞争时,此时我们需创建多个数据文件,
如果我们使用系统视图 sys.dm_os_wait_stats ,查看系统等待类型,出现大量的PAGELATCH时,代表出现分配页竞争,此时我们需关注tempdb数据库的各项性能

tempdb数据文件增加个数

在sqlserver 2000中,我们可以调整tempdb数据文件的个数同CPU内核数的个数一致,来达到最优的IO效果
在sqlserver 2005及以后的版本中,sql引擎进行了相关优化,此时数据文件和CPU内核数为1:4 或 1:2

tempdb数据文件一定可以解决pageLAtch等待吗?

由于增加的数据文件都存放在磁盘上,所以我们每次临时对象的申请操作,都会涉及磁盘操作,当我们创建一个超大对象时,此时并不能通过数据文件的个数来解决此竞争,
我们还需加大sql引擎的内存,使大量的临时对象操作基于内存上,可一定程度上减少pageLATCH的等待时间