扩展高事务性的 SQL 服务器

扩展高事务性的 SQL 服务器

我正在考虑升级我的一个网站服务器。该网站目前每天执行大约 2000 万个 SQL 查询,而且增长速度相当快。现在IO 吞吐量是一个真正的问题所以我的想法是将各种数据库移动到它们自己的磁盘对上。我的想法是这样做:

配置

磁盘 1 和磁盘 2 / Raid 5、6 或 10 (SAS 或 SSD) -数据库 1

磁盘 3 和磁盘 4 / Raid 5、6 或 10 (SAS 或 SSD) -数据库 2

磁盘 5 和磁盘 6 / Raid 5、6 或 10 (SAS 或 SSD) -数据库 3

磁盘 7 (SSD) -交易日志

磁盘 8 (SSD) -交易日志

我在这方面缺乏经验,因此有几个问题:

1)首先,上面的内容看起来很愚蠢吗?

2) 我应该注意 RAID 控制器中的哪些方面?例如,使用 SSD 时的带宽吞吐量?

3) 所有 SSD 磁盘都一样吗?我听到有人说某些类型的磁盘质量不达标?

4) 我假设对于简单的两个磁盘镜像,任何 RAID 级别都可以吗?错误的假设?

5) 还有其他调整可以使此配置变得更好吗?

我的网站事务性很强,但数据库不是很大,目前只有几 GB。所以我的主要扩展要求是 IO,而不是大小。我还会在机器上投入大量 RAM,以便在内存中放入更多索引等。

谢谢戴夫

答案1

不是所有的 SSD 都一样。Intel G2 相当不错,Crucial RealSSD 也不错。但是,性能最好的是插入 PCI Express 插槽的 SSD 卡。目前,其中性能最好的 SSD 的吞吐量为 1.4 TB/秒(连续)。

共同点是随机写入吞吐量。最好的测量方法是运行 Microsoft SQLIO 实用程序。

您可能希望更进一步,将(一些)索引放在 SSD 上的单独文件组上。这可能不一定有助于提高更新性能,但有助于提高查询性能。有些查询可能永远不会到达数据库,而只会到达索引。

如果您有使用 TempDB 的过程或查询,请不要忘记 TempDB。

相关内容