没有找到合适的产品?
联系客服协助选型:023-68661681
提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
原创|其它|编辑:郝浩|2009-05-20 10:10:00.000|阅读 1259 次
概述:周三,一开始的想法是想要把客户的数据库直接放在虚拟硬盘里面测试一下速度,也就是对比一下看看能够提高多少性能,如果性能能够提高很多的话,那么在考虑一下保证数据的安全性,也就是说在意外发生的时候,保证数据不能丢失。
# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>
续
上一篇引起了大家的讨论,看着讨论我是比较晕的,这也怪我没有说清楚,所以再补一个续把问题说清楚吧。
笔记本配置
CPU:Core 2 7250 2.0G
内存:4G,其中2G设置成了虚拟硬盘,虚拟硬盘的软件:Ramdisk。读取:5.5G,写入:3.5G。
硬盘:160G,平均读取:70M/s。写入:不详,估计没有读取快。
(内存的读取速度是硬盘的读取速度的785倍。)
这里是我的笔记本的测试:
软件: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的分页算法(注意这里并不是想要讨论分页算法的效率问题,而是要看看虚拟硬盘的效率)。
这回我就傻眼了,两个数据库,第一页倒是都显示出来了,但是第500页,第1000页都是超时?数据库文件放在了物理硬盘里面超时了,这我还可以理解,硬盘读写速度慢呀。但是我明明把另一份数据库文件放在了虚拟硬盘(内存)里面了呀,怎么他也超时了?!文件放在内存里面都读不过来?这也太不可思议了吧!我检查了代码,有检查了数据库文件的设置,没有弄错呀。正在疑惑呢,突然发现硬盘灯在狂闪不止,都到了常亮的程度了,但是这时候我明明是在做northwnd_Ram(虚拟硬盘)的测试呀,这个时候为什么要读写硬盘呢?难道是灵异事件?代码和数据库的设置绝对没有错误,问题出在哪里呢?
我突然想到了一个事情,在我上大学学习数据结构的时候,老师讲解排序算法时说过,在对几百条数据进行排序的时候,排序算法好写,把数据都写到内存里面排序就可以了,但是如果数据达到几万条,几百万条的时候,要如何来写排序算法呢?难道要把几百万条数据都读到内存里面?对呀,在2000年的时候,内存可不像现在是以G为单位的,那时候才128M吧 ,服务器的内存也到不了多少,估计微软施舍不能占用太多的内存,而是把一些数据写到了硬盘里面,这样我就想到了Tempdb数据库,如果能够把Tempdb放在虚拟硬盘里面,那么速度是不是可以提升一些呢?当时就笨了,没有想到更改数据库文件的路径地方法,后来在周五的时候才找到了一个方法。测试了一下,效果明显,于是才引出了那篇帖子。
当时是很兴奋的,因为即使是northwnd_Disk(数据库文件放到了物理硬盘里),按照order by ProductName, ProductID都没有超时,这个意义就很大了。原先还想把客户的数据库放在虚拟硬盘(我当然知道这么做是很危险地)里呢,现在不用了,只需要把Tempdb放在虚拟硬盘里就可以提升很大的效率,这不就不用担心库户的数据的丢失问题了吗。而且在重启计算机(或者重启SQL服务)的时候,即使没有了tempdb.mdf文件,SQL服务也会重新建立一份文件(可惜不能建立文件夹),是不是很方便。速度也快了,数据也安全,除了tempdb.mdf文件的体积不能太大,几乎没有缺点了。
对于32位的操作系统,最大只能识别4G的内存,这样留给Tempdb的空间确实不是太多。我现在的一个客户,20多人使用,Tempdb的空间只有8M,可能是我不使用临时表的原因吧,至少对于我来说,我觉得我是完全可以把Tempdb放在虚拟硬盘里面的,我打算今天下午就试一下。
Ps:
1、我怀疑,在有的时候(比如排序),SQL 会对Tempdb进行很频繁的读写操作。
2、至于如果把客户的数据库放在了虚拟硬盘里面,如何才能保证数据的安全的问题,我也是想过的。最稳妥的方式就是,大家有过做数据库读写分离的吧,就是一个数据库专门负责数据的读取,叫做A数据库,另一个负责写入,叫做B数据库。然后把这个负责读取的A数据库文件放在虚拟硬盘里面,这样速度不就快了吗?而且A数据库的数据完全是从另B数据库里面订阅多来的,B数据库可是放在物理硬盘里面的,这样就不用担心数据丢失的问题了。
这个方案还行吧。
3、SSD
在百科里面查了一下,固态硬盘的存储介质分为两种,一种是采用闪存(FLASH芯片)作为存储介质,另外一种是采用DRAM作为存储介质。
数据存储速度:从PConline评测室的评测数据来看,固态硬盘相对传统硬盘性能提升2倍多。
价格:目前市场上80G Intel固态硬盘,价格为4000元左右。而这个价钱足够买几个容量为1TB的传统硬盘了。
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@dpuzeg.cn
文章转载自:博客园面对“数字中国”建设和中国制造2025战略实施的机遇期,中车信息公司紧跟时代的步伐,以“集约化、专业化、标准化、精益化、一体化、平台化”为工作目标,大力推进信息服务、工业软件等核心产品及业务的发展。在慧都3D解决方案的实施下,清软英泰建成了多模型来源的综合轻量化显示平台、实现文件不失真的百倍压缩比、针对模型中的大模型文件,在展示平台上进行流畅展示,提升工作效率,优化了使用体验。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@dpuzeg.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢