加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_泰州站长网 (http://www.0523zz.com/)- 视觉智能、AI应用、CDN、行业物联网、智能数字人!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

利用虚拟硬盘(把内存当作硬盘)来提高数据库的效率 续

发布时间:2016-01-17 00:21:28 所属栏目:MsSql教程 来源:网络整理
导读:上一篇引起了大家的讨论,看着讨论我是比较晕的,这也怪我没有说清楚,所以再补一个续把问题说 清楚吧。 笔记本配置 CPU:Core 2 7250 2.0G 内存:4G,其中2G设
上一篇引起了大家的讨论,看着讨论我是比较晕的,这也怪我没有说清楚,所以再补一个续把问题说 清楚吧。

笔记本配置

CPU:Core 2 7250 2.0G

内存:4G,其中2G设置成了虚拟硬盘,虚拟硬盘的软件:Ramdisk。读取:5.5G,写入:3.5G。

硬盘:160G,平均读取:70M/s。写入:不详,估计没有读取快。

(内存的读取速度是硬盘的读取速度的785倍。)

这里是我的笔记本的测试:http://www.cnblogs.com/jyk/archive/2009/05/10/1453551.html

软件:SQL Server 2000,asp.net2.0

SQL Server 2000 里面有几个重要的数据库,master、model、msdb、tempdb,这里主要想说的是 tempdb数据库,这里有一个MSND的介绍。

目的:提高SQL Server 2000显示数据时的速度。

想法:把tempdb 放在虚拟硬盘(即内存)里面,利用内存的读写速度远远大于硬盘的优势,提高速度 。

事件的经过:

上周三,一开始的想法是想要把客户的数据库直接放在虚拟硬盘里面测试一下速度,也就是对比一下 看看能够提高多少性能,如果性能能够提高很多的话,那么在考虑一下保证数据的安全性,也就是说在意 外发生的时候,保证数据不能丢失。

我是想先看看性能到底能够提高多少,如果提高的多的话才有应用价值,如果提高微弱,那就一点价 值都没有了。于是我利用SQL Server 2000自带的northwnd,把里面的Products表里面的数据copy到了250 万条以便于测试。然后再把数据库文件复制成两份,一份放在物理硬盘里面,附加到数据库里,叫做 northwnd_Disk;另一份放在虚拟硬盘(即内存)里面,附加到数据库里,叫做northwnd_Ram。好了两份 数据库准备好了,下面开始测试。

我先测试了一下能够利用索引的情况,使用Max的分页算法,按照ProductID(主键,聚集索引)排序 。两个数据库都没有超时,northwnd_Ram可以提高8倍左右的效率,基本还可以。

能够利用索引自然是好,但是好多情况是不能利用索引的呀,那么再不能利用索引的情况下,虚拟硬 盘能够带来多少的性能提升呢?于是我又做了第二个实验。

不能利用索引的情况,还是用那两个数据库,这回按照 order by ProductName, ProductID的条件来 分页,采用颠倒Top的分页算法(注意这里并不是想要讨论分页算法的效率问题,而是要看看虚拟硬盘的 效率)。

(编辑:云计算网_泰州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读