固态硬盘和机械硬盘的比较和SQLSERVER在两种硬盘上的性能差异

在看这篇文章之前可以先看一下下面的文章:

SSD小白用户收货!SSD的误区如何解决

这样配会损失性能?实测6种特殊装机方式

听说固态硬盘是高富帅的必备神器,本人为了提升工作效率和提高工作速度

这个月节衣缩食,终于也决定买了一块三星固态硬盘120G容量

这个固态硬盘拿在手里轻飘飘的, 好像里面什么东西都没有似的

废话少说,先上图

开机速度20秒左右

测试环境:Windows7,SQLSERVER2005个人开发者版 SP4

我这里用旧的硬盘希捷硬盘和新买的固态硬盘三星硬盘来比较

这次测试用到的测试软件:

ASSSDBenchmark_1.7_XiaZaiBa

http://files.cnblogs.com/lyhabc/ASSSDBenchmark_1.7_XiaZaiBa.zip

HDTune 5.0

http://files.cnblogs.com/lyhabc/HDTune5.0.rar

ATTO DiskBenchmark:

http://files.cnblogs.com/lyhabc/ATTODiskBenchmark%E6%B5%8B%E8%AF%95%E7%A1%AC%E7%9B%98%E8%AF%BB%E5%86%99.rar

由于这篇文章SSD固态硬盘详解说首次安装不能用GHOST版Windows7来安装

那我只能上网下载装机版镜像,并刻录成光碟,经过一番折腾终于安装好操作系统和SQLSERVER了

网上有很多4KB对齐的文章,例如下面所说:

GHOST11.5版本之前的 Ghost 装 Win7 会导致已有对齐的分区不对齐

Ghost 能用吗?

能用,只是 Ghost 11.5 之前的版本会导致即使原有分区是对齐的,Ghost 后不对齐

11.5 及之后版本 只要镜像创建于对齐的分区,恢复后也是对齐的。如果你不清楚你所使用 Ghost 的版本请最好不要使用。

-------------------------------------------------------------------------------------------------

用鲁大师显示一下硬盘信息

希捷硬盘

三星硬盘

 

关于性能问题:

由于是Windows7的系统,那么我的笔记本电脑瓶颈就在SATA2.0接口上

AHCI模式、TRIM指令、4KB对齐这些条件都没有问题

至于4KB这个对齐参数是不是可以达到性能最佳这个要看您的固态硬盘的闪存颗粒用的是哪一种

最好咨询一下卖家或者硬盘厂商,由于本人是固态硬盘的小白,为了装好系统尽快上班工作就不研究

这个参数了,直接设置为4KB

说明一下:这篇文章的测试结果仅供参考!!

IOPS

IOPS (Input/Output Operations Per Second),即每秒进行读写(I/O)操作的次数,多用于数据库等场合,衡量随机访问的性能。

存储端(例如硬盘,磁盘阵列)的IOPS性能和主机端的IO是不同的,IOPS是指存储每秒可接受多少次主机发出的访问,

主机的一次IO需要多次访问存储才可以完成。

例如,主机写入一个最小的数据块,也要经过“发送写入请求、写入数据、收到写入确认”等三个步骤,也就是3个存储端访问。

百度百科:http://baike.baidu.com/link?url=ynaU0M9SQPMWLjudQnyK5WqNJvPuFR1RjKCgx0FiA7REqY9A7AR7IAkNaWeA5nhAruLTPS_OtM2qscG3zkZ_mq

4KB对齐是什么?

大家知道Windows是以扇区为读写单位的,一个扇区默认就是4096BYTE(4KB),8个512字节

您们可以看到下面的测试软件,多数以4KB为单位

而固态硬盘是以页为读写单位的,为了兼容机械硬盘,硬盘厂商做了一些设置使兼容机械硬盘,而这个设置就是4KB对齐

但是不同的固态硬盘内存颗粒,不一定就是4KB大小就可以对齐的

因为本人对固态硬盘还是小白,不过原理应该就是这个o(∩_∩)o


HDTune 5.0

HDTUNE只测试了读取忘记了测试写入,不好意思啊各位!

希捷硬盘

三星硬盘


ATTO Disk Benchmark

希捷硬盘

三星硬盘


AS SSD Benchmark

希捷硬盘

由于希捷硬盘测试到中途突然停止了,没有办法继续测试,AS SSD Benchmark这部分我们只测试三星硬盘

而且在下面文章中也提到:机械硬盘在AS SSD和CDM软件下测试意义不大。

参考文章:别低估成绩 和你解读8款硬盘检测软件

Seq:持续测试,AS SSD会先以16MB的尺寸为单位,持续向受测分区写入生成1个达到1GB大小的文件,

然后再以同样的单位尺寸读取这个,最后计算平均成绩而给出结果。测试一完毕,测试文件会立刻删除。

4K:随机单队列深度测试,测试软件会以512KB的单位尺寸生成1GB大小的测试文件,

然后在其地址范围(LBA)内进行随机4KB单位尺寸进行写入及读取测试,直到跑遍这个范围为止,最后同样计算平均成绩给出结果。

由于有生成步骤,本测试对硬盘会产生一共2GB的数据写入量。本测试完毕后,测试文件会暂时保留。

4K-64Thrd(64Thrd 64线程):随机64队列深度测试,软件则会生成64个16MB大小的测试文件(共计1GB),

然后同时以4KB的单位尺寸,同时在这64个文件中进行写入和读取测试,最后依然以平均成绩为结果。

本步骤也同样产生2GB的数据写入量。本测试一完毕,测试文件会立刻删除。

Acc.time(accurate精确的):数据存取时间测试,软件会以4KB为单位尺寸,随机读取全盘地址范围(LBA),

写入则以512B为单位尺寸,随机写入保留的1GB地址范围内,最后以平均成绩给出结果。

三星硬盘


数据库读写比较

先创建数据库和表,使用下面脚本,我们随便建立一个堆表

 --测试脚本
USE master
GO
CREATE DATABASE testdisk
GO
USE testdisk
GO
--建立堆表
CREATE TABLE testdisktable(id INT ,NAME VARCHAR(5000))
GO

希捷硬盘

测试插入数据(10000条记录)

 --测试插入
DBCC DROPCLEANBUFFERS
DBCC FREEPROCCACHE
DBCC freesystemcache('ALL')
GO
SELECT GETDATE()
GO
DECLARE @i INT
SET @i = 1
WHILE ( @i < 10000 )
BEGIN
INSERT INTO [dbo].[testdisktable] ( [id], [name] )
VALUES ( @i, REPLICATE('s', 3000) )
SET @i = @i + 1
END
CHECKPOINT
SELECT GETDATE()
GO

(22:44:35.540)  -  (22:44:17.583)=大概18秒

两个时刻相减大概18秒

测试读取数据(10000条记录)

 --测试读取
DBCC DROPCLEANBUFFERS
DBCC FREEPROCCACHE
DBCC freesystemcache('ALL')
GO
SET STATISTICS IO ON
SET STATISTICS TIME ON
GO
SELECT *
FROM testdisktable
SET STATISTICS IO OFF
SET STATISTICS TIME OFF
GO
 DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。
DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。
DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。
SQL Server 分析和编译时间:
CPU 时间 = 0 毫秒,占用时间 = 102 毫秒。 (9999 行受影响)
表 'testdisktable'。扫描计数 1,逻辑读取 5004 次,物理读取 0 次,预读 5004 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。 SQL Server 执行时间:
CPU 时间 = 78 毫秒,占用时间 = 1108 毫秒。 SQL Server 执行时间:
CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。

Logical reads:包含该语句从内存数据缓冲区中访问的页数和从物理磁盘读取的页数

---------------------------------------------------------------------------------------------------------

三星硬盘

测试插入数据(10000条记录)

 --测试插入
DBCC DROPCLEANBUFFERS
DBCC FREEPROCCACHE
DBCC freesystemcache('ALL')
GO
SELECT GETDATE()
GO
DECLARE @i INT
SET @i = 1
WHILE ( @i < 10000 )
BEGIN
INSERT INTO [dbo].[testdisktable] ( [id], [name] )
VALUES ( @i, REPLICATE('s', 3000) )
SET @i = @i + 1
END
CHECKPOINT
SELECT GETDATE()
GO

(12:50:04.847) - (12:50:02.150)  =2秒多一点

两个时刻相减大概2秒多一点

测试读取数据(10000条记录)

 --测试读取
DBCC DROPCLEANBUFFERS
DBCC FREEPROCCACHE
DBCC freesystemcache('ALL')
GO
SET STATISTICS IO ON
SET STATISTICS TIME ON
GO
SELECT *
FROM testdisktable
SET STATISTICS IO OFF
SET STATISTICS TIME OFF
GO
 DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。
DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。
DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。
SQL Server 分析和编译时间:
CPU 时间 = 0 毫秒,占用时间 = 5 毫秒。 (9999 行受影响)
表 'testdisktable'。扫描计数 1,逻辑读取 5004 次,物理读取 0 次,预读 5028 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。 SQL Server 执行时间:
CPU 时间 = 125 毫秒,占用时间 = 651 毫秒。 SQL Server 执行时间:
CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。

这两个硬盘的时间差异比较就是执行时间的差异比较分析编译时间的差异比较

因为IO(读取数据页)无论是固态硬盘还是机械硬盘都是需要做的

但是分析编译时间和执行时间不一样

分析编译期间SQLSERVER需要编译中间代码,这个过程也是需要读取磁盘文件的

执行时间里包括从磁盘里读取数据,因为机械硬盘有寻道时间而固态硬盘没有

详细的大家可以看一下我这篇文章:带您理解SQLSERVER是如何执行一个查询的


总结

上面的测试结果有积极的参考意义,如果本人的笔记本电脑接口是原生SATA3.0的速度肯定会更快

打开网页的时候也很快,因为浏览器需要将cookies、缓存文件、图片下载到本地然后显示

自从换了SSD之后多年的老问题解决了,健步如飞了~

小贴士:三星固态硬盘在淘宝天猫买的不用600块,还包邮,卖家对我这种小白的态度也很好

有很多地方不明白也耐心教导o(∩_∩)o

三星 860 QVO 固态硬盘
https://mbd.baidu.com/newspage/data/landingsuper?context=%7B%22nid%22%3A%22news_9350764872635181512%22%7D&n_type=0&p_from=1
这款产品的1TB版本京东售价769元,价格低至7毛/GB,还有3年或最高1440TB写入的保修,让大家对其使用寿命和质量拥有极大信心。
正如三星 860 QVO SSD的宣传语写道“让TB容量SSD普及”,这便是该款产品的最大意义。至于读550MB/s,写520MB/s的优秀性能反而不是最重要的事了。

阿里云ECS 1.7TB本地固态盘

如有不对的地方,欢迎大家拍砖o(∩_∩)o

固态硬盘和机械硬盘的比较和SQLSERVER在两种硬盘上的性能差异的更多相关文章

  1. raid5两块硬盘离线怎么办? 强制上线失败如何恢复数据

    服务器故障描述: 客户使用Dell 2850服务器组建了raid5磁盘阵列,阵列中包含有6块硬盘(SCSI硬盘,单盘容量300G),服务器操作系统为linux Redhat4:文件系统为ext3文件系 ...

  2. 服务器磁盘阵列数据恢复,raid5两块硬盘掉线数据恢复方法

    [用户单位信息] 农业科学研究院某研究所 [磁盘阵列故障发生过程描述]客户的DELL MD1000服务器内置15块1TB硬盘搭建为RAID5磁盘阵列阵列,服务器在正常工作中有一块硬盘离线,管理员对磁盘 ...

  3. Raid5两块硬盘掉线可以恢复数据吗_raid数据恢复案例分享

    本案例中发生故障的存储类型是HP P2000,虚拟化平台为vmware exsi,共有10块硬盘组成raid5(硬盘容量为1t,其中6号盘是热备盘),由于某些故障导致阵列中两块硬盘亮黄灯掉线,硬盘无法 ...

  4. 6块300G SCSI RAID5,两块硬盘损坏的数据恢复总结

    [用户单位]XXXX网站[数据恢复故障描述]DELL POWEREDGE 2850服务器,内置6块300G SCSI硬盘 ,组成RAID5,安装LINUX REDHAT 4操作系统,存储大量照片,文件 ...

  5. 成功案例分享:raid5两块硬盘掉线数据丢失恢复方法

    1. 故障描述    本案例是HP P2000的存储vmware exsi虚拟化平台,由RAID-5由10块lT硬盘组成,其中6号盘是热备盘,由于故障导致RAID-5磁盘阵列的两块盘掉线,表现为两块硬 ...

  6. 如何用两块硬盘做磁盘阵列的教程Raid 1

    如今,市面上的大部分服务器都自带有阵列卡.只要有两块以上硬盘,我们就可以利用服务器自带的阵列卡做磁盘阵列.Raid 1 为例.Raid 1 是磁盘阵列的其中一个系列,将两块硬盘构成磁盘阵列,可以保证数 ...

  7. Windows 8.1硬盘安装Ubuntu 14.04双系统参考教程及多硬盘注意事项

    本文来自:http://www.linuxidc.com/Linux/2015-08/122140.htm,此处仅做收藏. Windows 8.1硬盘安装Ubuntu 14.04双系统参考教程及多硬盘 ...

  8. 固态硬盘与机械硬盘 SQL Server 单表插入性能对比测试

    测试环境

  9. 固态硬盘和机械硬盘双硬盘安装win10,提示无法找到系统

    选择兼容模式,自己慢慢找,不同的主板所在的位置不同,大概是cms(兼容的意思)这个选项,选择enable就可以了

随机推荐

  1. mysql pdo设置显示报错

    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);    

  2. js闭包应用

    先来看一个例子: function foo() { var a = 10; function bar() { a *= 2; return a; } return bar; } var baz = f ...

  3. CATransaction(参考其他博客敲)

    #import "ViewController.h" @interface ViewController () @property(nonatomic,strong)CALayer ...

  4. 微信小程序开发资料汇总

    >> 微信小程序开发工具下载 社区推荐: >>蜂鸟-微信小程序开发者社区>> 很快-微信小程序开发者社区 博文推荐: >> 微信小程序开源Demo精选& ...

  5. org.hibernate.HibernateException: Wrong column type

    这个问题一般出现在我们使用定长的字符串作为主键(其它字段也可能)的时候,如数据库中的ID为char(16).虽然很多资料上都说不推荐这样做,但实际上我们在做很多小case的时候自己为了方便也顾不得那么 ...

  6. [日常] Go语言圣经-Panic异常,Recover捕获异常习题

    Go语言圣经-Panic异常1.当panic异常发生时,程序会中断运行,并立即执行在该goroutine中被延迟的函数(defer 机制)2.不是所有的panic异常都来自运行时,直接调用内置的pan ...

  7. [日常] Go语言圣经--浮点数习题

    练习 3.1: 如果f函数返回的是无限制的float64值,那么SVG文件可能输出无效的多边形元素(虽然许多SVG渲染器会妥善处理这类问题).修改程序跳过无效的多边形. 练习 3.2: 试验math包 ...

  8. Dubbox分布式框架

    一:简介:前身是阿里巴巴的一个开源的项目,后来停止维护,由当当网继续维护,它致力于rpc远程的调度方案.是一个服务框架 二:执行原理图: 节点角色说明: · Provider: 暴露服务的服务提供方. ...

  9. python 历险记(六)— python 对正则表达式的使用(上篇)

    目录 引言 什么是正则表达式? 正则表达式有什么用? 正则表达式的语法及使用实例 正则表达式语法有哪些? 这些正则到底该怎么用? 小结 参考文档 系列文章列表 引言 刚接触正则表达式,我也曾被它们天书 ...

  10. Maven 那些破事

    deploy 只上传了pom 晚上输命令,打算打包上传到本地库里,然后去服务器上部署新版本 mvn clean package deploy 结果看着mvn的build过程只是上传了pom,去库服务器 ...