固态硬盘和机械硬盘的比较和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. php -- 显示当前时间

    默认为UTC ----- 002-time.php ----- <!DOCTYPE html> <html> <head> <meta http-equiv= ...

  2. 【奔走相告】- Github送福利:用户可免费创建私有代码库啦

    最新消息 PingWest品玩1月8日讯,据TheNextWeb消息,据美国科技媒体The Next Web报道,被微软收购的代码平台GitHub最近调整政策,用户免费创建无限空间私有代码库(priv ...

  3. 解决Silverlight F5刷新问题

    最近在做一个SL的项目,做完后,遇到一个F5刷新的问题,本人也是第一次接触接触SL项目,记得再ASP.NET浏览器的缓存会自动保存最后一次的浏览记录的. 所以就在网上到处找资料,可惜运气不好,都没找到 ...

  4. poj1330-----------关于公共祖先的问题

    关于公共祖先的问题分类: 这类问题有多种解法和类型,根据题目给出的信息去判断使用哪一种 1.给你树,只支持从父亲找儿子,不支持儿子找父亲,最后要求最近公共祖先,使用dfs或者分治 2.支持儿子找父亲, ...

  5. linux(centos6.8 64位)下安装mysql5.7(yum方式)

    下载mysql源安装包 # wget http:.noarch.rpm 安装mysql源包 #yum localinstall mysql57.noarch.rpm 检查mysql源是否安装成功 # ...

  6. Edge和Chrome浏览器滚屏截取网页

    1.Edge打开需要截图的页面,选择下面的功能: 在页面按下左键选中需要截图的区域(不要放开左键,这时可以滚动鼠标滚轮到底部),放开左键后就完成截图,直接可以粘贴到QQ或其他地方. 2,Chrome截 ...

  7. Entity Framework 6.x 学习之Database First

    一.单表操作 1. 建表 CREATE TABLE [Chapter1].[Customer] ( , ), ) COLLATE Chinese_PRC_CI_AS NOT NULL, ) COLLA ...

  8. U3D Input类之键位输入GetKey

    Input类中包含许多属性和方法,下面介绍一下和键盘输入有关的内容 一.有关接收键盘信息的属性 属性名 类型 属性类型 含义 anyKey bool get 当前是否按住任意键或鼠标按钮 anyKey ...

  9. js实现四叉树算法

    最近在看canvas动画方面教程,里面提到了采用四叉树检测碰撞.之前也看到过四叉树这个名词,但是一直不是很懂.于是就又找了一些四叉树方面的资料看了看,做个笔记,就算日后忘了,也可以回来看看. Quad ...

  10. GCD之Source

    参考:http://blog.csdn.net/lengshengren/article/details/12905811