GP两种连接方式性能测试
GP两种连接方式性能测试
- Pivotal
- java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
public class GPQueryString {
public static void main(String[] args) {// TODO Auto-generated method stubtry {// URLString url = "jdbc:pivotal:greenplum://ip:5432;DatabaseName=testtpch"; // 数据库用户名String username = "xx"; // 数据库密码String password = "xx"; // 加载驱动Class.forName("com.pivotal.jdbc.GreenplumDriver"); // 获取连接Connection conn = DriverManager.getConnection(url, username, password);
// String sql18 = "select c_name,c_custkey,o_orderkey,o_orderdate,o_totalprice,sum(l_quantity) from customer,orders,lineitem"
// +" where o_orderkey in (select l_orderkey from lineitem group by l_orderkey having sum(l_quantity) > 312) and c_custkey = o_custkey and o_orderkey = l_orderkey"
// +" group by c_name,c_custkey,o_orderkey,o_orderdate,o_totalprice"
// +" order by o_totalprice desc,o_orderdate LIMIT 100";
// String sql17="select sum(l_extendedprice) / 7.0 as avg_yearly from lineitem, part,"
// +"(SELECT l_partkey AS agg_partkey, 0.2 * avg(l_quantity) AS avg_quantity FROM lineitem GROUP BY l_partkey) part_agg"
// +" where p_partkey = l_partkey and agg_partkey = l_partkey and p_brand = 'Brand#11' and p_container = 'WRAP DRUM' and l_quantity < avg_quantity LIMIT 1";
String sql21="select s_name,count(*) as numwait from supplier,lineitem l1,orders,nation"+" where s_suppkey = l1.l_suppkey and o_orderkey = l1.l_orderkey and o_orderstatus = 'F' and l1.l_receiptdate > l1.l_commitdate and exists (select * from lineitem l2"+" where l2.l_orderkey = l1.l_orderkey and l2.l_suppkey <> l1.l_suppkey)and not exists (select * from lineitem l3 where l3.l_orderkey = l1.l_orderkey and l3.l_suppkey <> l1.l_suppkey and l3.l_receiptdate > l3.l_commitdate) and s_nationkey = n_nationkey and n_name = 'BRAZIL'"+" group by s_name order by numwait desc,s_name LIMIT 100";
// PreparedStatement pre = conn.prepareStatement(sql18);
// long t1 = System.currentTimeMillis();
// ResultSet rs = pre.executeQuery();
// long t2 = System.currentTimeMillis();
// long t3=t2-t1;
// float s=(float)t3/1000;
// System.out.println("sql18执行时间:"+s+"秒");
// PreparedStatement pre17 = conn.prepareStatement(sql17);
// long t17 = System.currentTimeMillis();
// ResultSet rs17 = pre17.executeQuery();
// long t18 = System.currentTimeMillis();
// long t19=t18-t17;
// float s17=(float)t19/1000;
// System.out.println("sql17执行时间:"+s17+"秒");
PreparedStatement pre21 = conn.prepareStatement(sql21);long t21 = System.currentTimeMillis();ResultSet rs21 = pre21.executeQuery();long t22 = System.currentTimeMillis();long t23=t22-t21;float s21=(float)t23/1000;System.out.println("sql21执行时间:"+s21+"秒");
// while(rs.next())
// {
// System.out.println(rs.getString(1));
// }
} catch (Exception e) {e.printStackTrace();
}}
}
- Postgresql
- java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class GPpostgres {
public static void main(String[] args) throws ClassNotFoundException, SQLException {// TODO Auto-generated method stubtry {// URLString url = "jdbc:postgresql://ip:5432/testtpch";
// String url = "jdbc:postgresql://ip:5432/testcolumn";
// 数据库用户名String username = "xx"; // 数据库密码String password = "xx"; // 加载驱动Class.forName("org.postgresql.Driver"); // 获取连接Connection conn = DriverManager.getConnection(url, username, password);
// String sql18 = "select c_name,c_custkey,o_orderkey,o_orderdate,o_totalprice,sum(l_quantity) from customer,orders,lineitem"
// +" where o_orderkey in (select l_orderkey from lineitem group by l_orderkey having sum(l_quantity) > 312) and c_custkey = o_custkey and o_orderkey = l_orderkey"
// +" group by c_name,c_custkey,o_orderkey,o_orderdate,o_totalprice"
// +" order by o_totalprice desc,o_orderdate LIMIT 100";
String sql17="select sum(l_extendedprice) / 7.0 as avg_yearly from lineitem, part,"+"(SELECT l_partkey AS agg_partkey, 0.2 * avg(l_quantity) AS avg_quantity FROM lineitem GROUP BY l_partkey) part_agg"+" where p_partkey = l_partkey and agg_partkey = l_partkey and p_brand = 'Brand#11' and p_container = 'WRAP DRUM' and l_quantity < avg_quantity LIMIT 1";
// String sql21="select s_name,count(*) as numwait from supplier,lineitem l1,orders,nation"
// +" where s_suppkey = l1.l_suppkey and o_orderkey = l1.l_orderkey and o_orderstatus = 'F' and l1.l_receiptdate > l1.l_commitdate and exists (select * from lineitem l2"
// +" where l2.l_orderkey = l1.l_orderkey and l2.l_suppkey <> l1.l_suppkey)and not exists (select * from lineitem l3 where l3.l_orderkey = l1.l_orderkey and l3.l_suppkey <> l1.l_suppkey and l3.l_receiptdate > l3.l_commitdate) and s_nationkey = n_nationkey and n_name = 'BRAZIL'"
// +" group by s_name order by numwait desc,s_name LIMIT 100";
// PreparedStatement pre = conn.prepareStatement(sql18);
// long t1 = System.currentTimeMillis();
// ResultSet rs = pre.executeQuery();
// long t2 = System.currentTimeMillis();
// long t3=t2-t1;
// float s=(float)t3/1000;
// System.out.println("sql18执行时间:"+s+"秒");
PreparedStatement pre17 = conn.prepareStatement(sql17);long t17 = System.currentTimeMillis();ResultSet rs17 = pre17.executeQuery();long t18 = System.currentTimeMillis();long t19=t18-t17;float s17=(float)t19/1000;System.out.println("sql17执行时间:"+s17+"秒");
// PreparedStatement pre21 = conn.prepareStatement(sql21);
// long t21 = System.currentTimeMillis();
// ResultSet rs21 = pre21.executeQuery();
// long t22 = System.currentTimeMillis();
// long t23=t22-t21;
// float s21=(float)t23/1000;
// System.out.println("sql21执行时间:"+s21+"秒");
// while(rs.next())
// {
// System.out.println(rs.getString(1));
// }
} catch (Exception e) {e.printStackTrace();
}}
}
同样的数据,postgresql方式的查询速度是pivotal方式连接的查询速度的0.61左右。
GP两种连接方式性能测试相关推荐
- 项目案例模板之jdbc两种连接方式
项目案例模板之jdbc两种连接方式 第一种连接方式 JDBCUtils.java package jdbc;import org.junit.jupiter.api.Test;import jav ...
- Kafka结合Spark-streaming 的两种连接方式(AWL与直连)
kafka结合spark-streaming的用法及说明之前博客有些,这里就不赘述了. 这篇文章说下他们结合使用的两种连接方式.(AWL与直连) 先看一张图: 这是kafka与streaming结合的 ...
- gitlab两种连接方式:ssh和http配置介绍 --转自 散尽浮华
gitlab环境部署好后,创建project工程,在本地或远程下载gitlab代码,有两种方式:ssh和http 1)ssh方式:这是一种相对安全的方式 这要求将本地的公钥上传到gitlab中,如下图 ...
- Spark对Kafka两种连接方式的对比——Receiver和Direct
在知乎 Flink 取代 Spark Streaming 的实战之路中,提到 因此下面对两种方式进行详细说明一下. Receiver方式 Receiver:接收器模式是使用Kafka高级Consume ...
- JDBC 与 JNDI 这两种连接方式 区别
jdbc(Java Data Base Connectivity)是数据库中间代理商为了是java连接数据库而定的一个协议 或者说是方法,通过jdbc-odbc的方法进行数据库连接,是连接一次创建一次 ...
- 华为telnet的两种连接方式
要求R2能远程登陆上R1(使用password)方式 第一种方式: [R1] [R1]int e0/0/0 [R1-Ethernet0/0/0]ip address 12.1.1.1 24 [R1]u ...
- Redis的两种连接方式
1.简单连接 import redis conn = redis.Redis(host='207.148.120.229', port=6379) conn.set('foo', 'Bar') pri ...
- 连接MySQL和连接文件夹区别_JDBC与JNDI这两种连接方式有什么区别?
配置 JNDI绑定 此处绑定的数据源是以 DBCP 为实现.首先必须将数据库驱动(这里用了MYSQL数据库)和DBCP所需要的 Jar 包复制到 Jetty 根目录的 lib 目录下.DBCP主要需要 ...
- Kafka的两种连接方式
Kakfa的版本 0.8.0 Receiver模式 (接收者模式) Driect模式 (直连模式) 0.10.0 Driect模式(直连模式) spark 2.3之后(包括2.3) 已经把 0.8.0 ...
最新文章
- 阿里巴巴高级技术专家:不要用沉默的方式一味地迎合别人的要求,据理力争或许才是作为的表现
- mysql 1100_mysql数据库选择,有1100个用户,每个用户每月生成一张表,使用中该表内每秒上传一条数据,数据量很大...
- 聊聊在Go语言里使用继承的翻车经历
- Sun Java认证
- 查看python安装的库_查看python及其第三方库的版本和安装位置
- [matlab]用LU分解法求解线性方程组
- [LeetCode] Increasing Triplet Subsequence 递增的三元子序列
- 2020-12-26
- 更改计算机图标大小得方法,更改桌面图标大小方法
- 计算机复制方法有,如何在电脑上复制粘贴文字(包括快捷键),来学习吧
- 6步解决win7局域网内传输慢的问题
- 各种编程语言的适用范围
- 纽约市建筑能源得分预测代码分析
- 泛泛而谈的渲染学习记录(一)—— 描边中的轮廓边缘
- 将笔记本打造成遥控器――远程桌面控制台式机
- Linux下的CPU性能瓶颈分析案例
- excel转word_PDF一键转Word、转Excel、转PPT、转Html、转图片软件
- javabean+servlet+jsp返利网
- html输入时从本文框的顶格输入,浙江省绍兴市越城区2017—2018学年八年级第二学期期末语文试卷(15页)-原创力文档...
- 伪时序分析文献阅读——PAGA
热门文章
- linux gedit如何保存 退出
- 计算机系统唯一能识别的不需要翻译,计算机习题答案及解析ban.doc
- oracle with check option 的作用
- Excel中vlookup函数的使用方法
- XSD(Schema)教程
- 敏捷软件开发(Agile Software Development)简介之:什么是敏捷软件开发?
- MicroStation VBA 操作提示
- 20159206《网络攻防实践》第五周学习总结
- python 闭包(closure)
- asp.net viewstate 数据过大 导致错误