SQL Server 2012 本地 SSD TempDB 慢

Jam*_*son 5 performance sql-server-2012 tempdb ssd

我有一个将本地 SSD 用于 tempDB 的生产部署。我在 RAID1 配置中有 2 个 SSD。我看到平均读取时间为 1-2 毫秒,但所有四个 tempdb 数据文件的平均写入时间都显示为 1377 毫秒。

每个 tempdb 数据文件为 2GB,具有 1GB 的增长设置(自 5 个月前部署以来没有增长)

tempdb 日志显示平均读取时间为 67 毫秒,平均写入时间为 215 毫秒。

SSD 是三星 840 专业版。

以下代码是我用来获取统计信息的代码

SELECT a.database_Id, 
a.file_id, 
db_name(a.database_id) AS dbname, 
b.name, 
db_file_type =  CASE 
                WHEN a.file_id = 2 THEN 'Log' 
                ELSE 'Data' 
                END, 
UPPER(SUBSTRING(b.physical_name, 1, 2)) AS disk_location, 
a.io_stall, 
a.io_stall_read_ms / Case When a.num_of_reads = 0 Then 1 Else a.num_of_reads end AvgRead,  
a.io_stall_write_ms / Case When a.num_of_writes = 0 Then 1 Else a.num_of_writes end AvgWrite,  
Cast(Round(((( a.size_on_disk_bytes / 1024 ) / 1024.0 ) / 1024), 2) as float) AS size_on_disk_gb                    

FROM sys.dm_io_virtual_file_stats (NULL, NULL) a 
JOIN sys.master_files b ON a.file_id = b.file_id AND a.database_id = b.database_id 

ORDER BY a.io_stall DESC
Run Code Online (Sandbox Code Playgroud)

以下是返回的前 5 行

database_Id file_id dbname  name    db_file_type    disk_location   io_stall    AvgRead AvgWrite    size_on_disk_gb
2   1   tempdb  tempdev Data    F:  19782846713 2   1377    2
2   3   tempdb  tempdev2    Data    F:  19782655021 2   1377    2
2   5   tempdb  tempdev4    Data    F:  19782364070 2   1377    2
2   4   tempdb  tempdev3    Data    F:  19782151571 2   1377    2
2   2   tempdb  templog Log F:  378829065   67  215 1
Run Code Online (Sandbox Code Playgroud)

所以我在 SSD 上的 tmepdb 文件是我拥有的最慢的驱动器。我应该从配置/基础设施的角度看什么?我目前正在研究 tempdb 的应用程序使用情况和任何内存溢出,但我没有看到任何可怕的事情。

Jam*_*son 4

不久前我们通过更换服务器上的 RAID 控制器解决了这个问题。磁盘和服务器配置都很好,但 RAID 控制器似乎无法处理 IO。

我们现在的读取时间约为 2 毫秒,写入时间 <= 5 毫秒