ProcessDB实时/时序数据库——JAVA_API接口速度测试

 目录

前言

一、历史采样接口测试

1.条件准备

2.测试历史采样接口代码

3.速度测试结果

二、历史统计接口测试

1.条件准备

2.测试历史统计接口代码

3.速度测试结果


前言

我们在开发中,使用传统的关系型数据库,当数据量过大时,查询会变得很慢,甚至会崩溃卡死,我们今天来测试下JAVA_API中调用ProcessDB数据库,查询大数据时的速度


一、历史采样接口测试

1.条件准备

我们这里选用大家都有的PUBLIC库下的SYS表的PDB_OS_CPU_USAGE数据点,数据量为852932条数据

2.测试历史采样接口代码

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Vector;

import com.processdb.connection.DBConnect;
import com.processdb.connection.DBConnectManager;
import com.processdb.connection.DBPoint;
import com.processdb.connection.DBRoot;
import com.processdb.connection.DBTable;
import com.processdb.connection.DBase;
import com.processdb.driver.common.ConnectInfo;
import com.processdb.driver.common.ConstantValue;
import com.processdb.driver.dao.DBHistoryDataDao;
import com.processdb.driver.record.HistoryRecordSet;
import com.processdb.driver.record.PointHistory;

public class Test {
	public static void main(String[] args) throws Exception {
		ConnectInfo host = new ConnectInfo();
		host.setConnectName("instance01");
		host.setHostName("127.0.0.1");
		host.setHostPort(8301);
		host.setUserName("root");
		host.setPassword("root");
		host.setCacheable(false);
		DBConnect myConn = null;
		myConn = DBConnectManager.getInstance().getConnect(host);
		DBRoot root = DBRoot.getInstance(myConn);
		String dbname ="PUBLIC";
		DBase dBase = root.getCachedDatabaseByName(dbname);
		String tableName ="SYS";
		DBTable dbtable = dBase.getCachedTableByName(tableName);
		String pointName = "PDB_OS_CPU_USAGE";
		DBPoint dbpoint = dbtable.getCachedPointByName(pointName);
		/*
		 * 条件准备
		 */
		SimpleDateFormat dateFmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		Date begindate = null; // 开始时间
		Date enddate = null; // 结束时间
		begindate = dateFmt.parse("2022-11-01 00:00:00");
		enddate = dateFmt.parse("2022-11-24 14:00:00");
		int interval = 0; // 时间间隔
		byte query_type = ConstantValue.HIS_VALUE_SAMPLE; // 采样点

         // 查询历史的参数列表
		Vector<PointHistory> pointHistoryList = new Vector<PointHistory>();
		// 给查询历史的参数列表赋值
			PointHistory ph = new PointHistory(dbpoint, begindate, enddate, 
            interval, query_type);
			pointHistoryList.add(ph);
		// 查询历史数据
	        System.out.println("======查询开始=======");
        	long beginTime = System.currentTimeMillis();
        	DBHistoryDataDao.requestPointHistoryByName(myConn, pointHistoryList);
	        long endTime = System.currentTimeMillis();
	        System.out.println("======查询结束=======");
	    	PointHistory result = pointHistoryList.get(0);
			HistoryRecordSet record = result.getSampleRecordSet(); // 采样点的历史数据
			int count = record.getRecordNum(); 
	        System.out.println("==消耗时间=="+(endTime-beginTime)+"ms");
	        System.out.println("数据数量: " + count);
	        myConn.close();

	}
}

3.速度测试结果

我们可以看到,852932条数据,查询出来只需要300ms

======查询开始=======
======查询结束=======
==消耗时间==300ms
数据数量: 852932

二、历史统计接口测试

1.条件准备

我们这里选用大家都有的PUBLIC库下的SYS表的PDB_OS_CPU_USAGE数据点,数据量为852932条数据

2.测试历史统计接口代码

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Vector;

import com.processdb.connection.DBConnect;
import com.processdb.connection.DBConnectManager;
import com.processdb.connection.DBPoint;
import com.processdb.connection.DBRoot;
import com.processdb.connection.DBTable;
import com.processdb.connection.DBase;
import com.processdb.driver.common.ConnectInfo;
import com.processdb.driver.common.ConstantValue;
import com.processdb.driver.dao.DBHistoryDataDao;
import com.processdb.driver.record.HistoryRecordSet;
import com.processdb.driver.record.PointHistory;
import com.processdb.driver.record.StatsRecord;

public class Test {
	public static void main(String[] args) throws Exception {
		ConnectInfo host = new ConnectInfo();
		host.setConnectName("instance01");
		host.setHostName("127.0.0.1");
		host.setHostPort(8301);
		host.setUserName("root");
		host.setPassword("root");
		host.setCacheable(false);
		DBConnect myConn = null;
		myConn = DBConnectManager.getInstance().getConnect(host);
		DBRoot root = DBRoot.getInstance(myConn);
		String dbname ="PUBLIC";
		DBase dBase = root.getCachedDatabaseByName(dbname);
		String tableName ="SYS";
		DBTable dbtable = dBase.getCachedTableByName(tableName);
		String pointName = "PDB_OS_CPU_USAGE";
		DBPoint dbpoint = dbtable.getCachedPointByName(pointName);
		/*
		 * 条件准备
		 */
		SimpleDateFormat dateFmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		Date begindate = null; // 开始时间
		Date enddate = null; // 结束时间
		begindate = dateFmt.parse("2022-11-01 00:00:00");
		enddate = dateFmt.parse("2022-11-24 14:00:00");
		int interval = 60; // 时间间隔
		byte query_type = ConstantValue.HIS_VALUE_STAT; // 采样点

         // 查询历史参数列表
		Vector<PointHistory> pointHistoryList = new Vector<PointHistory>();
		// 给查询历史的参数列表赋值
			PointHistory ph = new PointHistory(dbpoint, begindate, enddate, 
            interval, query_type);
			pointHistoryList.add(ph);
		// 查询历史统计数据
	        System.out.println("======查询开始=======");
        	long beginTime = System.currentTimeMillis();
        	DBHistoryDataDao.requestPointHistoryByName(myConn, pointHistoryList);
	        long endTime = System.currentTimeMillis();
	        System.out.println("======查询结束=======");
	    	PointHistory result = pointHistoryList.get(0);
			Vector<StatsRecord> statsRecords = result.getStatsRecords();// 统计数据查询结果
			int count = statsRecords.size();
	    
	        System.out.println("==消耗时间=="+(endTime-beginTime)+"ms");
	        System.out.println("数据数量: " + count);

	        myConn.close();
	}
}

3.速度测试结果

我们可以看到,统计852932条数据,60秒一个统计间隔,只需258ms

======查询开始=======
======查询结束=======
==消耗时间==258ms
数据数量: 33414
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值