小编wom*_*omp的帖子

SQL 文件组降低性能

在我们的开发设备上,我们的数据库完全位于 PRIMARY 文件组中,并且一切正常。

在我们最近从 2005 年升级到 2008 年的其中一台生产服务器上,我们注意到它的性能比预期的要慢。在这台机器上,有两个文件组 - PRIMARY 和 INDEXES。两个文件组每个逻辑卷包含 1 个文件,每个 CPU 包含一个逻辑卷。文件组共享逻辑卷(它们都分布在所有磁盘上)。

我们隔离了一些在开发机器上执行速度快而在生产机器上执行速度慢(最多慢 40 倍)的查询。原来这些查询使用的是驻留在 INDEXES 文件组中的非聚集索引。将某些查询调整为仅使用位于 PRIMARY 文件组中的聚集索引,从而使它们的时间恢复正常。

作为最后的确认,我们在同一台机器上重新部署了同一个数据库,让一切都在 PRIMARY 中,一切又恢复正常!

这是在相关机器上运行的其中一个查询的统计输出(表名已更改以保护无辜者):

快速(主文件组中的所有内容):

(3 row(s) affected)
Table '0'. Scan count 2, logical reads 14, ...
Table '1'. Scan count 0, logical reads 0, ...
Table '1'. Scan count 0, logical reads 0, ...
Table '2'. Scan count 2, logical reads 7, ...
Table '3'. Scan count 2, logical reads 1012, ...
Table '4'. Scan count …
Run Code Online (Sandbox Code Playgroud)

performance sql-server-2008 sql-server storage

6
推荐指数
1
解决办法
593
查看次数