<?xml version="1.0" encoding="gb2312"?><rss version="2.0"><channel><title>linkman</title><link></link><description></description><language>zh-cn</language><generator>Goodspeed Rss</generator><ttl>10</ttl><pubDate>Fri, 09 Jan 2009 15:09:32 GMT</pubDate><category></category><copyright></copyright><docs></docs><item><title>国产实时数据库真的比洋品牌差吗？</title><pubDate>Sat, 29 Nov 2008 00:37:38 GMT</pubDate><link>http://blog.cechina.cn/linkman/158854/message.aspx</link><description>国产实时数据库真的比洋品牌差吗？我不信。 
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;一个月之前，我们与某公司商谈合作，讨论将我们的实时数据库OEM到他们的MES系统中，这个公司的老总是我多年的老相识，也是多年的老朋友，他这么对我说：老Linkman呀，我们合作吧，在2万点以下这一档次，我们公司全面OEM你们的实时数据库，2万点以上，我们还是准备使用国外的实时数据库产品，毕竟，在2万点以上的系统中，国外的实时数据库产品的性能和稳定性要强于国产实时数据库产品。&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;听到这些话，我有点欣慰，也有点失落。欣慰的是，曾几何时，一提到实时数据库，大家都只能想到国外的实时数据库产品，铁定只选用国外的实时数据库产品，根本不会考虑国产实时数据库，现在，至少在2万点这一档次上，我们已能与国外的实时数据库产品正面抗衡，很多用户已经认为国产实时数据库是一种很好的选择；失落的是，我们要真正证明自己，还有很长的路要走，即便我们说自己行，那也不一定行。&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;我当时并没有说任何话，能争取到2万点系统的OEM，对我们来说，已经是一个很大的胜利，只要给我们机会，我们就能更好地证明自己，再多的空话也是多余，先将眼前的事情做好吧，但我有理由相信，最多再过一年，我的那位朋友的观点会改变，我们值得他选择。我有这个自信，因为我熟悉我们产品的每一处细节，知道她的真正情况，也知道他的真实能力，就象了解我的小孩的每一处细节一样。&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;这一次投标更有意思，国内国外多家实时数据库厂家在客户现场直接PK，由我们与客户一起来做各种功能和性能测试，当我们做完了实验，提交了测试报告之后，客户的一位主管要求我们重做某一项实验。我们很配合地重做了这项实验，最终实验效果比我们第一次做的实验的效果还要好。&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;下面是这次测试的服务器配置：&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;table cellSpacing="0" cellPadding="0" border="1"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td vAlign="top" width="568" colSpan="4"&gt;
&lt;div&gt;&lt;b&gt;数据库服务器硬件配置&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td vAlign="top" width="102"&gt;
&lt;div align="center"&gt;&lt;b&gt;名称&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;
&lt;td vAlign="top" width="321"&gt;
&lt;div align="center"&gt;&lt;b&gt;型号及说明&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;
&lt;td vAlign="top" width="73"&gt;
&lt;div align="center"&gt;&lt;b&gt;配件数量&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;
&lt;td vAlign="top" width="72"&gt;
&lt;div align="center"&gt;&lt;b&gt;数量&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td vAlign="top" width="102"&gt;
&lt;div&gt;&lt;font face="Calibri"&gt;CPU&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;
&lt;td vAlign="top" width="321"&gt;
&lt;div&gt;四核&lt;font face="Calibri"&gt; Intel xeon x5450 3Ghz&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;
&lt;td vAlign="top" width="73"&gt;
&lt;div&gt;&lt;font face="Calibri"&gt;2&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;
&lt;td vAlign="top" width="72" rowSpan="4"&gt;
&lt;div&gt;&lt;font face="Calibri"&gt;1&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td vAlign="top" width="102"&gt;
&lt;div&gt;内存&lt;/div&gt;&lt;/td&gt;
&lt;td vAlign="top" width="321"&gt;
&lt;div&gt;&lt;font face="Calibri"&gt;8G DDR2&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;
&lt;td vAlign="top" width="73"&gt;
&lt;div&gt;&lt;font face="Calibri"&gt;1&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td vAlign="top" width="102"&gt;
&lt;div&gt;硬盘&lt;/div&gt;&lt;/td&gt;
&lt;td vAlign="top" width="321"&gt;
&lt;div&gt;&lt;font face="Calibri"&gt;146G 15krpm SAS&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;
&lt;td vAlign="top" width="73"&gt;
&lt;div&gt;&lt;font face="Calibri"&gt;1&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td vAlign="top" width="102"&gt;
&lt;div&gt;网卡&lt;/div&gt;&lt;/td&gt;
&lt;td vAlign="top" width="321"&gt;
&lt;div&gt;千兆&lt;/div&gt;&lt;/td&gt;
&lt;td vAlign="top" width="73"&gt;
&lt;div&gt;&lt;font face="Calibri"&gt;1&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td vAlign="top" width="568" colSpan="4"&gt;
&lt;div&gt;&lt;b&gt;数据库服务器软件环境&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td vAlign="top" width="102"&gt;
&lt;div align="center"&gt;&lt;b&gt;名称&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;
&lt;td vAlign="top" width="466" colSpan="3"&gt;
&lt;div align="center"&gt;&lt;b&gt;型号及说明&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td vAlign="top" width="102"&gt;
&lt;div&gt;操作系统&lt;/div&gt;&lt;/td&gt;
&lt;td vAlign="top" width="466" colSpan="3"&gt;
&lt;div&gt;&lt;font face="Calibri"&gt;Windows Server 2003&lt;/font&gt;中文版&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td vAlign="top" width="102"&gt;
&lt;div&gt;&lt;font face="Calibri"&gt;C&lt;/font&gt;盘剩余空间&lt;/div&gt;&lt;/td&gt;
&lt;td vAlign="top" width="466" colSpan="3"&gt;
&lt;div&gt;&lt;font face="Calibri"&gt;4.12G NTFS&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td vAlign="top" width="102"&gt;
&lt;div&gt;&lt;font face="Calibri"&gt;D&lt;/font&gt;盘剩余空间&lt;/div&gt;&lt;/td&gt;
&lt;td vAlign="top" width="466" colSpan="3"&gt;
&lt;div&gt;&lt;font face="Calibri"&gt;128G NTFS&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;div&gt;&lt;font face="Calibri"&gt;&lt;/font&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;重做的实验为“以1秒为单位采集及写入数据时，记录服务器的各种负荷”，具体要求为：由客户工程师监护，实时数据库厂家做将采集模拟器放在与服务器不同的客户机上，以1秒为单位模拟采集及写入试验，并记录不同实时数据库容量下，服务器的各种负荷。&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;操作步骤：&lt;/div&gt;
&lt;div&gt;A、 启动实时数据库，数据库中已保存需测试的工程测点，总容量为60万点；&lt;/div&gt;
&lt;div&gt;B、 启动模拟采集器，以1秒为单位产生模拟数据，分别产生30万点、60万点的测试数据；&lt;/div&gt;
&lt;div&gt;C、 连续运行30分钟；&lt;/div&gt;
&lt;div&gt;D、 观察数据是否能够在规定的时间内写入，记录每次测试的CPU负荷等；&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;下面是测试结果：&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;table cellSpacing="0" cellPadding="0" border="1"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td vAlign="top" width="243"&gt;
&lt;div align="left"&gt;&lt;b&gt;服务器容量&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;
&lt;td vAlign="top" width="325"&gt;
&lt;div&gt;&lt;font face="Calibri"&gt;60&lt;/font&gt;万点&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td vAlign="top" width="243"&gt;
&lt;div align="left"&gt;&lt;b&gt;工程测点总容量&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;
&lt;td vAlign="top" width="325"&gt;
&lt;div&gt;&lt;font face="Calibri"&gt;60&lt;/font&gt;万点&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td vAlign="top" width="243"&gt;
&lt;div align="left"&gt;&lt;b&gt;数据是否全部保存&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;
&lt;td vAlign="top" width="325"&gt;
&lt;div&gt;是，&lt;font face="Calibri"&gt;40&lt;/font&gt;万个模拟量，&lt;font face="Calibri"&gt;12&lt;/font&gt;万个整型量，&lt;font face="Calibri"&gt;8&lt;/font&gt;万个开关量&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td vAlign="top" width="243"&gt;
&lt;div align="left"&gt;&lt;b&gt;失真率是否满足要求&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;
&lt;td vAlign="top" width="325"&gt;
&lt;div&gt;是，模拟量失真度&lt;font face="Calibri"&gt;0.5%&lt;/font&gt;，其它不失真&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td vAlign="top" width="243"&gt;
&lt;div align="left"&gt;&lt;b&gt;数据波形是否符合要求&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;
&lt;td vAlign="top" width="325"&gt;
&lt;div&gt;是，模拟量和整型量以幅度&lt;font face="Calibri"&gt;100&lt;/font&gt;，周期&lt;font face="Calibri"&gt;300&lt;/font&gt;秒的正弦，开关量周期&lt;font face="Calibri"&gt;60&lt;/font&gt;秒&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td vAlign="top" width="243"&gt;
&lt;div align="left"&gt;&lt;b&gt;模拟器数据产生频率&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;
&lt;td vAlign="top" width="325"&gt;
&lt;div&gt;&lt;font face="Calibri"&gt;1&lt;/font&gt;秒&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td vAlign="top" width="243"&gt;
&lt;div align="left"&gt;&lt;b&gt;是否能够在规定的时间内写入数据库&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;
&lt;td vAlign="top" width="325"&gt;
&lt;div&gt;能&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;div&gt;实时数据库服务器运行状态记录&lt;/div&gt;
&lt;table cellSpacing="0" cellPadding="0" width="568" border="1"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width="83"&gt;
&lt;div align="center"&gt;&lt;b&gt;观察&lt;/b&gt;&lt;/div&gt;
&lt;div align="center"&gt;&lt;b&gt;时间&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;
&lt;td vAlign="top" width="57"&gt;
&lt;div align="center"&gt;&lt;b&gt;点数&lt;/b&gt;&lt;/div&gt;
&lt;div align="center"&gt;&lt;b&gt;(&lt;/b&gt;&lt;b&gt;万)&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;
&lt;td width="57"&gt;
&lt;div align="center"&gt;&lt;b&gt;CPU&lt;/b&gt;&lt;b&gt;使用&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;
&lt;td width="77"&gt;
&lt;div align="center"&gt;&lt;b&gt;物理内存使用&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;
&lt;td width="79"&gt;
&lt;div align="center"&gt;&lt;b&gt;最高单核CPU使用&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;
&lt;td width="79"&gt;
&lt;div align="center"&gt;&lt;b&gt;虚拟内存&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;
&lt;td width="136"&gt;
&lt;div align="center"&gt;&lt;b&gt;备注&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td vAlign="top" width="83"&gt;
&lt;div&gt;&lt;font face="Calibri"&gt;13:05&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;
&lt;td vAlign="top" width="57"&gt;
&lt;div&gt;&lt;font face="Calibri"&gt;30&lt;/font&gt;万&lt;/div&gt;&lt;/td&gt;
&lt;td vAlign="top" width="57"&gt;
&lt;div&gt;&lt;font face="Calibri"&gt;6%&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;
&lt;td vAlign="top" width="77"&gt;
&lt;div&gt;&lt;font face="Calibri"&gt;446M&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;
&lt;td vAlign="top" width="79"&gt;
&lt;div&gt;&lt;font face="Calibri"&gt;38.9%&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;
&lt;td vAlign="top" width="79"&gt;
&lt;div&gt;&lt;font face="Calibri"&gt;283M&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;
&lt;td vAlign="top" width="136"&gt;
&lt;div&gt;一个模拟器，同步送&lt;font face="Calibri"&gt;30&lt;/font&gt;万点&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td vAlign="top" width="83"&gt;
&lt;div&gt;&lt;font face="Calibri"&gt;15:48&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;
&lt;td vAlign="top" width="57"&gt;
&lt;div&gt;&lt;font face="Calibri"&gt;60&lt;/font&gt;万&lt;/div&gt;&lt;/td&gt;
&lt;td vAlign="top" width="57"&gt;
&lt;div&gt;&lt;font face="Calibri"&gt;9%&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;
&lt;td vAlign="top" width="77"&gt;
&lt;div&gt;&lt;font face="Calibri"&gt;558M&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;
&lt;td vAlign="top" width="79"&gt;
&lt;div&gt;&lt;font face="Calibri"&gt;22.2%&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;
&lt;td vAlign="top" width="79"&gt;
&lt;div&gt;&lt;font face="Calibri"&gt;305M&lt;/font&gt;&lt;/div&gt;&lt;/td&gt;
&lt;td vAlign="top" width="136"&gt;
&lt;div&gt;两个模拟器，分别异步送&lt;font face="Calibri"&gt;30&lt;/font&gt;万点。&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;div&gt;&lt;font face="Calibri"&gt;&lt;/font&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;font face="Calibri"&gt;下图是以单模拟器1秒同步插入30万点时的CPU负荷图：&lt;/font&gt;&lt;/div&gt;&lt;font face="Calibri"&gt;
&lt;div&gt;&lt;a href="http://blog.gkong.com/uploadfile2/20081125104220432.bmp" target=_blank&gt;&lt;a href="http://blog.gkong.com/uploadfile2/20081125104220432.bmp" target=_blank&gt;&lt;img height="400" alt="点击看大图" src="http://blog.gkong.com/uploadfile2/20081125104220432.bmp" width="400"&gt;&lt;/a&gt;&lt;/a&gt;&lt;br&gt;下图是以两个模拟器以1秒为单位异步插入60万点时的CPU负荷图：&lt;/div&gt;
&lt;div&gt;&lt;a href="http://blog.gkong.com/uploadfile2/20081125104249175.bmp" target=_blank&gt;&lt;a href="http://blog.gkong.com/uploadfile2/20081125104249175.bmp" target=_blank&gt;&lt;img height="400" alt="点击看大图" src="http://blog.gkong.com/uploadfile2/20081125104249175.bmp" width="400"&gt;&lt;/a&gt;&lt;/a&gt;&lt;br&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;这个实试说明以下几个问题：&lt;/div&gt;
&lt;div&gt;A、 我们的实时数据库可以轻松地实现单服务器60万点容量（后来我自己又做了单服务器90万点容量的插入实验，性能同样不错）；&lt;/div&gt;
&lt;div&gt;B、 将模拟器的数据由1个改为两个，通讯方式由同步改为异步时，性能大大提高，终于利用了客户那么高档的多CPU多核计算机的优势，而且，随着模拟器数量的增加和通讯客户端的增加，利用多核的优势越明显；&lt;/div&gt;
&lt;div&gt;C、 我们的实时数据库性能还有很大提升空间，如果在程序设计中充分考虑多核的并发处理，性能至少可以提高3-4倍。或者，直接运行3-4个实例，那样，我们的单台实时数据库服务器可以轻松地支持200万-300万点。&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;我能想象得到，这位主管为什么要让我们重做这项实验，因为在这一证明实时数据库性能的实验中，我们的试验数据甚至比国外的实时数据库的性能指标还要高得多，他有理由怀疑，我们是不是在作假，而我们毫不犹豫地配合重新做了这个实验，并愿意在不同环境下重做（不同的计算机、更长的实验时间，不同的网络环境等），更说明我们的自信，只有这样，我们才能得到用户的认可和尊重。&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;都说国外的实时数据库要比国内的实时数据库强，我一直不服气，相信国产实时数据库能超越那些国外的品牌，不仅仅是某一项指标，而是全面超越，不仅仅是内核，而是整体，不仅仅是性能，而是包括性能、功能和稳定性，我已为这个信念投入了三年的时间，而且以后愿意投入更长更多的时间，相信在不久的将来，我们可以真正得到用户的认可，可以在高端实时数据库市场与国外实时数据库产品全面抗衡，乃至超越，乃至战胜！&lt;/font&gt;&lt;/div&gt;</description><comments></comments><guid>http://blog.cechina.cn/linkman/158854/message.aspx</guid><category>实时数据库 工控软件</category><author></author></item><item><title>危机</title><pubDate>Tue, 18 Nov 2008 00:16:22 GMT</pubDate><link>http://blog.cechina.cn/linkman/154429/message.aspx</link><description>&lt;p&gt;爱好和平的人士，总希望自己生活在一个没有战争没有竞争没有危机的社会，美其名曰和平主义者，这类人士，总生活在理想中，而在现实中痛苦。问题是，如果某一天上帝突然出现了，实现了这些和平主义者的梦想，这世界会不会就真的美好了呢？我们可以想象一下，人们肯定会兴高彩烈一番，然后呢？&lt;/p&gt;
&lt;p&gt;有一部科幻小说，描述的就是这样一个社会，未来的某一天，聪明的人们发明了全虚拟现实软件，只要将插头插在身上，就可以一直享受和平美好幸福快感的生活，于是，人们象迷恋鸦片一样迷恋上这个没有战争没有竞争没有危机的世界，他们变成了一具具行尸走肉。这一具具一动不动的未死亡的尸体，他们自己选择了快乐，虽然这种快乐从旁观者的角度看是那么的可笑，就好象我们从旁观者的角度看待一个个呆坐在网吧中快乐地上网的人们一样。&lt;/p&gt;
&lt;p&gt;如果世界突然又改变了呢？&lt;/p&gt;
&lt;p&gt;陶渊明描述了一个美好的世外桃园，那里的世界中一切都是美丽的，时间都是缓慢的，我们可以想象一下，在桃园中生活了100代之后的后人们，他们会不会想走出桃园，还敢不敢走出桃园？&lt;/p&gt;
&lt;p&gt;达尔文提出物竞天择，适者生存，这个观点不只是适用于生物界，同样适应于人类；不只是适用于宏观的大社会，同样适用于个体。&lt;/p&gt;
&lt;p&gt;危机有大有小，大到战争，小到自己遇到的挫折，对于不能避免的危机，我们想了也白想，但是，什么叫不能避免，什么叫能够避免呢？在事情真正发生之前，谁能知道危机的危害有多大？谁又能知道危机的时间有多长？谁能告诉我们，这次能不能躲得过去？想那么多又有什么用？对危机的惧怕是每个人的天性，能否应对危机则是个体的磨砺和自信。当然，被第一波冲击打趴下，那又另当别论，好比，当原子弹正打中你的脑门，你只能哀叹自己的幸运指数太低，当原子弹在你十公里之外炸开时，你还活着，就必须要应对危机。&lt;/p&gt;
&lt;p&gt;经济危机要来了，聪明者如马云要去冬眠了，豪放者如陈志列要去冬泳了，渺小的我们该怎么办呢？想起小时侯的一篇课文，寒号鸟说：多咯咯，多咯咯，寒风冻死我，明天就垒窝。我们该不会是那只唱歌的鸟吧。&lt;/p&gt;
&lt;p&gt;后记：这次经济危机，现在北京还感受不明显，虽然2008年的中国多灾多难，但总能给人们希望。世界局势我控制不了，国家大事我管不了，尽量做好自己的事情，应对好日常生活和工作中的小危机，保护好自己以及自己的家人和朋友，独立寒秋，笑对寒冬，尽人事而听天命，大叫一声：&lt;/p&gt;
&lt;p&gt;该来的都来吧，我不怕！&lt;/p&gt;</description><comments></comments><guid>http://blog.cechina.cn/linkman/154429/message.aspx</guid><category>心情日志 情感人生</category><author></author></item><item><title>实时数据库的压缩率是怎么算出来的？</title><pubDate>Tue, 11 Nov 2008 22:39:12 GMT</pubDate><link>http://blog.cechina.cn/linkman/152516/message.aspx</link><description>&lt;p&gt;各个实时数据库厂家，都会在自己产品的宣传手册或说明书中，标明自己的压缩率能达到多少多少，或是“10:1”或是“20:1”，这些数字是怎么算出来的呢？&lt;/p&gt;
&lt;p&gt;标准答案是：没法算出来。&lt;/p&gt;
&lt;p&gt;压缩率的表示方法“N:1”，隐含了两个概念：参照物和测试环境。也就是说，在某种测试环境下，保存同样的数据，实时数据库可以达到参照产品的1/N。&lt;/p&gt;
&lt;p&gt;这里的参照物有两种可能性，可以是压缩之前的原始数据，也可以是另一种典型的存贮系统，比如关系数据库。这里的测试环境，应该是某种人为约定的标准输入。关键的问题是，我们能找到一种能近似模拟工控设备数据源的标准输入吗？如果不能找到合适的测试数据，那些测试结果又有多大的价值呢？&lt;/p&gt;
&lt;p&gt;实时数据库应用在过程控制及相关行业，在这个领域中，数据具有如下特征：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;最常见的数据是模拟量，也有一部分开关量； 
&lt;li&gt;数据中只有一小部分值经常发生改变，很多开关量常期不变化； 
&lt;li&gt;数据的变化具有一定波形规律； 
&lt;li&gt;很多数值都具有慢变化的特征；&amp;nbsp; 
&lt;li&gt;数值变化与时间变化具有共同变化特性；&amp;nbsp; 
&lt;li&gt;用户在一定范围内，能够允许数据的精度损失； &lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;我们能找到一组模拟以上特性的测试数据吗？聪明的观众肯定会自然地想到，可以用正弦曲线来模拟。只要测得针对正弦曲线的数据压缩率，就能定性（但不能定量）地判断出某实时数据库的大体数据压缩性能。&lt;/p&gt;
&lt;p&gt;可是，即便采用正弦曲线来模拟，还需要考虑很多其它因素。&lt;/p&gt;
&lt;p&gt;A、取样密度&lt;br&gt;对于同一条正弦曲线，比如1分钟变化一个周波，如果取样密度不一样，所得到的取样点数是不一样的。如果每秒钟取一个点，可以取得60个点，如果每0.1秒取一个点，可以取得600个点，再极端一点，如果1毫秒取一个点，可以取得60000个点。我们假定可以用一些特征点来描述该曲线，则取样密度越大，数据冗余度越高，数据压缩率就越高。如果某实时数据库产品宣称自己的数据压缩率为1000:1，你也不要认为他在吹牛，他也许就是对以毫秒为单位取样的1分钟变化一个周波的数据进行压缩呢。&lt;/p&gt;
&lt;p&gt;B、数据精度&lt;br&gt;保存一个双精度数比保存一个单精度数所需要的空间肯定要大。但在很多过程控制应用中，单精度数完全足够了。&lt;/p&gt;
&lt;p&gt;C、数据范围&lt;br&gt;数据范围可能影响数据精度。&lt;/p&gt;
&lt;p&gt;C、数据失真率&lt;br&gt;如果用户不允许任何失真，那就是无损压缩。但事实上，工控行业就是一个不可能完全不失真的行业（详见我的博文《关于变位压缩的讨论》）。&lt;/p&gt;
&lt;p&gt;聪明的观众看到这儿，肯定就会说，那好办，制定一个统一的标准，以1秒钟作为取样密度，取单精度数，以1分钟变化一个周波，数据范围为-100至100，失真率设为0.5%，将各个实时数据库产品都运行起来，看看各个实时数据库厂家的数据压缩率到底是一个什么样的值。&lt;/p&gt;
&lt;p&gt;这个方法确实可行，可是，会有一些实时数据库厂家站出来说，只有这些还不够，还要考虑以下因素：&lt;/p&gt;
&lt;p&gt;A、时间精度&lt;br&gt;大家部实时数据库支持精确到毫秒，但部分厂家在这上面打起了节省空间的算盘，只精确到5毫秒，或只精确到100毫秒，并很严正地宣告，在常规实时数据库应用中，精确到毫秒完全没有意义。&lt;/p&gt;
&lt;p&gt;B、测点数&lt;br&gt;有一些实时数据库对多个测点的数据压缩与对单个测点的数据压缩，效果是有区别的（这个地方我卖个关子，有谁能猜得出来吗？）&lt;/p&gt;
&lt;p&gt;C、测试时间&lt;br&gt;大部分实时数据库为了减少磁盘读写时间，对磁盘空间都是预分配的，系统初始化后，就预先申请了一大块磁盘空间，你怎么测试它保存数据花了多少空间呢？&lt;/p&gt;
&lt;p&gt;聪明的观众会继续聪明地说，再加约束条件，所有的时间精确到1毫秒，统一测试1万点，统一运行一个月，现在总可以了吧。&lt;/p&gt;
&lt;p&gt;差不多了（还有一些其它因素，就不再罗列，否则有人会说我是唐僧），如果按照这个标准来测，呵呵，大家会发现，每一家实时数据库的测试结果都比他们的宣传要低几倍。&lt;/p&gt;
&lt;p&gt;但这些实时数据库厂家也有理由，这种测试本来就不能完全模拟工控现实情况呀，工控现场有开关量，有整型量，还有个别字符串量，还存在很多大部分时间不变化的量，这些因素，是要考虑进去呀。&lt;/p&gt;
&lt;p&gt;OK，这么多理由，那你告诉我你的数字怎么来的吧。他们会这么答复：我们是从多个典型工程的多年对比数据中统计而来的，这些数据，如果用关系数据库来存贮，需要比实时数据库30倍的空间（PI是这么回答的）。&lt;/p&gt;
&lt;p&gt;有实验报告吗？没有！&lt;/p&gt;</description><comments></comments><guid>http://blog.cechina.cn/linkman/152516/message.aspx</guid><category>实时数据库 工控软件</category><author></author></item><item><title>在“2008远程自动化高峰论坛”演讲PPT之解说版（三）</title><pubDate>Sun, 09 Nov 2008 20:12:39 GMT</pubDate><link>http://blog.cechina.cn/linkman/151888/message.aspx</link><description>&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; mso-outline-level: 1"&gt;&lt;b&gt;&lt;span lang="EN-US" style="FONT-FAMILY: 黑体"&gt;PPT&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="FONT-FAMILY: 黑体"&gt;：&lt;span lang="EN-US"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoListParagraph" style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; mso-char-indent-count: 0; mso-list: l1 level2 lfo1"&gt;&lt;b style="mso-bidi-font-weight: normal"&gt;&lt;span lang="EN-US" style="mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font face="Calibri"&gt;1.1.&lt;/font&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-weight: bold"&gt;对实时数据库的四个误解&lt;/span&gt;&lt;span style="mso-bidi-font-weight: bold"&gt;&lt;font face="Calibri"&gt; &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraph" style="MARGIN: 0cm 0cm 0pt 39pt; TEXT-INDENT: -21pt; mso-char-indent-count: 0; mso-list: l0 level1 lfo2"&gt;&lt;span lang="EN-US" style="FONT-FAMILY: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings; mso-bidi-font-weight: bold"&gt;&lt;span style="mso-list: Ignore"&gt;l&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-weight: bold"&gt;误解&lt;/span&gt;&lt;span lang="EN-US" style="mso-bidi-font-weight: bold"&gt;&lt;font face="Calibri"&gt;1&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-weight: bold"&gt;：实时数据库与关系数据库的功能类似，只是处理速度更快；&lt;/span&gt;&lt;span style="mso-bidi-font-weight: bold"&gt;&lt;font face="Calibri"&gt; &lt;span lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraph" style="MARGIN: 0cm 0cm 0pt 39pt; TEXT-INDENT: -21pt; mso-char-indent-count: 0; mso-list: l0 level1 lfo2"&gt;&lt;span lang="EN-US" style="FONT-FAMILY: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings; mso-bidi-font-weight: bold"&gt;&lt;span style="mso-list: Ignore"&gt;l&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-weight: bold"&gt;误解&lt;/span&gt;&lt;span lang="EN-US" style="mso-bidi-font-weight: bold"&gt;&lt;font face="Calibri"&gt;2&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-weight: bold"&gt;：实时数据库只处理实时数据，不处理历史数据；&lt;/span&gt;&lt;span lang="EN-US" style="mso-bidi-font-weight: bold"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraph" style="MARGIN: 0cm 0cm 0pt 39pt; TEXT-INDENT: -21pt; mso-char-indent-count: 0; mso-list: l0 level1 lfo2"&gt;&lt;span lang="EN-US" style="FONT-FAMILY: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings; mso-bidi-font-weight: bold"&gt;&lt;span style="mso-list: Ignore"&gt;l&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-weight: bold"&gt;误解&lt;/span&gt;&lt;span lang="EN-US" style="mso-bidi-font-weight: bold"&gt;&lt;font face="Calibri"&gt;3&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-weight: bold"&gt;：实时数据库就是内存数据库；&lt;/span&gt;&lt;span style="mso-bidi-font-weight: bold"&gt;&lt;font face="Calibri"&gt; &lt;span lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraph" style="MARGIN: 0cm 0cm 0pt 39pt; TEXT-INDENT: -21pt; mso-char-indent-count: 0; mso-list: l0 level1 lfo2"&gt;&lt;span lang="EN-US" style="FONT-FAMILY: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings; mso-bidi-font-weight: bold"&gt;&lt;span style="mso-list: Ignore"&gt;l&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-weight: bold"&gt;误解&lt;/span&gt;&lt;span lang="EN-US" style="mso-bidi-font-weight: bold"&gt;&lt;font face="Calibri"&gt;4&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-weight: bold"&gt;：实时数据库只能应用在厂一级的管控一体化系统中；&lt;/span&gt;&lt;span style="mso-bidi-font-weight: bold"&gt;&lt;font face="Calibri"&gt; &lt;span lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;b&gt;&lt;span style="FONT-FAMILY: 黑体"&gt;解说：&lt;span lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 18pt"&gt;&lt;span style="COLOR: #0070c0; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-weight: bold"&gt;这里专门用一章的篇幅来澄清对业内对实时数据库的几点误解，是因为平常在与客户的交流过程中，发现很多客户都会有类似的误解。&lt;/span&gt;&lt;span lang="EN-US" style="COLOR: #0070c0; mso-bidi-font-weight: bold"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 18pt"&gt;&lt;b&gt;&lt;span style="COLOR: #0070c0; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin"&gt;误解&lt;/span&gt;&lt;span lang="EN-US" style="COLOR: #0070c0"&gt;&lt;font face="Calibri"&gt;1&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="COLOR: #0070c0; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin"&gt;：实时数据库与关系数据库的功能类似，只是处理速度更快；&lt;/span&gt;&lt;span lang="EN-US" style="COLOR: #0070c0"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 18pt"&gt;&lt;span style="COLOR: #0070c0; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-weight: bold"&gt;上一节中，专门将实时数据库与关系数据库进行了对比，这种对比的目的，是为了让大家能够更好地理解实时数据库，而不是说，实时数据库就是速度更快的关系数据库，事实上，实时数据库与关系数据库之间并没有必然的联系，两者的发展历程也各不相同。&lt;/span&gt;&lt;span lang="EN-US" style="COLOR: #0070c0; mso-bidi-font-weight: bold"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 18pt"&gt;&lt;span style="COLOR: #0070c0; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-weight: bold"&gt;经常有客户在使用我们的实时数据库之后，很自然地提出这个问题：如果你们的实时数据库也有关系数据库那种复杂而灵活的表结构和表关系，能支持用户按照与关系数据库类似的方法进行操作，那该多好呀。&lt;/span&gt;&lt;span lang="EN-US" style="COLOR: #0070c0; mso-bidi-font-weight: bold"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 18pt"&gt;&lt;span style="COLOR: #0070c0; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-weight: bold"&gt;我们不能责难用户的无知，他们只是想要得到一个满意的产品，但是，要能达到这个目标，还是比较困难，我们可以反向思维，如果真有一种方法，即能与常规关系数据库一样使用，速度又快，那&lt;/span&gt;&lt;span lang="EN-US" style="COLOR: #0070c0; mso-bidi-font-weight: bold"&gt;&lt;font face="Calibri"&gt;ORACLE&lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR: #0070c0; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-weight: bold"&gt;、&lt;/span&gt;&lt;span lang="EN-US" style="COLOR: #0070c0; mso-bidi-font-weight: bold"&gt;&lt;font face="Calibri"&gt;SQL SERVER&lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR: #0070c0; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-weight: bold"&gt;等产品早就将自己的运行速度提得更快而不需要使用实时数据库了。&lt;/span&gt;&lt;span lang="EN-US" style="COLOR: #0070c0; mso-bidi-font-weight: bold"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 18pt"&gt;&lt;span style="COLOR: #0070c0; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-weight: bold"&gt;事实上，在很多大型实时数据库的应用中，都是将&lt;a name="OLE"_LINK4&gt;&lt;/a&gt;&lt;a name="OLE"_LINK3&gt;&lt;span style="mso-bookmark: OLE_LINK4"&gt;实时数据库与关系数据库&lt;/span&gt;&lt;/a&gt;混合使用的，以便发挥各自的优势而避免各自的不足。有关这方面的内容，详见我的博文《实时数据库与关系数据库的混合使用》。而且，现在越来越多的实时数据库（包括我们），也在考虑在实时数据库中加入有限的关系数据库的特性，只是，不管如何改进，实时数据库就是实时数据库，很可能一个实时数据库加入了复杂的关系数据库之后，就便成了一个性能平庸的关系数据库，而失去了它本来的存在意义了。&lt;/span&gt;&lt;span lang="EN-US" style="COLOR: #0070c0; mso-bidi-font-weight: bold"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 18pt"&gt;&lt;span style="COLOR: #0070c0; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-weight: bold"&gt;相对于关系数据库，实时数据库只有简单的表结构，且不能加入用户自定义的表结构（新一代的实时数据库有限地支持此功能）如下图所示：&lt;/span&gt;&lt;span lang="EN-US" style="COLOR: #0070c0; mso-bidi-font-weight: bold"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: center" align="center"&gt;&lt;span lang="EN-US"&gt;&lt;?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /&gt;&lt;v:shapetype id=_x0000_t75 stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"&gt;&lt;v:stroke joinstyle="miter"&gt;&lt;/v:stroke&gt;&lt;v:formulas&gt;&lt;v:f eqn="if lineDrawn pixelLineWidth 0"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum @0 1 0"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum 0 0 @1"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @2 1 2"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @3 21600 pixelWidth"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @3 21600 pixelHeight"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum @0 0 1"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @6 1 2"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @7 21600 pixelWidth"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum @8 21600 0"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @7 21600 pixelHeight"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum @10 21600 0"&gt;&lt;/v:f&gt;&lt;/v:formulas&gt;&lt;v:path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"&gt;&lt;/v:path&gt;&lt;o:lock aspectratio="t" v:ext="edit"&gt;&lt;/o:lock&gt;&lt;/v:shapetype&gt;&lt;v:shape id=_x0000_i1025 style="WIDTH: 269.25pt; HEIGHT: 229.5pt" o:ole="" type="#_x0000_t75"&gt;&lt;v:imagedata o:title="" src="file:///C:\DOCUME~1\admin\LOCALS~1\Temp\msohtmlclip1\01\clip_image001.emz"&gt;&lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;span style="COLOR: #0070c0; mso-bidi-font-weight: bold"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 18pt"&gt;&lt;b&gt;&lt;span style="COLOR: #0070c0; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin"&gt;误解&lt;/span&gt;&lt;span lang="EN-US" style="COLOR: #0070c0"&gt;&lt;font face="Calibri"&gt;2&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="COLOR: #0070c0; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin"&gt;：实时数据库只处理实时数据，不处理历史数据；&lt;/span&gt;&lt;span lang="EN-US" style="COLOR: #0070c0"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 18pt"&gt;&lt;span style="COLOR: #0070c0; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-weight: bold"&gt;实时数据库这个名称，本来就具有某种让用户误会的可能，用户一听说实时数据库，很自然地会认为，实时数据库就应该只处理实时数据，不处理历史数据，如果命名为“实时历史数据库”或“工业库”，效果都比实时数据库这个名称更加好，意义更加准确，只是这个行业的标杆产品&lt;/span&gt;&lt;span lang="EN-US" style="COLOR: #0070c0; mso-bidi-font-weight: bold"&gt;&lt;font face="Calibri"&gt;PI&lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR: #0070c0; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-weight: bold"&gt;，以及其它国外产品都是这么命名的，经过十几年的流传，也就约定俗成了，关于这个误解的详细说明，请见我的博文《数据库分类》和《此实时数据库非彼实时数据库》，在此不再多说。&lt;/span&gt;&lt;span lang="EN-US" style="COLOR: #0070c0; mso-bidi-font-weight: bold"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 18pt"&gt;&lt;b&gt;&lt;span style="COLOR: #0070c0; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin"&gt;误解&lt;/span&gt;&lt;span lang="EN-US" style="COLOR: #0070c0"&gt;&lt;font face="Calibri"&gt;3&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="COLOR: #0070c0; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin"&gt;：实时数据库就是内存数据库；&lt;/span&gt;&lt;span lang="EN-US" style="COLOR: #0070c0"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 18pt"&gt;&lt;span style="COLOR: #0070c0; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-weight: bold"&gt;实时数据库是实时数据库，内存数据库是内存数据库，这两者是完全不一样的产品，详见我的博文《关系数据库、内存数据库、实时数据库的简单比较》，只是某些内存数据库产品，例如&lt;/span&gt;&lt;span lang="EN-US" style="COLOR: #0070c0; mso-bidi-font-weight: bold"&gt;&lt;font face="Calibri"&gt;eXtremeDB&lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR: #0070c0; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-weight: bold"&gt;号称自己是实时数据库，还有某些电力行业的专用内存数据库也号称自己是实时数据库，于是，很多不太明白具体情况的客户被误导了。&lt;/span&gt;&lt;span lang="EN-US" style="COLOR: #0070c0; mso-bidi-font-weight: bold"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 18pt"&gt;&lt;b&gt;&lt;span style="COLOR: #0070c0; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin"&gt;误解&lt;/span&gt;&lt;span lang="EN-US" style="COLOR: #0070c0"&gt;&lt;font face="Calibri"&gt;4&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="COLOR: #0070c0; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin"&gt;：实时数据库只能应用在厂一级的管控一体化系统中；&lt;/span&gt;&lt;span lang="EN-US" style="COLOR: #0070c0"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 18pt"&gt;&lt;span style="COLOR: #0070c0; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-weight: bold"&gt;教科书或许多产品的宣传手册中，都宣称实时数据库是&lt;/span&gt;&lt;span lang="EN-US" style="COLOR: #0070c0; mso-bidi-font-weight: bold"&gt;&lt;font face="Calibri"&gt;MES&lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR: #0070c0; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-weight: bold"&gt;的基石，是专门应用在厂一级的管控一体化系统中，作为厂级生产过程数据的中心，于是，很多用户都认为，实时数据库只能应用在这个范围，其实，很多行业，生产和管理的界线并不是特别分明，另外，实时数据库也应用到很多非厂级监控领域，比如，此次演讲，我准备演讲的关于实时数据库在远程自动化领域的应用，包括远程监控，远程调度、远程设备维护、移动设备监控等，并不属于厂级管控一体化系统，而更多地属于&lt;/span&gt;&lt;span lang="EN-US" style="COLOR: #0070c0; mso-bidi-font-weight: bold"&gt;&lt;font face="Calibri"&gt;SCADA&lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR: #0070c0; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-weight: bold"&gt;范围。&lt;/span&gt;&lt;span lang="EN-US" style="COLOR: #0070c0; mso-bidi-font-weight: bold"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 18pt"&gt;&lt;span style="COLOR: #0070c0; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-weight: bold"&gt;有关这方面的内容，详见我的博文《实时数据库与组态软件的市场定位之异同》。&lt;/span&gt;&lt;span lang="EN-US" style="COLOR: #0070c0; mso-bidi-font-weight: bold"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 18pt"&gt;&lt;span lang="EN-US" style="COLOR: #0070c0; mso-bidi-font-weight: bold"&gt;&lt;o:p&gt;&lt;font face="Calibri"&gt;&amp;nbsp;&lt;/font&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 18pt"&gt;&lt;span style="COLOR: #0070c0; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-weight: bold"&gt;用户对实时数据库的这些误解，很可能会让客户对实时数据库到底是什么，到底能干什么，到底能为他们解决什么问题，到底如何为他们解决问题等，会产生或多或少的疑惑，这对我们做实时数据库的厂家来说，不是一件好事，需要我们经常宣传实时数据库，多推广实时数据库。&lt;/span&gt;&lt;span lang="EN-US" style="COLOR: #0070c0; mso-bidi-font-weight: bold"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;</description><comments></comments><guid>http://blog.cechina.cn/linkman/151888/message.aspx</guid><category>实时数据库 工控软件</category><author></author></item><item><title>在“2008远程自动化高峰论坛”演讲PPT之解说版（二）</title><pubDate>Thu, 06 Nov 2008 23:38:58 GMT</pubDate><link>http://blog.cechina.cn/linkman/150627/message.aspx</link><description>&lt;span&gt;&lt;strong&gt;PPT：&lt;span lang="EN-US"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt; 
&lt;p class="MsoListParagraph" style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; mso-char-indent-count: 0; mso-list: l1 level1 lfo1"&gt;&lt;span lang="EN-US" style="mso-bidi-font-family: Calibri; mso-bidi-font-weight: bold; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-theme-font: minor-latin"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font face="Calibri"&gt;1.&lt;/font&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY: 宋体; mso-bidi-font-weight: bold; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin"&gt;实时数据库的基本概念&lt;/span&gt;&lt;span style="mso-bidi-font-weight: bold"&gt;&lt;font face="Calibri"&gt; &lt;span lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;a name="OLE"_LINK2&gt;&lt;/a&gt;&lt;a name="OLE"_LINK1&gt;&lt;span style="mso-bookmark: OLE_LINK2"&gt;&lt;b&gt;&lt;span style="FONT-FAMILY: 黑体"&gt;解说：&lt;span lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 18pt"&gt;&lt;span style="mso-bookmark: OLE_LINK1"&gt;&lt;span style="mso-bookmark: OLE_LINK2"&gt;&lt;span style="COLOR: #0070c0; FONT-FAMILY: 宋体; mso-bidi-font-weight: bold; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin"&gt;虽然演讲的主题及标题找在十多天以前便定下来了，但到底该在“&lt;/span&gt;&lt;span lang="EN-US" style="COLOR: #0070c0; mso-bidi-font-weight: bold"&gt;&lt;font face="Calibri"&gt;2008&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-bookmark: OLE_LINK1"&gt;&lt;span style="mso-bookmark: OLE_LINK2"&gt;&lt;span style="COLOR: #0070c0; FONT-FAMILY: 宋体; mso-bidi-font-weight: bold; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin"&gt;远程自动化高峰论坛”演讲些什么内容，这是一件令人难以决策的事情。既然是论坛，就应该淡化商业色彩，&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: #0070c0; FONT-FAMILY: 宋体; mso-bidi-font-weight: bold; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin"&gt;不要将演讲变成对公司实时数据库产品的发布宣传；既然是高峰论坛，所演讲的内容就应该有点高度和深度，不要将演讲变成对实时数据库的科普介绍和扫盲培训。&lt;/span&gt;&lt;span lang="EN-US" style="COLOR: #0070c0; mso-bidi-font-weight: bold"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 18pt"&gt;&lt;span style="COLOR: #0070c0; FONT-FAMILY: 宋体; mso-bidi-font-weight: bold; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin"&gt;如果要演讲组态软件或采集板卡，我不需要从最基本的概念说起，因为在工控行业这些产品应用得非常广泛，已达到耳熟能详的程度。但是，实时数据库在国内的工控行业被知晓和认可的程度还很不够。这次高峰论坛，虽然参加的人员是来自各行各业的专家，我还是想先介绍一些基本概念。&lt;/span&gt;&lt;span lang="EN-US" style="COLOR: #0070c0; mso-bidi-font-weight: bold"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;span lang="EN-US" style="mso-bidi-font-weight: bold"&gt;&lt;o:p&gt;&lt;font face="Calibri"&gt;&amp;nbsp;&lt;/font&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;b&gt;&lt;span lang="EN-US" style="FONT-FAMILY: 黑体"&gt;PPT&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="FONT-FAMILY: 黑体"&gt;：&lt;span lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoListParagraph" style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; mso-char-indent-count: 0; mso-list: l1 level2 lfo1"&gt;&lt;b style="mso-bidi-font-weight: normal"&gt;&lt;span lang="EN-US" style="mso-bidi-font-family: Calibri; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-theme-font: minor-latin"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font face="Calibri"&gt;1.1.&lt;/font&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="FONT-FAMILY: 宋体; mso-bidi-font-weight: bold; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin"&gt;实时数据库的功能&lt;/span&gt;&lt;span style="mso-bidi-font-weight: bold"&gt;&lt;font face="Calibri"&gt; &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 18pt"&gt;&lt;span style="FONT-FAMILY: 宋体; mso-bidi-font-weight: bold; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin"&gt;可以对海量数据进行：&lt;/span&gt;&lt;span style="mso-bidi-font-weight: bold"&gt;&lt;font face="Calibri"&gt; &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraph" style="MARGIN: 0cm 0cm 0pt 39pt; TEXT-INDENT: -21pt; mso-char-indent-count: 0; mso-list: l2 level1 lfo2"&gt;&lt;span lang="EN-US" style="FONT-FAMILY: Wingdings; mso-bidi-font-family: Wingdings; mso-fareast-font-family: Wingdings"&gt;&lt;span style="mso-list: Ignore"&gt;l&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY: 宋体; mso-bidi-font-weight: bold; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin"&gt;采集&lt;/span&gt;&lt;span style="mso-bidi-font-weight: bold"&gt;&lt;font face="Calibri"&gt; &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraph" style="MARGIN: 0cm 0cm 0pt 60pt; TEXT-INDENT: -21pt; mso-char-indent-count: 0; mso-list: l2 level2 lfo2"&gt;&lt;span lang="EN-US" style="FONT-FAMILY: Wingdings; mso-bidi-font-family: Wingdings; mso-fareast-font-family: Wingdings"&gt;&lt;span style="mso-list: Ignore"&gt;n&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY: 宋体; mso-bidi-font-weight: bold; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin"&gt;滤波&lt;/span&gt;&lt;span style="mso-bidi-font-weight: bold"&gt;&lt;font face="Calibri"&gt; &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraph" style="MARGIN: 0cm 0cm 0pt 39pt; TEXT-INDENT: -21pt; mso-char-indent-count: 0; mso-list: l2 level1 lfo2"&gt;&lt;span lang="EN-US" style="FONT-FAMILY: Wingdings; mso-bidi-font-family: Wingdings; mso-fareast-font-family: Wingdings"&gt;&lt;span style="mso-list: Ignore"&gt;l&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY: 宋体; mso-bidi-font-weight: bold; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin"&gt;处理&lt;/span&gt;&lt;span style="mso-bidi-font-weight: bold"&gt;&lt;font face="Calibri"&gt; &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraph" style="MARGIN: 0cm 0cm 0pt 60pt; TEXT-INDENT: -21pt; mso-char-indent-count: 0; mso-list: l2 level2 lfo2"&gt;&lt;span lang="EN-US" style="FONT-FAMILY: Wingdings; mso-bidi-font-family: Wingdings; mso-fareast-font-family: Wingdings"&gt;&lt;span style="mso-list: Ignore"&gt;n&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY: 宋体; mso-bidi-font-weight: bold; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin"&gt;量程变换&lt;/span&gt;&lt;span style="mso-bidi-font-weight: bold"&gt;&lt;font face="Calibri"&gt; &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraph" style="MARGIN: 0cm 0cm 0pt 60pt; TEXT-INDENT: -21pt; mso-char-indent-count: 0; mso-list: l2 level2 lfo2"&gt;&lt;span lang="EN-US" style="FONT-FAMILY: Wingdings; mso-bidi-font-family: Wingdings; mso-fareast-font-family: Wingdings"&gt;&lt;span style="mso-list: Ignore"&gt;n&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY: 宋体; mso-bidi-font-weight: bold; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin"&gt;报警处理&lt;/span&gt;&lt;span style="mso-bidi-font-weight: bold"&gt;&lt;font face="Calibri"&gt; &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraph" style="MARGIN: 0cm 0cm 0pt 60pt; TEXT-INDENT: -21pt; mso-char-indent-count: 0; mso-list: l2 level2 lfo2"&gt;&lt;span lang="EN-US" style="FONT-FAMILY: Wingdings; mso-bidi-font-family: Wingdings; mso-fareast-font-family: Wingdings"&gt;&lt;span style="mso-list: Ignore"&gt;n&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY: 宋体; mso-bidi-font-weight: bold; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin"&gt;事件通知&lt;/span&gt;&lt;span style="mso-bidi-font-weight: bold"&gt;&lt;font face="Calibri"&gt; &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraph" style="MARGIN: 0cm 0cm 0pt 39pt; TEXT-INDENT: -21pt; mso-char-indent-count: 0; mso-list: l2 level1 lfo2"&gt;&lt;span lang="EN-US" style="FONT-FAMILY: Wingdings; mso-bidi-font-family: Wingdings; mso-fareast-font-family: Wingdings"&gt;&lt;span style="mso-list: Ignore"&gt;l&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY: 宋体; mso-bidi-font-weight: bold; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin"&gt;压缩&lt;/span&gt;&lt;span style="mso-bidi-font-weight: bold"&gt;&lt;font face="Calibri"&gt; &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraph" style="MARGIN: 0cm 0cm 0pt 39pt; TEXT-INDENT: -21pt; mso-char-indent-count: 0; mso-list: l2 level1 lfo2"&gt;&lt;span lang="EN-US" style="FONT-FAMILY: Wingdings; mso-bidi-font-family: Wingdings; mso-fareast-font-family: Wingdings"&gt;&lt;span style="mso-list: Ignore"&gt;l&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY: 宋体; mso-bidi-font-weight: bold; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin"&gt;存贮&lt;/span&gt;&lt;span style="mso-bidi-font-weight: bold"&gt;&lt;font face="Calibri"&gt; &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraph" style="MARGIN: 0cm 0cm 0pt 39pt; TEXT-INDENT: -21pt; mso-char-indent-count: 0; mso-list: l2 level1 lfo2"&gt;&lt;span lang="EN-US" style="FONT-FAMILY: Wingdings; mso-bidi-font-family: Wingdings; mso-fareast-font-family: Wingdings"&gt;&lt;span style="mso-list: Ignore"&gt;l&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY: 宋体; mso-bidi-font-weight: bold; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin"&gt;计算&lt;/span&gt;&lt;span style="mso-bidi-font-weight: bold"&gt;&lt;font face="Calibri"&gt; &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraph" style="MARGIN: 0cm 0cm 0pt 39pt; TEXT-INDENT: -21pt; mso-char-indent-count: 0; mso-list: l2 level1 lfo2"&gt;&lt;span lang="EN-US" style="FONT-FAMILY: Wingdings; mso-bidi-font-family: Wingdings; mso-fareast-font-family: Wingdings"&gt;&lt;span style="mso-list: Ignore"&gt;l&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY: 宋体; mso-bidi-font-weight: bold; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin"&gt;查询&lt;/span&gt;&lt;span style="mso-bidi-font-weight: bold"&gt;&lt;font face="Calibri"&gt; &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraph" style="MARGIN: 0cm 0cm 0pt 39pt; TEXT-INDENT: -21pt; mso-char-indent-count: 0; mso-list: l2 level1 lfo2"&gt;&lt;span lang="EN-US" style="FONT-FAMILY: Wingdings; mso-bidi-font-family: Wingdings; mso-fareast-font-family: Wingdings"&gt;&lt;span style="mso-list: Ignore"&gt;l&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY: 宋体; mso-bidi-font-weight: bold; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin"&gt;统计&lt;/span&gt;&lt;span style="mso-bidi-font-weight: bold"&gt;&lt;font face="Calibri"&gt; &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;b&gt;&lt;span style="FONT-FAMILY: 黑体"&gt;解说：&lt;span lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 18pt"&gt;&lt;span style="COLOR: #0070c0; FONT-FAMILY: 宋体; mso-bidi-font-weight: bold; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin"&gt;因为面对的是非实时数据库专业的人员，而且，面对的受众大多是各行各业对监控软件熟悉的专家，我没有讲太多关于实时数据库理论方面的内容，只描述了实时数据库核心模块的所应该具备的基本功能。&lt;/span&gt;&lt;span lang="EN-US" style="COLOR: #0070c0; mso-bidi-font-weight: bold"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 18pt"&gt;&lt;span style="COLOR: #0070c0; FONT-FAMILY: 宋体; mso-bidi-font-weight: bold; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin"&gt;这个功能描述，可以对比一下组态软件能完成的功能，可以看到，实时数据库核心模块所能完成的功能，比组态软件多一个“压缩”；比组态软件小一个“界面展现”；另外，它们之间处理数据量有区别，实时数据库能处理“海量”数据。&lt;/span&gt;&lt;span lang="EN-US" style="COLOR: #0070c0; mso-bidi-font-weight: bold"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 18pt"&gt;&lt;span style="COLOR: #0070c0; FONT-FAMILY: 宋体; mso-bidi-font-weight: bold; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin"&gt;“海量”数据具体是一个什么概念呢？可以参考我的博文“实时数据库与组态软件市场定位之异同”，那里面提到了两者之间点数的大致区别。&lt;/span&gt;&lt;span lang="EN-US" style="COLOR: #0070c0; mso-bidi-font-weight: bold"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 18pt"&gt;&lt;span style="COLOR: #0070c0; FONT-FAMILY: 宋体; mso-bidi-font-weight: bold; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin"&gt;从上面的描述可以看到，实时数据库的功能其实很简单，就是完成对工业数据的采集、实时处理、存贮。实时数据库能与其它产品有区别且能有自己的市场定位在于，实时数据库能高性能地完成这几项简单的工作。实时数据库的核心价值在于它的性能，一个性能平庸而功能完备的实时数据库没有任何市场生存空间。&lt;/span&gt;&lt;span lang="EN-US" style="COLOR: #0070c0; mso-bidi-font-weight: bold"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;span lang="EN-US"&gt;&lt;o:p&gt;&lt;font face="Calibri"&gt;&amp;nbsp;&lt;/font&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;b&gt;&lt;span lang="EN-US" style="FONT-FAMILY: 黑体"&gt;PPT&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="FONT-FAMILY: 黑体"&gt;：&lt;span lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoListParagraph" style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; mso-char-indent-count: 0; mso-list: l1 level2 lfo1"&gt;&lt;b&gt;&lt;span lang="EN-US" style="mso-bidi-font-family: Calibri; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-theme-font: minor-latin"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font face="Calibri"&gt;1.2.&lt;/font&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="FONT-FAMILY: 宋体; mso-bidi-font-weight: bold; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin"&gt;与关系数据库的区别&lt;/span&gt;&lt;span style="mso-bidi-font-weight: bold"&gt;&lt;font face="Calibri"&gt; &lt;span lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 18pt"&gt;&lt;span style="FONT-FAMILY: 宋体; mso-bidi-font-weight: bold; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin"&gt;强化和弱化，通用和专用：&lt;/span&gt;&lt;span style="mso-bidi-font-weight: bold"&gt;&lt;font face="Calibri"&gt; &lt;span lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraph" style="MARGIN: 0cm 0cm 0pt 39pt; TEXT-INDENT: -21pt; mso-char-indent-count: 0; mso-list: l2 level1 lfo2"&gt;&lt;span lang="EN-US" style="FONT-FAMILY: Wingdings; mso-bidi-font-family: Wingdings; mso-bidi-font-weight: bold; mso-fareast-font-family: Wingdings"&gt;&lt;span style="mso-list: Ignore"&gt;l&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY: 宋体; mso-bidi-font-weight: bold; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin"&gt;表关系的复杂度&lt;/span&gt;&lt;span style="mso-bidi-font-weight: bold"&gt;&lt;font face="Calibri"&gt; &lt;span lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraph" style="MARGIN: 0cm 0cm 0pt 39pt; TEXT-INDENT: -21pt; mso-char-indent-count: 0; mso-list: l2 level1 lfo2"&gt;&lt;span lang="EN-US" style="FONT-FAMILY: Wingdings; mso-bidi-font-family: Wingdings; mso-bidi-font-weight: bold; mso-fareast-font-family: Wingdings"&gt;&lt;span style="mso-list: Ignore"&gt;l&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY: 宋体; mso-bidi-font-weight: bold; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin"&gt;测点数量&lt;/span&gt;&lt;span style="mso-bidi-font-weight: bold"&gt;&lt;font face="Calibri"&gt; &lt;span lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraph" style="MARGIN: 0cm 0cm 0pt 39pt; TEXT-INDENT: -21pt; mso-char-indent-count: 0; mso-list: l2 level1 lfo2"&gt;&lt;span lang="EN-US" style="FONT-FAMILY: Wingdings; mso-bidi-font-family: Wingdings; mso-bidi-font-weight: bold; mso-fareast-font-family: Wingdings"&gt;&lt;span style="mso-list: Ignore"&gt;l&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY: 宋体; mso-bidi-font-weight: bold; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin"&gt;数据插入速度&lt;/span&gt;&lt;span style="mso-bidi-font-weight: bold"&gt;&lt;font face="Calibri"&gt; &lt;span lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraph" style="MARGIN: 0cm 0cm 0pt 39pt; TEXT-INDENT: -21pt; mso-char-indent-count: 0; mso-list: l2 level1 lfo2"&gt;&lt;span lang="EN-US" style="FONT-FAMILY: Wingdings; mso-bidi-font-family: Wingdings; mso-bidi-font-weight: bold; mso-fareast-font-family: Wingdings"&gt;&lt;span style="mso-list: Ignore"&gt;l&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY: 宋体; mso-bidi-font-weight: bold; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin"&gt;数据查询速度&lt;/span&gt;&lt;span style="mso-bidi-font-weight: bold"&gt;&lt;font face="Calibri"&gt; &lt;span lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraph" style="MARGIN: 0cm 0cm 0pt 39pt; TEXT-INDENT: -21pt; mso-char-indent-count: 0; mso-list: l2 level1 lfo2"&gt;&lt;span lang="EN-US" style="FONT-FAMILY: Wingdings; mso-bidi-font-family: Wingdings; mso-bidi-font-weight: bold; mso-fareast-font-family: Wingdings"&gt;&lt;span style="mso-list: Ignore"&gt;l&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY: 宋体; mso-bidi-font-weight: bold; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin"&gt;保存的历史数据容量&lt;/span&gt;&lt;span style="mso-bidi-font-weight: bold"&gt;&lt;font face="Calibri"&gt; &lt;span lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraph" style="MARGIN: 0cm 0cm 0pt 39pt; TEXT-INDENT: -21pt; mso-char-indent-count: 0; mso-list: l2 level1 lfo2"&gt;&lt;span lang="EN-US" style="FONT-FAMILY: Wingdings; mso-bidi-font-family: Wingdings; mso-bidi-font-weight: bold; mso-fareast-font-family: Wingdings"&gt;&lt;span style="mso-list: Ignore"&gt;l&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY: 宋体; mso-bidi-font-weight: bold; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin"&gt;工业业务逻辑&lt;/span&gt;&lt;span style="mso-bidi-font-weight: bold"&gt;&lt;font face="Calibri"&gt; &lt;span lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;b&gt;&lt;span style="FONT-FAMILY: 黑体"&gt;解说：&lt;span lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 18pt"&gt;&lt;span style="COLOR: #0070c0; FONT-FAMILY: 宋体; mso-bidi-font-weight: bold; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin"&gt;几乎所有人都了解关系数据库，因此，如果能够以关系数据库的概念去理解实时数据库，并搞清他们之间的区别，即能对实时数据库有一个基本而大概的了解。&lt;/span&gt;&lt;span lang="EN-US" style="COLOR: #0070c0; mso-bidi-font-weight: bold"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 18pt"&gt;&lt;span style="COLOR: #0070c0; FONT-FAMILY: 宋体; mso-bidi-font-weight: bold; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin"&gt;关系数据库的发展历史非常长，它能以事务处理作为理论基础，以三范式作为构建基础，由小至大，以简单地逻辑能描述复杂的世界，因此，它具有通用而广泛的应用空间。但是，当由于性能等原因而不能使用关系数据库时，就需要使用其它存贮解决方案，实时数据库因此而产生。&lt;/span&gt;&lt;span lang="EN-US" style="COLOR: #0070c0; mso-bidi-font-weight: bold"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 18pt"&gt;&lt;span style="COLOR: #0070c0; FONT-FAMILY: 宋体; mso-bidi-font-weight: bold; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin"&gt;关系数据库的定位在于通用商业应用，如果我们将这个范围减少，针对某具体应用领域的应用特征对关系数据库作限定和优化，就可以形成各种不同的类数据库系统。实时数据库就是这样的类数据库系统。&lt;/span&gt;&lt;span lang="EN-US" style="COLOR: #0070c0; mso-bidi-font-weight: bold"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 18pt"&gt;&lt;span style="COLOR: #0070c0; FONT-FAMILY: 宋体; mso-bidi-font-weight: bold; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin"&gt;在工业相关的行业，生产过程数据是一种结构简单、关系简单的数据，它具有随时间而变化的简单特性，同时，它所产生的历史数据量非常大，针对这种应用，我们可以设计出非常简单的表结构，设计非常简单的表关系，并针对实时和历史数据的特点，设计出特定的处理功能，设计出特定的数据压缩算法以及存贮逻辑，就形成了实时数据库。&lt;/span&gt;&lt;span lang="EN-US" style="COLOR: #0070c0; mso-bidi-font-weight: bold"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 18pt"&gt;&lt;span style="COLOR: #0070c0; FONT-FAMILY: 宋体; mso-bidi-font-weight: bold; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin"&gt;上面解释了实时数据库所具有的“专用”的特性，也解释了实时数据库的强化和弱化的特性，同时解释了实时数据库的工业业务逻辑。&lt;/span&gt;&lt;span lang="EN-US" style="COLOR: #0070c0; mso-bidi-font-weight: bold"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 18pt"&gt;&lt;span style="COLOR: #0070c0; FONT-FAMILY: 宋体; mso-bidi-font-weight: bold; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin"&gt;这些弱化和专用的目的，就是为了针对工业过程数据的应用，达到如下几个目标：&lt;/span&gt;&lt;span lang="EN-US" style="COLOR: #0070c0; mso-bidi-font-weight: bold"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraph" style="MARGIN: 0cm 0cm 0pt 39pt; TEXT-INDENT: -21pt; mso-char-indent-count: 0; mso-list: l0 level1 lfo3"&gt;&lt;span lang="EN-US" style="COLOR: #0070c0; FONT-FAMILY: Wingdings; mso-bidi-font-family: Wingdings; mso-bidi-font-weight: bold; mso-fareast-font-family: Wingdings"&gt;&lt;span style="mso-list: Ignore"&gt;l&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: #0070c0; FONT-FAMILY: 宋体; mso-bidi-font-weight: bold; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin"&gt;能处理尽可能多的测点数量；&lt;/span&gt;&lt;span lang="EN-US" style="COLOR: #0070c0; mso-bidi-font-weight: bold"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraph" style="MARGIN: 0cm 0cm 0pt 39pt; TEXT-INDENT: -21pt; mso-char-indent-count: 0; mso-list: l0 level1 lfo3"&gt;&lt;span lang="EN-US" style="COLOR: #0070c0; FONT-FAMILY: Wingdings; mso-bidi-font-family: Wingdings; mso-bidi-font-weight: bold; mso-fareast-font-family: Wingdings"&gt;&lt;span style="mso-list: Ignore"&gt;l&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: #0070c0; FONT-FAMILY: 宋体; mso-bidi-font-weight: bold; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin"&gt;能以尽可能快的速度插入和查询数据；&lt;/span&gt;&lt;span lang="EN-US" style="COLOR: #0070c0; mso-bidi-font-weight: bold"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraph" style="MARGIN: 0cm 0cm 0pt 39pt; TEXT-INDENT: -21pt; mso-char-indent-count: 0; mso-list: l0 level1 lfo3"&gt;&lt;span lang="EN-US" style="COLOR: #0070c0; FONT-FAMILY: Wingdings; mso-bidi-font-family: Wingdings; mso-bidi-font-weight: bold; mso-fareast-font-family: Wingdings"&gt;&lt;span style="mso-list: Ignore"&gt;l&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: #0070c0; FONT-FAMILY: 宋体; mso-bidi-font-weight: bold; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin"&gt;能尽可能多尽可能快地保存历史数据。&lt;/span&gt;&lt;span lang="EN-US" style="COLOR: #0070c0; mso-bidi-font-weight: bold"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;</description><comments></comments><guid>http://blog.cechina.cn/linkman/150627/message.aspx</guid><category>实时数据库 工控软件</category><author></author></item><item><title>关系数据库、内存数据库、实时数据库的简单比较</title><pubDate>Tue, 04 Nov 2008 11:39:29 GMT</pubDate><link>http://blog.cechina.cn/linkman/149186/message.aspx</link><description>很多情况下，用户会将实时数据库与关系数据库混为一谈，实际上，这两类产品的设计理念及应用场合是完全不同的。&lt;span lang="EN-US"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt; 
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 24pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-char-indent-count: 2.0; mso-pagination: widow-orphan" align="left"&gt;&lt;span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-family: Arial; mso-font-kerning: 0pt"&gt;内存数据库就是将数据放在内存中直接操作的数据库，它利用内存的读写速度比磁盘快、内存是随机访问而磁盘是顺序访问这两个特点，将数据保存在内存中，在内存中模仿建立表结构和索引结构并针对内存特性进行优化，相比从磁盘上访问，内存数据库能够提高应用的性能。&lt;span lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 24pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-char-indent-count: 2.0; mso-pagination: widow-orphan" align="left"&gt;&lt;span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-family: Arial; mso-font-kerning: 0pt"&gt;而实时数据库不但利用了内存的特性，而且考虑到工控行业的应用特性，将关系数据库的表结构和表关系简化，以进行性能的优化，并针对工控行业的数据特性，对数据进行压缩处理。&lt;span lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 24pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-char-indent-count: 2.0; mso-pagination: widow-orphan" align="left"&gt;&lt;span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-family: Arial; mso-font-kerning: 0pt"&gt;关系数据库、实时数据库与内存数据库相比，有如下差别：&lt;span lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class="MsoNormalTable" style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse; mso-border-alt: solid black .5pt; mso-yfti-tbllook: 1184; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt" cellSpacing="0" cellPadding="0" border="1"&gt;
&lt;tbody&gt;
&lt;tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes"&gt;
&lt;td style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: black 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: black 1pt solid; WIDTH: 85.5pt; PADDING-TOP: 0cm; BORDER-BOTTOM: black 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid black .5pt" vAlign="top" width="114"&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 150%; TEXT-ALIGN: center; mso-pagination: widow-orphan" align="center"&gt;&lt;b style="mso-bidi-font-weight: normal"&gt;&lt;span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%; FONT-FAMILY: 黑体; mso-bidi-font-family: Arial; mso-font-kerning: 0pt; mso-hansi-font-family: 宋体"&gt;比较项目&lt;span lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: black 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 47.5pt; PADDING-TOP: 0cm; BORDER-BOTTOM: black 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid black .5pt; mso-border-left-alt: solid black .5pt" vAlign="top" width="63"&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 150%; TEXT-ALIGN: center; mso-pagination: widow-orphan" align="center"&gt;&lt;b style="mso-bidi-font-weight: normal"&gt;&lt;span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%; FONT-FAMILY: 黑体; mso-bidi-font-family: Arial; mso-font-kerning: 0pt; mso-hansi-font-family: 宋体"&gt;关系数据库&lt;span lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: black 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 49.6pt; PADDING-TOP: 0cm; BORDER-BOTTOM: black 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid black .5pt; mso-border-left-alt: solid black .5pt" vAlign="top" width="66"&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 150%; TEXT-ALIGN: center; mso-pagination: widow-orphan" align="center"&gt;&lt;b style="mso-bidi-font-weight: normal"&gt;&lt;span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%; FONT-FAMILY: 黑体; mso-bidi-font-family: Arial; mso-font-kerning: 0pt; mso-hansi-font-family: 宋体"&gt;内存数据库&lt;span lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: black 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 49.6pt; PADDING-TOP: 0cm; BORDER-BOTTOM: black 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid black .5pt; mso-border-left-alt: solid black .5pt" vAlign="top" width="66"&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 150%; TEXT-ALIGN: center; mso-pagination: widow-orphan" align="center"&gt;&lt;b style="mso-bidi-font-weight: normal"&gt;&lt;span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%; FONT-FAMILY: 黑体; mso-bidi-font-family: Arial; mso-font-kerning: 0pt; mso-hansi-font-family: 宋体"&gt;实时数据库&lt;span lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: black 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 193.9pt; PADDING-TOP: 0cm; BORDER-BOTTOM: black 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid black .5pt; mso-border-left-alt: solid black .5pt" vAlign="top" width="259"&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 150%; TEXT-ALIGN: center; mso-pagination: widow-orphan" align="center"&gt;&lt;b style="mso-bidi-font-weight: normal"&gt;&lt;span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%; FONT-FAMILY: 黑体; mso-bidi-font-family: Arial; mso-font-kerning: 0pt; mso-hansi-font-family: 宋体"&gt;说明&lt;span lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="mso-yfti-irow: 1"&gt;
&lt;td style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: black 1pt solid; WIDTH: 85.5pt; PADDING-TOP: 0cm; BORDER-BOTTOM: black 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid black .5pt; mso-border-top-alt: solid black .5pt" vAlign="top" width="114"&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left"&gt;&lt;span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-family: Arial; mso-font-kerning: 0pt"&gt;表结构&lt;span lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 47.5pt; PADDING-TOP: 0cm; BORDER-BOTTOM: black 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid black .5pt; mso-border-left-alt: solid black .5pt; mso-border-top-alt: solid black .5pt" vAlign="top" width="63"&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left"&gt;&lt;span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-family: Arial; mso-font-kerning: 0pt"&gt;完整&lt;span lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 49.6pt; PADDING-TOP: 0cm; BORDER-BOTTOM: black 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid black .5pt; mso-border-left-alt: solid black .5pt; mso-border-top-alt: solid black .5pt" vAlign="top" width="66"&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left"&gt;&lt;span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-family: Arial; mso-font-kerning: 0pt"&gt;完整&lt;span lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 49.6pt; PADDING-TOP: 0cm; BORDER-BOTTOM: black 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid black .5pt; mso-border-left-alt: solid black .5pt; mso-border-top-alt: solid black .5pt" vAlign="top" width="66"&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left"&gt;&lt;span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-family: Arial; mso-font-kerning: 0pt"&gt;简化&lt;span lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 193.9pt; PADDING-TOP: 0cm; BORDER-BOTTOM: black 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid black .5pt; mso-border-left-alt: solid black .5pt; mso-border-top-alt: solid black .5pt" vAlign="top" width="259"&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left"&gt;&lt;span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-family: Arial; mso-font-kerning: 0pt"&gt;实时数据库不能处理复杂的表关系，但在特定行业的应用中，比如工控监控软件中，不需要复杂的表关系&lt;span lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="mso-yfti-irow: 2"&gt;
&lt;td style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: black 1pt solid; WIDTH: 85.5pt; PADDING-TOP: 0cm; BORDER-BOTTOM: black 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid black .5pt; mso-border-top-alt: solid black .5pt" vAlign="top" width="114"&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left"&gt;&lt;span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-family: Arial; mso-font-kerning: 0pt"&gt;每秒读写速度&lt;span lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 47.5pt; PADDING-TOP: 0cm; BORDER-BOTTOM: black 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid black .5pt; mso-border-left-alt: solid black .5pt; mso-border-top-alt: solid black .5pt" vAlign="top" width="63"&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left"&gt;&lt;span lang="EN-US" style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-family: Arial; mso-font-kerning: 0pt"&gt;3000&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 49.6pt; PADDING-TOP: 0cm; BORDER-BOTTOM: black 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid black .5pt; mso-border-left-alt: solid black .5pt; mso-border-top-alt: solid black .5pt" vAlign="top" width="66"&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left"&gt;&lt;span lang="EN-US" style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-family: Arial; mso-font-kerning: 0pt"&gt;50000&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 49.6pt; PADDING-TOP: 0cm; BORDER-BOTTOM: black 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid black .5pt; mso-border-left-alt: solid black .5pt; mso-border-top-alt: solid black .5pt" vAlign="top" width="66"&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left"&gt;&lt;span lang="EN-US" style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-family: Arial; mso-font-kerning: 0pt"&gt;500000&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 193.9pt; PADDING-TOP: 0cm; BORDER-BOTTOM: black 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid black .5pt; mso-border-left-alt: solid black .5pt; mso-border-top-alt: solid black .5pt" vAlign="top" width="259"&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left"&gt;&lt;span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-family: Arial; mso-font-kerning: 0pt"&gt;内存实时数据库比关系数据库快&lt;span lang="EN-US"&gt;10&lt;/span&gt;倍左右，实时数据库比内存数据库快&lt;span lang="EN-US"&gt;10&lt;/span&gt;倍左右&lt;/span&gt;&lt;span lang="EN-US" style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="mso-yfti-irow: 3"&gt;
&lt;td style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: black 1pt solid; WIDTH: 85.5pt; PADDING-TOP: 0cm; BORDER-BOTTOM: black 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid black .5pt; mso-border-top-alt: solid black .5pt" vAlign="top" width="114"&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left"&gt;&lt;span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-family: Arial; mso-font-kerning: 0pt"&gt;历史数据压缩&lt;span lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 47.5pt; PADDING-TOP: 0cm; BORDER-BOTTOM: black 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid black .5pt; mso-border-left-alt: solid black .5pt; mso-border-top-alt: solid black .5pt" vAlign="top" width="63"&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left"&gt;&lt;span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-family: Arial; mso-font-kerning: 0pt"&gt;无&lt;span lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 49.6pt; PADDING-TOP: 0cm; BORDER-BOTTOM: black 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid black .5pt; mso-border-left-alt: solid black .5pt; mso-border-top-alt: solid black .5pt" vAlign="top" width="66"&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left"&gt;&lt;span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-family: Arial; mso-font-kerning: 0pt"&gt;无&lt;span lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 49.6pt; PADDING-TOP: 0cm; BORDER-BOTTOM: black 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid black .5pt; mso-border-left-alt: solid black .5pt; mso-border-top-alt: solid black .5pt" vAlign="top" width="66"&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left"&gt;&lt;span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-family: Arial; mso-font-kerning: 0pt"&gt;有&lt;span lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 193.9pt; PADDING-TOP: 0cm; BORDER-BOTTOM: black 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid black .5pt; mso-border-left-alt: solid black .5pt; mso-border-top-alt: solid black .5pt" vAlign="top" width="259"&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left"&gt;&lt;span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-family: Arial; mso-font-kerning: 0pt"&gt;实时数据库比内存数据库的压缩率能达到&lt;span lang="EN-US"&gt;20~40&lt;/span&gt;倍&lt;span lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="mso-yfti-irow: 4"&gt;
&lt;td style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: black 1pt solid; WIDTH: 85.5pt; PADDING-TOP: 0cm; BORDER-BOTTOM: black 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid black .5pt; mso-border-top-alt: solid black .5pt" vAlign="top" width="114"&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left"&gt;&lt;span lang="EN-US" style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-family: Arial; mso-font-kerning: 0pt"&gt;4G&lt;/span&gt;&lt;span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-family: Arial; mso-font-kerning: 0pt"&gt;空间能存贮&lt;span lang="EN-US"&gt;30&lt;/span&gt;万个测点的每秒变化一次的历史数据（不带索引）&lt;span lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 47.5pt; PADDING-TOP: 0cm; BORDER-BOTTOM: black 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid black .5pt; mso-border-left-alt: solid black .5pt; mso-border-top-alt: solid black .5pt" vAlign="top" width="63"&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left"&gt;&lt;span lang="EN-US" style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-family: Arial; mso-font-kerning: 0pt"&gt;5&lt;/span&gt;&lt;span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-family: Arial; mso-font-kerning: 0pt"&gt;小时&lt;span lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 49.6pt; PADDING-TOP: 0cm; BORDER-BOTTOM: black 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid black .5pt; mso-border-left-alt: solid black .5pt; mso-border-top-alt: solid black .5pt" vAlign="top" width="66"&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left"&gt;&lt;span lang="EN-US" style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-family: Arial; mso-font-kerning: 0pt"&gt;5&lt;/span&gt;&lt;span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-family: Arial; mso-font-kerning: 0pt"&gt;小时&lt;span lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 49.6pt; PADDING-TOP: 0cm; BORDER-BOTTOM: black 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid black .5pt; mso-border-left-alt: solid black .5pt; mso-border-top-alt: solid black .5pt" vAlign="top" width="66"&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left"&gt;&lt;span lang="EN-US" style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-family: Arial; mso-font-kerning: 0pt"&gt;8.5&lt;/span&gt;&lt;span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-family: Arial; mso-font-kerning: 0pt"&gt;天&lt;span lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 193.9pt; PADDING-TOP: 0cm; BORDER-BOTTOM: black 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid black .5pt; mso-border-left-alt: solid black .5pt; mso-border-top-alt: solid black .5pt" vAlign="top" width="259"&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left"&gt;&lt;span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-family: Arial; mso-font-kerning: 0pt"&gt;在&lt;span lang="EN-US"&gt;4G&lt;/span&gt;内存的情况下，在单服务器处理&lt;span lang="EN-US"&gt;30&lt;/span&gt;万点的情况下，内存数据库只能存贮&lt;span lang="EN-US"&gt;5&lt;/span&gt;小时以内的历史数据，在带索引时，只能保存&lt;span lang="EN-US"&gt;3&lt;/span&gt;小时以内的历史数据。&lt;span lang="EN-US"&gt;(&lt;/span&gt;详见我的博文《实时数据库存贮容量计算方法》&lt;span lang="EN-US"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="mso-yfti-irow: 5"&gt;
&lt;td style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: black 1pt solid; WIDTH: 85.5pt; PADDING-TOP: 0cm; BORDER-BOTTOM: black 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid black .5pt; mso-border-top-alt: solid black .5pt" vAlign="top" width="114"&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left"&gt;&lt;span lang="EN-US" style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-family: Arial; mso-font-kerning: 0pt"&gt;128G&lt;/span&gt;&lt;span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-family: Arial; mso-font-kerning: 0pt"&gt;空间能存贮&lt;span lang="EN-US"&gt;30&lt;/span&gt;万个测点的每秒变化一次的历史数据（不带索引）&lt;span lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 47.5pt; PADDING-TOP: 0cm; BORDER-BOTTOM: black 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid black .5pt; mso-border-left-alt: solid black .5pt; mso-border-top-alt: solid black .5pt" vAlign="top" width="63"&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left"&gt;&lt;span lang="EN-US" style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-family: Arial; mso-font-kerning: 0pt"&gt;7&lt;/span&gt;&lt;span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-family: Arial; mso-font-kerning: 0pt"&gt;天&lt;span lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 49.6pt; PADDING-TOP: 0cm; BORDER-BOTTOM: black 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid black .5pt; mso-border-left-alt: solid black .5pt; mso-border-top-alt: solid black .5pt" vAlign="top" width="66"&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left"&gt;&lt;span lang="EN-US" style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-family: Arial; mso-font-kerning: 0pt"&gt;7&lt;/span&gt;&lt;span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-family: Arial; mso-font-kerning: 0pt"&gt;天&lt;span lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 49.6pt; PADDING-TOP: 0cm; BORDER-BOTTOM: black 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid black .5pt; mso-border-left-alt: solid black .5pt; mso-border-top-alt: solid black .5pt" vAlign="top" width="66"&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left"&gt;&lt;span lang="EN-US" style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-family: Arial; mso-font-kerning: 0pt"&gt;269&lt;/span&gt;&lt;span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-family: Arial; mso-font-kerning: 0pt"&gt;天&lt;span lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 193.9pt; PADDING-TOP: 0cm; BORDER-BOTTOM: black 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid black .5pt; mso-border-left-alt: solid black .5pt; mso-border-top-alt: solid black .5pt" vAlign="top" width="259"&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left"&gt;&lt;span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-family: Arial; mso-font-kerning: 0pt"&gt;内存数据库有般用在电信行业，国内电信行业应用的最大项目也就使用了&lt;span lang="EN-US"&gt;90G&lt;/span&gt;内存，在&lt;span lang="EN-US"&gt;128G&lt;/span&gt;内存下，内存数据库也只能保存&lt;span lang="EN-US"&gt;7&lt;/span&gt;天的历史数据&lt;span lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="mso-yfti-irow: 6; mso-yfti-lastrow: yes"&gt;
&lt;td style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: black 1pt solid; WIDTH: 85.5pt; PADDING-TOP: 0cm; BORDER-BOTTOM: black 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid black .5pt; mso-border-top-alt: solid black .5pt" vAlign="top" width="114"&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left"&gt;&lt;span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-family: Arial; mso-font-kerning: 0pt"&gt;是否需要历史数据库&lt;span lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 47.5pt; PADDING-TOP: 0cm; BORDER-BOTTOM: black 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid black .5pt; mso-border-left-alt: solid black .5pt; mso-border-top-alt: solid black .5pt" vAlign="top" width="63"&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left"&gt;&lt;span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-family: Arial; mso-font-kerning: 0pt"&gt;不需要&lt;span lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 49.6pt; PADDING-TOP: 0cm; BORDER-BOTTOM: black 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid black .5pt; mso-border-left-alt: solid black .5pt; mso-border-top-alt: solid black .5pt" vAlign="top" width="66"&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left"&gt;&lt;span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-family: Arial; mso-font-kerning: 0pt"&gt;需要&lt;span lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 49.6pt; PADDING-TOP: 0cm; BORDER-BOTTOM: black 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid black .5pt; mso-border-left-alt: solid black .5pt; mso-border-top-alt: solid black .5pt" vAlign="top" width="66"&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left"&gt;&lt;span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-family: Arial; mso-font-kerning: 0pt"&gt;不需要&lt;span lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 193.9pt; PADDING-TOP: 0cm; BORDER-BOTTOM: black 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid black .5pt; mso-border-left-alt: solid black .5pt; mso-border-top-alt: solid black .5pt" vAlign="top" width="259"&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left"&gt;&lt;span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-family: Arial; mso-font-kerning: 0pt"&gt;内存数据库还需要配套使用历史数据库，且历史数据库同样存在不能压缩、不能保存长时间海量历史数据的问题&lt;span lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 24pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-char-indent-count: 2.0; mso-pagination: widow-orphan" align="left"&gt;&lt;span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-family: Arial; mso-font-kerning: 0pt"&gt;从以上的表格可以看出，内存数据库与关系数据库相比，速度快&lt;span lang="EN-US"&gt;10-20&lt;/span&gt;倍左右，且具有与关系数据库类似的完整表结构，因此在电信业处理大量实时事务业务时经常用到，它也可以应用在工控行业，比如，在很多电力行业&lt;span lang="EN-US"&gt;SCADA&lt;/span&gt;软件中，都包含了一个小型的内存数据库系统（但不是真正意义上的内存数据库），但是，在超大型&lt;span lang="EN-US"&gt;SCADA&lt;/span&gt;软件中，它仍不能满足需求，因为它性能比实时数据库慢&lt;span lang="EN-US"&gt;10&lt;/span&gt;倍，且不能解决历史数据存贮的问题，还存在因为掉电导致大量数据丢失的风险。&lt;/span&gt;&lt;span lang="EN-US" style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 24pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-char-indent-count: 2.0; mso-pagination: widow-orphan" align="left"&gt;&lt;span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-family: Arial; mso-font-kerning: 0pt"&gt;以上的比较，指标并不全面，也并不是说，实时数据库一定比关系数据库和内存数据库好，只能说，需要针对不同应用的不同需求，做出综合决策，选择最适合自己需要的数据库产品。&lt;span lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 24pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-char-indent-count: 2.0; mso-pagination: widow-orphan" align="left"&gt;&lt;span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-family: Arial; mso-font-kerning: 0pt"&gt;最后，列举一些典型的内存数据库产品：&lt;span lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 24pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-char-indent-count: 2.0; mso-pagination: widow-orphan" align="left"&gt;&lt;span lang="EN-US" style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-family: Arial; mso-font-kerning: 0pt"&gt;■ Oracle TimesTen &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 24pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-char-indent-count: 2.0; mso-pagination: widow-orphan" align="left"&gt;&lt;span lang="EN-US" style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-family: Arial; mso-font-kerning: 0pt"&gt;Oracle TimesTen&lt;/span&gt;&lt;span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-family: Arial; mso-font-kerning: 0pt"&gt;是&lt;span lang="EN-US"&gt;Oracle&lt;/span&gt;从&lt;span lang="EN-US"&gt;TimesTen&lt;/span&gt;公司收购的一个内存优化的关系数据库，它为应用程序提供了实时企业和行业（例如电信、资本市场和国防）所需的即时响应性和非常高的吞吐量。&lt;span lang="EN-US"&gt;Oracle TimesTen&lt;/span&gt;可作为高速缓存或嵌入式数据库被部署在应用程序层中，它利用标准的&lt;span lang="EN-US"&gt; SQL &lt;/span&gt;接口对完全位于物理内存中的数据存储区进行操作。&lt;span lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 24pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-char-indent-count: 2.0; mso-pagination: widow-orphan" align="left"&gt;&lt;span lang="EN-US" style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-family: Arial; mso-font-kerning: 0pt"&gt;■ Altibase &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 24pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-char-indent-count: 2.0; mso-pagination: widow-orphan" align="left"&gt;&lt;span lang="EN-US" style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-family: Arial; mso-font-kerning: 0pt"&gt;Altibase&lt;/span&gt;&lt;span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-family: Arial; mso-font-kerning: 0pt"&gt;是一个在事务优先的环境中提供高性能和高可用性的软件解决方案。它提供高性能、容错能力和事务管理能力，特别适合通信、网上银行、证券交易、实时应用和嵌入式系统领域。&lt;span lang="EN-US"&gt;Altibase&lt;/span&gt;能够最大限度地发挥数据库服务系统的潜力，增强数据服务器的处理能力。&lt;span lang="EN-US"&gt;Altibase&lt;/span&gt;支持客户端&lt;span lang="EN-US"&gt;/&lt;/span&gt;服务器架构或嵌入式架构。其中客户端&lt;span lang="EN-US"&gt;/&lt;/span&gt;服务器架构非常适合一般的应用。而嵌入式架构将应用程序嵌入到数据库服务器，适合于有高时效要求的实时系统。 &lt;span lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 24pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-char-indent-count: 2.0; mso-pagination: widow-orphan" align="left"&gt;&lt;span lang="EN-US" style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-family: Arial; mso-font-kerning: 0pt"&gt;■ eXtremeDB &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 24pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-char-indent-count: 2.0; mso-pagination: widow-orphan" align="left"&gt;&lt;span lang="EN-US" style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-family: Arial; mso-font-kerning: 0pt"&gt;eXtremeDB&lt;/span&gt;&lt;span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-family: Arial; mso-font-kerning: 0pt"&gt;实时数据库是&lt;span lang="EN-US"&gt;McObject&lt;/span&gt;公司的一款特别为实时与嵌入式系统数据管理而设计的数据库，只有&lt;span lang="EN-US"&gt;50K&lt;/span&gt;到&lt;span lang="EN-US"&gt;130K&lt;/span&gt;的开销，速度达到微秒级。&lt;span lang="EN-US"&gt;eXtremeDB&lt;/span&gt;完全驻留在主内存中，不使用文件系统（包括内存盘）。&lt;span lang="EN-US"&gt;eXtremeDB&lt;/span&gt;采用了新的磁盘融合技术，将内存拓展到磁盘，将磁盘当做虚拟内存来用，实时性能保持微秒级的同时，数据管理量在&lt;span lang="EN-US"&gt;32BIT&lt;/span&gt;下能达到&lt;span lang="EN-US"&gt;20G&lt;/span&gt;。&lt;/span&gt;&lt;/p&gt;</description><comments></comments><guid>http://blog.cechina.cn/linkman/149186/message.aspx</guid><category>实时数据库 工控软件</category><author></author></item><item><title>在“2008远程自动化高峰论坛”演讲PPT之解说版（一）</title><pubDate>Sat, 01 Nov 2008 19:18:12 GMT</pubDate><link>http://blog.cechina.cn/linkman/148455/message.aspx</link><description>&lt;p&gt;10月29日，与公司同事一起参加了由控制工程组织的“2008远程自动化高峰论坛”，并在会议上作了“实时数据库在远程自动化中的应用”的演讲，自我感觉良好，只是进度没有控制好，后来时间不够了，很多想说的话没有说完，该讲的案例没有完全讲清，有点虎头蛇尾的感觉，给自己打80分吧。&lt;/p&gt;
&lt;p&gt;演讲一结束，我就有个想法，将此次演讲的PPT加上自己的解说放到博客上，让所有关心实时数据库的朋友共享。但是，这段时间工作太紧张了，这项任务一直没有进行，先在此占个位，作个预告，等紧张的工作告一段落后，再继续将此任务完成。&lt;/p&gt;
&lt;p&gt;下面是这次演讲的提纲：&lt;/p&gt;
&lt;p&gt;1.实时数据库的基本概念&lt;/p&gt;
&lt;p&gt;2.实时数据库在远程监控系统中的应用&lt;/p&gt;
&lt;p&gt;3.实时数据库在远程调度系统中的应用&lt;/p&gt;
&lt;p&gt;4.实时数据库在远程设备维护系统中的应用&lt;/p&gt;
&lt;p&gt;5.实时数据库在移动设备监控系统中的应用&lt;/p&gt;
&lt;p&gt;6.实时数据库在远程自动化应用的要点&lt;/p&gt;
&lt;p&gt;7.力控实时数据库pSpace5.0功能介绍&lt;/p&gt;
&lt;p&gt;我的解说也准备按此提纲展开，敬请期待......&lt;/p&gt;</description><comments></comments><guid>http://blog.cechina.cn/linkman/148455/message.aspx</guid><category>实时数据库 工控软件</category><author></author></item><item><title>关于单元测试的10点总结</title><pubDate>Tue, 28 Oct 2008 16:54:24 GMT</pubDate><link>http://blog.cechina.cn/linkman/146486/message.aspx</link><description>&lt;p&gt;在两年以前，我写了一系列关于单元测试的文章，希望在公司内部的产品开发过程中，引进完整的单元测试，当单元测试工作推动起来后，我便停止了这方面的写作。前几天，与公司不同部门的同事谈起单元测试，很有一些感触，因此，又动了写单元测试文章的想法。&lt;/p&gt;
&lt;p&gt;话题的起因是这样的，这位同事以及其他几位同位，正在全力开发一个全新的产品，团队人数不多，项目周期也不长，想在内部引入单元测试，因为觉得我部门单元测试的工作推动得不错，这位同事向我搬救兵，希望我部门给他支援一两个单元测试人员。问他打算如何推动单元测试工作，他的想法是，他和另一个核心开发人员全力编写系统，我支援的测试人员全力给他们做单元测试。&lt;/p&gt;
&lt;p&gt;我当时问了他几个问题：&lt;/p&gt;
&lt;p&gt;1、你们两个核心人员准备参与单元测试吗？&lt;/p&gt;
&lt;p&gt;回答：不准备参与。&lt;/p&gt;
&lt;p&gt;2、如果两个测试人员的测试速度跟不上两个核心人员的开发速度，怎么办？&lt;/p&gt;
&lt;p&gt;回答：只测主流程和基础模块，不测分支流程和上层模块（也是非界面）。&lt;/p&gt;
&lt;p&gt;3、测试人员如何理解拟测试的程序及模块？&lt;/p&gt;
&lt;p&gt;回答：核心开发人员给测试人员讲解模块的功能，由测试人员自我阅读理解。&lt;/p&gt;
&lt;p&gt;我当时这样回答那位同事：如果是这样，我建议你还是不要引入单元测试。&lt;/p&gt;
&lt;p&gt;这样回答，不是给那位同事拨冷水，也不是不愿意支援两个单元测试人员，这两年，我们团队在单元测试的过程中，尝到了太多酸甜苦辣。回想这两年以来的产品开发工作，在我的强力推动下，单元测试工作推动得不错，取得了一些成绩，也发现了很多以前没有发现的问题。在这里将一些感受写出来，算是两年单元测试的总结吧。&lt;/p&gt;
&lt;p&gt;总结1：如果项目团队的主要领导对单元测试的理论和技术不熟悉，一定不要引入单元测试。&lt;/p&gt;
&lt;p&gt;总结2：当项目的开发周期紧，开发人员的投入不多，一定不要引入单元测试。&lt;/p&gt;
&lt;p&gt;总结3：在项目的开发过程中，要只少有一位核心开发人员投入到单元测试，或者，每位核心开发人员至少要投入1/3的时间到自己所编程的单元测试中。&lt;/p&gt;
&lt;p&gt;总结4：单元测试是一项长期的系统性的工程，启动容易，长期坚持难，对单元测试如何能够长期适应项目的变动，是单元测试中最难处理的事情。&lt;/p&gt;
&lt;p&gt;总结5：当项目需求经常变化，或内核模块未达到一定的功能稳定期，不要贸然投入单元测试，否则，大量的单元测试工作会全部白做。&lt;/p&gt;
&lt;p&gt;总结6：如果单元测试对被测试代码不能够达到一定程度的测试覆盖度，不如不做单元测试。&lt;/p&gt;
&lt;p&gt;总结7：当代码的文档不全时，对单元测试人员的水平要求非常高，如果单元测试人员的水平不够，会编出很多无意义的单元测试用例。&lt;/p&gt;
&lt;p&gt;总结8：同水平的单元测试人员与开发人员的数量如果不能达到1:1，不要引入单元测试，要使单元测试发挥效果，单元测试人员与开发人员的数量最好达到或超过2:1。&lt;/p&gt;
&lt;p&gt;总结9：不要试图对第三方库、或历史遗留模块做单元测试；&lt;/p&gt;
&lt;p&gt;总结10：不要迷信单元测试所得出的系统稳定性指标，再严格单元测试也不能完全保证系统质量，需要与模块测试、接口测试、集成测试等一并保证系统质量。&lt;/p&gt;
&lt;p&gt;写了以上这些内容，并不是反对在项目中引入单元测试，只是希望那些对单元测试不太了解的团队，在是否要引入单元测试时，一定要慎重，否则，会发现投入了很多，产出却少得可怜。&lt;/p&gt;
&lt;p&gt;事实上，我们团队已经在项目中尝到了单元测试的甜头，我们也希望在单元测试方面做得更好，我相信，经历过这两年的酸甜苦辣，我们有信心在单元测试这条路上走得更远。&lt;/p&gt;</description><comments></comments><guid>http://blog.cechina.cn/linkman/146486/message.aspx</guid><category>编程技巧 工控软件</category><author></author></item><item><title>实时数据库与组态软件的市场定位之异同</title><pubDate>Thu, 16 Oct 2008 12:51:46 GMT</pubDate><link>http://blog.cechina.cn/linkman/139709/message.aspx</link><description>&lt;p&gt;本文所说的实时数据库，乃指工业实时/历史数据库，非内存数据库，亦非硬实时数据库。&lt;/p&gt;
&lt;p&gt;组态软件之概念，在工控领域可谓耳熟能详，很多客户已经认可组态软件，在工控领域中，选用合适的组态软件，可以减少投入成本，缩短项目周期、提高系统稳定性，减少失败风险。&lt;/p&gt;
&lt;p&gt;近五年来，随着管控一体化、MES（制造执行系统）、SIS（厂级监控系统）等概念或系统在很多行业的应用推广，实时数据库也开始走向工控领域。但是，相对而言，实时数据库的概念对用户而言，却还是有一些陌生，很多客户对实时数据库的概念、功能、产品定位、能解决的问题等，都不是非常清楚。&lt;/p&gt;
&lt;p&gt;实时数据库相对于组态软件和关系数据库，具有其特定的产品定位和市场定位，在与客户的接触过程中，发现一些客户对实时数据库的产品定位和市场定位存在一些不清楚的地方，希望能通过这篇文章简单地介绍一下这些区别。&lt;/p&gt;
&lt;p&gt;教科书告诉我们，设备一级和车间一级的监控系统应该选用组态软件，厂一级的监控系统或生产管理系统可以选用实时数据库，而管理信息系统或ERP（企业资源计划）就应该使用关系数据库。实时数据库定位为生产控制系统和企业经营管理之间的中间层。我们似乎可以按照这个模式去区分实时数据库、组态软件和关系数据库的市场定位，但事实上，这三者的界线是非常模糊的，不一定非此即彼，在一些特定行业，没有明显地三层区别，在项目中到底选择哪一种产品，需要很好的分析和判断。&lt;/p&gt;
&lt;p&gt;实时数据库的定位可以向上延伸至生产信息管理层，即管理软件范畴，也可以向下延伸至生产监控层，即监控软件范畴。本文章不讨论实时数据库与关系数据库的市场定位之差别（那是另一个话题），只讨论实时数据库与组态软件的市场定位之差别。&lt;/p&gt;
&lt;p&gt;在工业监控项目中，到底是该选用组态还是该选用实时数据库，虽然是具体问题具体分析，但是，还是存在一些普遍意义的准则。&lt;/p&gt;
&lt;p&gt;1. 工程总点数&lt;/p&gt;
&lt;p&gt;我们可以将用户工程按总点数分为三个级别：&lt;/p&gt;
&lt;p&gt;&amp;nbsp;2000点以下&amp;nbsp;&amp;nbsp;组态软件的市场&lt;br&gt;&amp;nbsp;2000点至5000点&amp;nbsp;&amp;nbsp;组态软件和实时数据库都可能被选择&lt;br&gt;&amp;nbsp;5000点以上&amp;nbsp;&amp;nbsp;实时数据库的市场&lt;/p&gt;
&lt;p&gt;可以说，在2000点以下的工程，除非特殊情况，用户一般只会选择组态软件，而在5000点以上，是实时数据库的重点市场，在这两个级别，用户可以很容易地想到该使用何种产品。选择的难点在于第二级：2000点至5000点。这就需要同时考虑以下几个准则。&lt;/p&gt;
&lt;p&gt;2.工程需保存的总点数&lt;/p&gt;
&lt;p&gt;我们可以将用户工程按需保存的点数分为三个级别：&lt;/p&gt;
&lt;p&gt;&amp;nbsp;1000点以下&amp;nbsp;&amp;nbsp;组态软件的不二选择&lt;br&gt;&amp;nbsp;1000点至3000点&amp;nbsp;&amp;nbsp;组态软件和实时数据库都可能被选择&lt;br&gt;&amp;nbsp;3000点以上&amp;nbsp;&amp;nbsp;重点选择实时数据库&lt;/p&gt;
&lt;p&gt;以下的准则，主要是在工程总点数在2000点至5000点、以及工程需保存的总点数1000点至3000点时的判断准则。&lt;/p&gt;
&lt;p&gt;3.数据的变化频率&lt;/p&gt;
&lt;p&gt;&amp;nbsp;5秒以上&amp;nbsp;&amp;nbsp;&amp;nbsp;选择组态软件&lt;br&gt;&amp;nbsp;1-5秒&amp;nbsp;&amp;nbsp;&amp;nbsp;组态软件和实时数据库都可能被选择&lt;br&gt;&amp;nbsp;1秒以内&amp;nbsp;&amp;nbsp;&amp;nbsp;重点选择实时数据库&lt;/p&gt;
&lt;p&gt;举个例子，在杭州湾跨海大桥的桥梁监控系统中，虽然工程总点数只有3000个，但数据的变化频率为10MS（这需要通过特定的接口方式批次采集数据），因此，客户选择了实时数据库而不是组态软件。&lt;/p&gt;
&lt;p&gt;4.历史数据的保存期限&lt;/p&gt;
&lt;p&gt;如果工程明确要求，工程的历史数据需要保存3年以上，甚至要保存10年以上，最好使用实时数据库。&lt;/p&gt;
&lt;p&gt;5.用户关心历史数据吗?&lt;/p&gt;
&lt;p&gt;如果工程中除了简单的报表和曲线之外，还有其它需求：历史数据建模、长期历史数据的趋势分析等，或者要对历史数据进行各种二次开发，最好使用实时数据库。&lt;/p&gt;
&lt;p&gt;6.项目偏重管理还是偏重监控&lt;/p&gt;
&lt;p&gt;该项目只是实现对设备进行监控，还是希望进行生产管理？判断的依据，可以从以下几个方面考虑：&lt;/p&gt;
&lt;p&gt;&amp;nbsp;使用该系统的用户是操作人员，还是管理人员？&lt;br&gt;&amp;nbsp;使用该系统，只是想监视生产现场的状态，还是想了解整体生产信息？&lt;br&gt;&amp;nbsp;准备在此系统之上建立MES或ERP系统吗？&amp;nbsp;&lt;/p&gt;
&lt;p&gt;7.该系统可能被扩展吗？&lt;/p&gt;
&lt;p&gt;如果系统在未来几年很可能扩展为一个很大的系统，为未来考虑，选择实时数据库是减少投资的好方案，举个例子，某城市供热项目，现在已建的供热站点只有10个，每个站点100个数据点，选用组态软件完全够了，但该城市在未来三年内，最终需建设150个供热站点，因此，他们还是选择了实时数据库。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;总结：除了应用在生产管理和生产调度系统之外，实时数据库也可以应用在中大型监控系统中，在监控系统应用市场中，实时数据库市场与组态软件市场一定的重叠度，在项目中到底是选择实时数据库还是组态软件，本文章只是提出了一些原则，具体情况，还是要具体分析的。&lt;/strong&gt;&lt;/p&gt;</description><comments></comments><guid>http://blog.cechina.cn/linkman/139709/message.aspx</guid><category>实时数据库 工控软件</category><author></author></item><item><title>实时数据库在大型远程移动监控系统中的应用要点（二）</title><pubDate>Mon, 13 Oct 2008 20:20:17 GMT</pubDate><link>http://blog.cechina.cn/linkman/137901/message.aspx</link><description>&lt;p&gt;这一章重点讨论在大型远程移动监控系统中网络方面需要处理的问题。&lt;/p&gt;
&lt;p&gt;随着移动设备数量的增加，需传输的数据量、对网络带宽的占用、单台服务器的负载等都会随之增长，在设计大型远程移动监控系统时，需要考虑增长的趋势以及增长对系统的影响，做出定量分析和定性判断，在必要时做出增加服务器、改造网络等系统重构决策，并要确保系统重构不对现有系统结构、软件架构产生冲击。&lt;/p&gt;
&lt;p&gt;对网络带宽的影响有如下因素：&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;单台移动设备单位时间内的数据上传量&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;假定每台移动设备需要传送的总量为100个，这些变量中，开关量和模拟量是各占一半，再考虑到大部分变量都是慢速变化量的特性，并在移动设备本地采用一些简单的数据压缩算法，每次需上传的数据量还可以更低。可以将每台移动设备每一分钟上传的数据量，控制在平均500-1K字节之间。 &lt;br&gt;&amp;#61548;&amp;nbsp;&lt;br&gt;&lt;strong&gt;数据中心与电信之间的网络带宽&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;GPRS理论带宽可达171.2Kbps，实际应用带宽大约在40~100Kbps；CDMA 1x理论带宽可达300Kb/s，目前的实际应用带宽大约在100Kb/s左右。在TCP/IP协议上，每一秒钟能够传输的数据量为3K-9K左右， 移动设备端不会出会通讯带宽瓶颈。但随着移动设备数量的增加，数据中心与电信之间则有可能出现带宽瓶颈。&lt;/p&gt;
&lt;p&gt;按照10000台移动设备计算，如果每台移动设备每一分钟传送的数据量为1K字节，则数据中心与电信之间的理论带宽为10000*1024*2*8/60=2.5Mbps，再考虑到GPRS网络的不稳定性，数据传输的时间不均匀性，可以将该带宽值*4倍，即在10000台移动设备的情况下，数据中心与电信之间的网络带宽应设计为10Mbps左右。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;单台服务器的处理性能&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;对于单台服务器的处理性能，需要考虑在操作系统下，单台服务器能够处理的最大连接数。单台服务器能够处理的最大连接数由以下几个因素决定（以linux为例）：&lt;/p&gt;
&lt;p&gt;A、Linux内核支持的最大socket连接数，现有linux默认支持的最大socket连接数为2048，但可以通过修改内核的方法调整该值；&lt;br&gt;&amp;#61550;&amp;nbsp;&lt;br&gt;B、服务器支持的最大内核信号量，该内核信号量用于网络连接处理、数据库访问等一系列多进程或多线程处理的数据同步。linux服务器版本设置的全系统支持的信号量虽然有上万个，但是分配给每个用户的数目一般为200-500之间，对于通讯服务器往往是不够的。可以通过修改内核信号量参数来适度增大该值；&lt;/p&gt;
&lt;p&gt;C、服务器内存及在合理的CPU负荷率情况下，能支持的最大连接数。&lt;/p&gt;
&lt;p&gt;以上对性能参数的分析，只有定性分析，没有定量分析，只能通过经验值进行调整。目前，一般的单台linux服务器能够支持的连接数为2000-4000个，业界也有通过调整内核、程序优化等手段，将单台linux服务器支持的连接数指标提高到20000个，但那样花费在linux内核调整、linux的TCP协议栈的程序修攺等方面所作的工作非常之大，在很多时侯是得不偿失的。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;为了使得大型远程移动监控系统能够在移动设备数量扩展的过程中，能够达到只增加服务器（最好能实现动态在线增加服务器）、不需要重构软件系统的目标，必要要在系统中引入支持负载均衡的多采集服务器群集。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;目前，业内通用的负载均衡方法有两类，一类是硬件解决方案，一类是软件解决方案。&lt;/p&gt;
&lt;p&gt;硬件解决方案主要是引入支持负载均衡的路由器或防火墙来实现，是直接在服务器和外部网络间安装负载均衡设备，这种设备我们通常称之为负载均衡器，由于专门的设备完成专门的任务，独立于操作系统，整体性能得到大量提高，加上多样化的负载均衡策略，智能化的流量管理，可达到最佳的负载均衡需求。&lt;/p&gt;
&lt;p&gt;负载均衡器有多种多样的形式，除了作为独立意义上的负载均衡器外，有些负载均衡器集成在交换设备中，置于服务器与Internet链接之间，有些则以两块网络适配器将这一功能集成到PC中，一块连接到Internet上，一块连接到后端服务器群的内部网络上。&lt;/p&gt;
&lt;p&gt;目前，许多厂商推出了专用于平衡服务器负载的负载均衡器。目前负载均衡器生产商有：Intel、Alteon Web、Arrow Point(已被思科并购)、Coyote Point、F5 Networks、Foundry Networks、HydraWeb以及 RADWare等。负载均衡器的形式多种多样，作为启动器，它以各种形式和大小出现。一些厂商，如Alteon、ArrowPoint，将负载均衡器集成到交换设备中，置于服务器与Internet链接之间；而另外一些厂商，如Coyote Point、 F5 Networks 以及HydraWeb，则运用两块网络适配器将这一功能集成到PC中，其中一块连接到前端止于Web服务器的Hub上，另一块通过路由器或其他设备连接到Internet上。一旦负载均衡设备检测到所管理的每台服务器承载的负荷量，它会按照一定的算法来分配通信。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;而软件方案则有如下选择： 
&lt;li&gt;动态DNS方法； 
&lt;li&gt;反向Proxy方法； 
&lt;li&gt;NAT（网络地圵转换方法）； 
&lt;li&gt;IP隧道方法； 
&lt;li&gt;直接IP路由方法；&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;这些方法各有其优缺点，在大型远程移动监控系统中，我们选用NAT方法来实现分布式数据采集及负载均衡。&lt;/p&gt;
&lt;p&gt;NAT（Network Address Translation网络地址转换）的工作原理修攺IP包的报文头，报文头（目标地址、源地址和端口等）被改写后，客户相信它们连接一个 IP 地址，而不同 IP 地址的服务器组也认为它们是与客户直接相连的。由此，可以用 NAT 方法将不同 IP 地址的并行网络服务变成在一个 IP 地址上的一个虚拟服务。&lt;br&gt;&amp;nbsp;&lt;br&gt;在一组采集服务器前有一个调度服务器，移动设备连接数据中心时，请求报文到达调度服务器，调度服务器根据连接调度算法从真实的采集服务器中选出一台服务器，将报文的目标地址改写为选定服务器的地址，报文的目标端口改写为选定服务器的相应端口，最后将修改后的报文发送给选出的服务器。同时，调度服务器在连接表中记录这个连接，当这个连接的下一个报文到达时，从连接表中可以得到原选定服务器的地址和端口，进行同样的改写操作，并将报文传给原选定的服务器。当来自采集服务器的响应报文经过调度服务器时，调度服务器将报文的源地址和源端口改为 对应的IP地圵和相应的端口，再把报文发给移动设备。当连接终止或超时，调度服务器将这个连接从连接表中删除。这样，移动设备所看到的只是一个固定的IP上提供的服务，而采集服务器的集群的结构对用户是透明的。&lt;/p&gt;
&lt;p&gt;这种负载均衡方案存在两个缺点：&lt;/p&gt;
&lt;p&gt;1、调度服务器存在单点故障，即调度服务器出故障后整个系统会出会故障，这个问题可以通过双机冗余方案来解决。&lt;/p&gt;
&lt;p&gt;2、调度服务器可能存在性能瓶颈，从目前已运行系统的经验数据来看，调度服务器在连接20台以上的采集服务器时，将会出现性能瓶颈，但这已足够大多数应用的需求了。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;这是什么概念呢？简单总结一下：通过负载均衡技术，单采集服务器可以支持3000个移动设备，最大可以支持20台服务器，最大可以支持60000个移动设备。&lt;/strong&gt;&lt;/p&gt;</description><comments></comments><guid>http://blog.cechina.cn/linkman/137901/message.aspx</guid><category>实时数据库 工控软件</category><author></author></item></chan