网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > SQL技巧
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
本月文章推荐
.关于Sql Server 2000 Analysis S.
.讲解数据库管理系统必须提供的基.
.用SQL Server Everywhere保存离线.
.SQL Server 2005密码安全追踪与存.
.将SQL Server表变成txt文件.
.SQL查询语句精华使用简要.
.教你快速掌握SQL语句各种写法的效.
.SQL Server 2008在Vista下的问题.
.SqlServer存储过程/函数加/解密.
.用企业管理器连接并管理远程MS S.
.存储过程使用技巧.
.如何修改Syabse服务器端的默认字.
.在SQL2000查询中使用XDR的例子.
.关于UltraLite所不提供的ASA功能.
.从数据库中随机抽N条记录.
.SQL Server 索引结构及其使用(一.
.讨论: SELECT TOP N问题 (2).
.设计数据库之经验谈.
.自动备份SQL Server数据库中用户.
.使用SQL Server 将现有代码作为W.

讲解InfoPlus与Uniformance PHD的SQL支持

发表日期:2008-7-8


这篇论坛文章(赛迪网技术社区)主要介绍了InfoPlus与Uniformance PHD的SQL支持及笔者的个人观点,详细内容请参考下文:

应该说这两个实时数据库都很不错,在工业控制领域有着广泛的应用。由于我们在MES上的特殊需求,我们尝试用SQL方式查询历史数据,而不是直接调用其API。虽然API方式在速度上会快些,但是一些难以解决的古怪问题让我们最终还是放弃了。

首先做的InfoPlus,用的是ODBC连接,发现一些问题,或者不是问题,只是我们觉得不太好的地方:

历史值明明都按照IP_TREND_TIME排序了,但是在SQL语句中若对这个时间用了MAX或MIN,速度不是一般的慢,去掉就好了

自己的诡异的日期格式,一定要按照它的来,其它格式的不行。有个日期转换函数有问题,并且会影响速度。具体是哪个函数就不记得了,呵呵。最搞的是,某个日期转换函数会给出“4月17日 2006年” 或类似的中文年月日,让人苦笑不得。我只好把中文字符再替换回来。

在WHERE字句中如果用了不是它的日期格式进行比较,它并不报错,但是它会傻乎乎的把该点的所有历史值都找一边,速度自然慢得吓人。

当然,我们不能拿实时数据库的SQL支持去跟大型关系数据库做比较,但是这样的结果也确实让人有些失望。

不过,没有最差,只有更差----让我们来看看Uniformance PHD。

PHD的SQL支持有两种方式:Visual PHD和OLE DB。前者是个ActiveX控件,我开始也是采用这种方式,但是在最后封装成web服务时却无法调用这个ActiveX控件了,无奈之下只好转向OLE DB。哪位大虾知道C#写的web服务如何调用本地的ActiveX控件,麻烦告诉我。

PHD的OLE DB连接字符串是这样的,有些参数得看具体情况再作修改。不过现场实施的人一般都不会去改这些默认设置。

ConnectionString: Provider="HwPHDProv.2";User ID=;Data Source="10.121.2.35";Extended Properties=;Persist Security Info=False;Location=TOTALPLANT

原始的历史数据都保存在表IP_PHD_RAW中,点的配置信息如数据类型等都保存在表IP_PHD_ONLINE_TAG中。查询历史数据时一般都要对时间戳作比较,PHD中支持NOW操作,时间戳格式要严格按照“2006-04-17 08:00:00”来写,不能少0。千万不要查询没有历史数据的时间段,否则会出异常的。

接下来就让我们来看看PHD的SQL支持上的不足吧:

1.不支持统计操作,如sum,avg,max,min等等

2.不支持字符串模糊匹配

3.where字句中仅能对点名、时间戳、点号进行比较,并且点名只能比较是否相等

在测试过程中,我发现第一次查询的速度都特别慢,后来仔细想想,估计原因是这样的:

由于点的配置信息是存放在Oracle数据库中,而Oracle数据库服务器和PHD服务器并不是同一台机器,因此第一次访问都要通过ODBC去连接Oracle服务器,获取点的数据类型,这样速度就比较慢;已经访问过的点的数据类型信息会被我缓存起来,因此以后的访问速度都会快些。不知道这个猜测对不对,呵呵。

以上我对两个实时数据库的SQL支持都颇有微词,因为我觉得其SQL支持与大名鼎鼎的实时数据库本身相比,实在不是很般配。

我们现在也在做自己的实时数据库,面对前人的优势和不足,我们,或者说,我,能将SQL支持做成什么样子呢?

上一篇:讲解数据库管理系统必须提供的基本服务 人气:594
下一篇:SQL Server 2005数据转换服务设计问题集锦 人气:557
浏览全部SQL的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐