我正在为Microsoft SQL Server环境指定一个新的数据库服务器。 过去,我会为操作系统,数据,事务日志和tempdb创build四个独立的RAIDarrays。 现在,我正在考虑添加一些SSD来提升性能的可能性。 我只有两个固态硬盘的预算,我想镜像他们的情况下,一个失败。 所以,我只能用SSD来replace我的四个标准arrays中的一个。
哪个选项可以提供最大的性能提升?
如果你有一个数据/日志/临时数据库已经分区的当前系统,我会查看你的每个分区的统计数据,并根据这个决定。
我主要看到人们使用固态硬盘为他们的TEMPDBs。 2005年,并放在更多的依赖TEMPDB然后过去的版本。 取决于你在SQL Server上运行的是什么,它可能是利用率最高的数据库(看着你的SharePoint)。
但是我首先要看看你的环境,看看那里发生了什么。
HTH,丹
Paul Randal拥有一系列SSD基准testing:
从他的结论来看,SSD的甜蜜点是强烈的随机IO负载,这将使他们成为Data或Tempdb的候选人。 哪一个最好,取决于你的预期负载细节。 我将查看处理相同负载(或相同types的负载)的现有服务器上的sys.dm_io_virtual_file_stats和sys.dm_db_index_usage_stats ,并查看MDF / NDF的IO压力积累的位置,然后将这些文件放置在SSD上。
日志在SSD上没有多less意义,典型的SCSIarrays在连续写入时会优于它们。 操作系统,SQL Server主机也不应该触摸操作系统文件和分页文件。
随机读取和写入访问将被执行,通常在数据分区(和tempdb数据)的数据库主机上。 日志分区依次通常只能按顺序访问,因为大多数日志都是循环缓冲区。
如果您计划经常重新启动服务器,则由SSD支持的操作系统分区将带来最大收益。
复杂 – 取决于做什么。
任何一边或两边都不是极端 – SSD可能浪费金钱。
这也取决于SSD驱动器上设置的RAIDtypes。 如果是RAID 10而不是日志文件,并且tempdb数据库将更好地存储在SSD上,因为日志和tempdb主要用于写入操作,而RAID 10则提供最佳的写入性能。 有时在检查点之后,您将在日志文件中看到读取活动。 如果相反,RAID5比RAID5更好地存储在SSD上,因为RAID5对读取活动的优化更多。 如果SSD上有足够的存储空间,也可以在SSD上安装操作系统。 但是真正重要的是将数据从日志文件中隔离出来,如果可能的话从Tempdb中分离出来。
此外,保罗·兰德尔(Paul Randal)在这篇博客中做了一个很好的分析。 提出了很多可能的案例,我对他如何详细分析他的分析印象非常深刻。
你可以争辩说,在单独的SSD镜像上使用Windows页面文件会有所帮助。 话虽如此,改善分页性能的最佳方式是不分页。 除此之外,引导/系统卷的随机IO并不是很多。