1. DnaGetNextHistUTC函数:根据游标一个一个值取
int i = EzDNAApiNet.EzDnaApi.History.DnaGetHistDirectRawUTC(szServer,szPoint, Start, End, ref key);
if (i == 0)
{
long l1 = DateTime.Now.Ticks / 10000;
int s = 0;
int i1 = 0;
while (i1 == 0)
{
i1 = EzDNAApiNet.EzDnaApi.History.DnaGetNextHistUTC(key, ref pdValue, ref ptTime, szStatus, 20);
if (pdValue >= dHighLimit)
{
m_ulHighCount++;
}
if (pdValue<= dLowLimit)
{
m_ulLowCount++;
}
if (i1 == 0)
{
//记住开始时间
if (s == 0)
{
EzDNAApiNet.EzDnaApi.Translator.UCTToStringTime(ptTime, szTime, 30);
sStart = szTime.ToString();
}
s++;
}
}
//记住结束时间
EzDNAApiNet.EzDnaApi.Translator.UCTToStringTime(ptTime, szTime, 30);
sEnd = szTime.ToString();
long l2 = DateTime.Now.Ticks / 10000 - l1;
}
2. DnaGetNextHistBlockSmall函数:一次读取批量数据
int i = EzDNAApiNet.EzDnaApi.History.DnaGetHistDirectRawUTC(szServer,szPoint, Start, End, ref key);
StringBuilder szTime = new StringBuilder(30);
double[] pszValueList = new double[1000000];
int[] pszTimeList = new int[1000000];
ushort[] pszStatusList = new ushort[1000000];
string sStart = "";
string eEnd = "";
if (i == 0)
{
long l1 = DateTime.Now.Ticks / 10000;
int s = 0;
do
{
i1 = EzDNAApiNet.EzDnaApi.History.DnaGetNextHistBlockSmall(key, 1000000, out pnCount, pszValueList, pszTimeList, pszStatusList);
if (0 == i1)
{
for (int j = 0; j < pnCount; j++)
{
//开始时间
if (j == 0)
{
EzDNAApiNet.EzDnaApi.Translator.UCTToStringTime(pszTimeList[j], szTime, 30);
sStart = szTime.ToString();
}
else if (j == pnCount-1)
{
//结束时间
EzDNAApiNet.EzDnaApi.Translator.UCTToStringTime(pszTimeList[j], szTime, 30);
eEnd = szTime.ToString();
}
s++;
}
}
}
while (0 == i1);
long l2 = DateTime.Now.Ticks / 10000 - l1;
方式2比方式1性能有10倍的提高。当然,历史数据查询与磁盘IO性能有很大关系。
分享到:
相关推荐
eDNA实时数据库通过其服务端、客户端及各种数据采集接口的协作,以目录服务为核心,用高效和可靠的手段从现场收集大量的实时生产数据,并保存起来,同时通过通用接口从管理系统中获得管理数据以指导生产管理。eDNA...
edna文档资料,edna实时数据库编程文档介绍.
eDNA实时数据库API /* *************************************************************************** * COPYRIGHT (c) 2003 by InStep Software, LLC. All Rights Reserved * * * * This program is an ...
eDna 实时数据库的访问编程VB接口,访问edna的实时数据和历史数据
eDNA系统分为服务器、客户端和接口三个方面,分别提供采集和存储现场实时 数据、浏览和处理生产信息及数据库的通信等功能。本文详细介绍了eDNA实时数据库系统所采用的以哈夫曼编码为基础的无损数据压缩方法。最后,...
近十几年来,关系数据库技术在电力监控以及电网调度...采用关系型数据库来存储系统历史数据,在数据规模不是很大(小于50,000),存储采样周 期不是很高(如5 分钟、1 分钟等)的情况下,还能够比较好地满足应用需求。
eDNA 实时历史数据库用户端使用文档,官方翻译的中文使用文档。
Edna 安装、配置、加点等使用说明文件,历史数据目前都转存在 E 盘目录下 History 文件夹中,具体每个系统的历史数据对应 一个文件夹。
edna全程培训手册,edna的安装及操作说明,客户端与服务端的配置
这是利用VB进行实时历史数据库edna开发的实例程序,基本上涵盖了所有eDNA的api。
大型实时数据库开发例程,还有主流数据库(实时)的相关资料,IH Pi edna 阿杰罗 insql vestore 等 有实时数据库开发需要求的 请联系我 大家一起探讨 一起提高
eDNA实时数据库平台在厂级监控信息系统中的应用,主要介绍了eDNA实时数据在SIS中的功能及数据库的特点
科技成果——eDNA实时、历史数据库系统 主要应用领域 电力系统、石油石化等各领域 成果简介 eDNA(enterprise Distributed Network Architecture)是专门为满足电力行业对海量高速时序数据的存储和查询要求而设计...
完成对实时数据的集中海量存储 支持实时数据读写操作和历史数据的高效查询 提供实时计算、实时分析处理等功能 实时数据的组织和访问权限管理 3 实时数据库及数据采集全文共31页,当前为第3页。 当前主流的实时...
基于eDNA实时历史数据库的远程诊断中心建设.ppt
实时/历史数据库eDNA管理员手册文档,官方翻译的的中文使用说明。
eDNA-实时数据库-API函数VB-VC部分.doc